AWS上にMTによる独自ドメインのウェブサイト運用環境を構築する(2015年末版)

はじめに

本記事は、Movable Type Advent Calender 2015 の、12/13(日)分の記事です。

自分はAWSを使いだして3,4年程度経ちましたが、未だ理解度がまだ中途半端であり、更にここ数年でAWSの仕組みが若干変わってしまい、自身が知っている使い方と勝手が変わってきたように見えました。

スクリーンショット 2015-11-30 00.06.28.png

そこで今回は、学習がてらに改めて、AWS上に独自ドメイン付きのMT環境を構築する手順をまとめてみました。
よって、非常にドキュメントライクな記事になってしまってるのでご注意ください。

なお、最近は環境構築を自動化するツールが幾つか出ていますが、本手順では、手動で一つ一つやるような形になっています。
なんでわざわざ手動でやるかというと、手動でやった方が環境構築に関する基本的な知識を覚えやすいし忘れにくい、と個人的に思っているからです。

目標

ここでは、シックスアパートがAWS Market Place上にて提供しているMT環境の予め入った(=AMI)を使って、AWS上に独自ドメインを持つMT環境およびウェブサイトを構築します。

大まかな流れとして、次の通りです。

  1. AWSのVPC上に設けたEC2インスタンスに、MT環境を構築。
  2. EC2インスタンスに固定IPを紐付けた上で、独自ドメインと関連付け、独自ドメインにてアクセスできるようにする。

環境構築のイメージ

AWSの公式ドキュメントのページ「ステップ1 : VPCを作成する」の冒頭に、わかりやすい図があるので、見ておくと今回構築する内容をイメージしやすいと思います。
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/GettingStartedGuide/getting-started-create-vpc.html

用語の解説

まず、今回の手順で扱うAWS周りの用語で主なものについて、見ていきます。

AWSマネジメントコンソール(コンソール

スクリーンショット 2015-11-30 00.13.42.png

AWSマネジメントコンソールは、ウェブブラウザからAWSの各機能の管理を行う為の管理画面です。
ウェブ上からログイン(=サインイン)して使います。

またここでは、AWSマネジメントコンソールの内、AWSの各機能の管理画面を、例えばEC2の管理を行うものであれば「EC2コンソール」という風に、呼んでいます。

EC2/EC2インスタンス

EC2は、AWSの仮想マシンを作成/管理するサービス。
EC2インスタンスは、仮想マシンの事。

今回は、これがないと何も始まりません。

AWS Market Place

簡単に言うと、EC2インスタンスの作成に利用できる、EC2インスタンスのひな形。
ひな形毎に、有償または無償で利用できます。

キーペア

EC2インスタンスにSSH/SFTPでアクセスする場合、鍵ファイルによる認証を行うようになっていますが、その鍵ファイルの事。
EC2インスタンス作成時には、キーペアの指定が必須です。

VPC

簡単に言うと、仮想ネットワーク。
今回MT環境を構築する上で、必ず必要となるものです。

公式ドキュメントでは、概要として次のように説明があります。

Virtual Private Cloud(VPC)は、お客様がデータセンターで運用している従来のネットワークによく似た仮想ネットワークです。

また、基本EC2インスタンスはVPC上に作成するもの、として覚えておいて良いと思われます。

CIDR ブロック

VPCに適用するネットワークの設定。
用語の使われ方としては、例えば「/16 CIDR ブロックを持つVPC」の場合、「65,536 個のプライベート IP アドレスのネットワークを持つVPC」という意味となります。

なお、VPCのCIDR ブロックの設定の確認は、VPCコンソールのVPC一覧画面よりVPCを選択し、画面下のタブ項目「要約」配下の「VPC CIDR」を見る事で確認できます。

サブネット

VPC内に設けられるプライベートIPアドレスの範囲の定義。
例えば「サイズ /24 のサブネットをVPC上に作成する」は、「「256 個のプライベート IP アドレスを含む範囲」の定義をVPC に作成する」、という意味となります。

サブネットの定義の数と内容は、VPCコンソール上のメニュー項目「サブネット」より確認できます。

インターネットゲートウェイ

VPC上のEC2インスタンスとインターネットをつなぐ為の機能。
VPCコンソール上では、次のように説明されています。

インターネットゲートウェイは、VPC をインターネットに接続する仮想ルーターです。

※実際につなぐ際には、ルートテーブルの定義も必要になります。詳細は後述「ルートテーブル」にて。

インターネットゲートウェイは、VPCと一意に対応します。
インターネットゲートウェイの定義の数と内容は、VPCコンソール上のメニュー項目「インターネットゲートウェイ」より確認できます。

ルートテーブル

VPC上のサブネットとインターネットゲートウェイの間で通信行う為に必要な情報。
いずれかのVPCに属する形で作成されます。

サブネットと関連付ける事で、そのサブネットとインターネットゲートウェイ間の通信を有効にできます。
この時のイメージとしては、次のような形で考えると分かりやすいかもしれません。

  1. ルーターの役割を果たすインターネットゲートウェイが、関連付けられたVPCのルートテーブルを見て接続先のサブネットを把握。
  2. インターネットゲートウェイが、先程把握したサブネットとの通信を確立する。

ルートテーブルの定義の数と内容は、VPCコンソール上のメニュー項目「ルートテーブル」より確認できます。

手順

前提

  • VPC内に一個だけEC2インスタンスを作成し運用する。
  • キーペアは作成済み。
  • EC2インスタンスは、AWS Market place の「Movable Type 6 (HVM, nginx)」のインスタンスタイプ「t2.micro」 を利用。
  • VPC名は「MyVPC」。
  • EC2インスタンスに付与するドメインは、次の二つ。(※レコードの詳細については、ここでは割愛する)
    • Aレコード : example.com
    • CNAME レコード : www.example.com
  • ドメインはお名前.comのものを利用。

なお、今回EC2インスタンスは「Movable Type 6 (HVM, nginx)」を利用していますが、次を利用しても良いでしょう。

  • Movable Type 6 (PV, nginx)
  • Movable Type 6 (HVM, Apache)

ここでは詳細割愛しますが、必要に応じて、用途に合ったものを選ぶようにしましょう。

ドメインについて、今回はお名前.comのものを利用していますが、他のドメイン名登録サービスを利用した場合でも、手順は似たようなものになると思われます。

概要

手順は大きく分けて次の通りです。

  1. VPCの作成
  2. EC2インスタンスの作成
  3. EC2インスタンスと固定IP(ElasticIP)との関連付け
  4. 独自ドメインをEC2インスタンスのIPに関連づける:Route53の設定
  5. 独自ドメインをEC2インスタンスのIPに関連づける:お名前.com側の設定

以降に、これらの詳細を順を追って展開していきます。

VPCの作成

次の手順を行います。

  1. AWSマネジメントコンソールから「VPC」を選択。
  2. VPCダッシュボードから「VPCウィザードを起動」ボタンをクリック。
  3. 「ステップ1:VPC設定の選択」にて「1個のパブリックサブネットを持つPC」を選択。
  4. 「vpc名」に「MyVPC」を設定し、後はデフォルトの設定のまま「VPCの作成」ボタンを押す。→vpcおよび関連する設定群が作成される。

EC2インスタンスの作成

次の手順を行う。

  1. EC2ダッシュボードを開き、「インスタンスを作成」ボタンを押す。
  2. 画面「ステップ 1: Amazon マシンイメージ(AMI)」にて、「AWS Market Space」から「Movable Type 6 (HVM, nginx)」を検索し選択する。
  3. 画面「ステップ 2: インスタンスタイプの選択」にて、インスタンスタイプを選択する(ここでは、「t2.micro」)。
  4. 画面「ステップ 3: インスタンスの詳細の設定」にて、先の手順で作成した「MyVPC」を選択し、「確認と作成」ボタンを押す。
  5. 画面「ステップ 7: インスタンス作成の確認」にて、項目「タグ」配下の「タグを編集」を押す。
  6. 画面「ステップ 5: インスタンスのタグ付け」にて、キー「Name」に対応する値に、EC2インスタンスに対応する任意の名称をつける。
  7. つけ終わったら、「確認と作成」ボタンを押す。
  8. 画面「ステップ 7: インスタンス作成の確認」にて、「作成」ボタンを押す。
  9. 使用するキーペアを確認するダイアログが出るので、任意のキーペアを選択し、「インスタンスの作成」ボタンを押す。
  10. 画面「作成ステータス」に遷移したら、作成されたインスタンスのIDを確認した後、インスタンスの一覧画面に遷移し、作成済みのインスタンスを確認する。

EC2インスタンスと固定IP(ElasticIP)との関連付け

次の手順を行います。

  1. ElasticIPを作成する。EIPの使用箇所は「VPC」とする。
  2. ElasticIPをEC2インスタンスを関連付ける。
    ここでは、VPCダッシュボードのサブメニュー「ElasticIP」から行う。
  3. ElasticIPの一覧が表示されたら、EC2インスタンスとの関連付けを実行する。
  4. 一覧から関連付け対象のEC2インスタンスを選択し、「ElasticIPアクション」ボタンのサブメニュー「アドレスの関連付け」を選択。
    その後、設定内容を次の通りとし、関連付けを実行する。
    • 項目「関連付け」はデフォルトの「インスタンス」のまま。
    • 項目「インスタンス」は、先ほど作成したインスタンス。
    • 項目「プライベートIPアドレス」はデフォルト値のまま。
  5. EC2インスタンス一覧に戻り、ElasticIPと紐付けたインスタンスを選択、「説明」タブ配下の情報を確認する。
    ※パブリックDNS, パブリックIPの項目に、ElasticIPによるIPが反映されていれば、紐付けはできている。

パブリックDNSの値をそのままWebブラウザのURLに放り込むと、MTのインストール開始の画面が表示されます。

※ElasticIPの設定がEC2コンソール上に表示されるタイミングと、当該設定が実際に反映されるタイミングまでとは、タイムラグがあるようで、
紐付けた直後の状態だと、コンソール上では反映されていてもパブリックDNSの値からMTのインストール開始画面を開けない場合がありました。
その場合は少し待ってから再度実行すると上手く行きました。

独自ドメインをEC2インスタンスのIPに関連づける:Route53の設定

まず、次の手順でHosted Zone の作成を行います。

  1. Route53のコンソールを開き、項目「Hosted Zone 」を選択。
  2. 画面が遷移したら「Create Hosted Zone」を押す。
  3. 右ペインに項目「Create Hosted Zone」が出たら、次の値を設定する。
    • Domain Name : 取得したドメインネーム(ここでは「example.com」)を設定。
    • Comment : 必須ではない。任意のコメントを設定。
    • Type : 「Public Hosted Zone」を選択。
  4. 設定終わったら、「Create」ボタンで作成する。→作成が終わると、Hosted Zoneの編集画面に遷移する。

ここでHosted Zone の編集画面を見ると、デフォルトで「NS」「SOA」レコードが作成されている事が分かります。
※これら値は、ここではデフォルトのまま使用します。

次に、Aレコードを登録します。

「Create Recode Set」ボタンを押すと、右ペインに項目「Create Record Set」が出るので、項目内の各入力項目に、次のように値を設定します。

  • Name : もしホスト名に「www.」など接頭辞をつけたい場合は、任意の値を入力する(ここでは空欄とする)。
  • Type : Aレコードを登録したい場合は、値が「A - IP4 Address」とする。
  • Value : 独自ドメインの紐付け先となるElasticIPのIPアドレスを入力する。

また、この要領で、CNAMEレコードを登録する。次のように値を設定します。

  • Name : 「www.」を入力。
  • Type : 「CNAME - IP4 Address」とする。
  • Value :  Aレコードに設定した値を入力する(ここでは「example.com.」とする)。※末尾にピリオドが付く点に注意する。

独自ドメインをEC2インスタンスのIPに関連づける:お名前.com側の設定

スクリーンショット 2015-11-30 00.28.47.png

お名前.comのサイトにログインし、会員メニューの「ドメイン設定」より、「ネームサーバーの設定>ネームサーバーの変更」を選択。
取得したドメインのネームサーバーの設定画面を開き、Route53側が用意するネームサーバーを、ドメインが使用するネームサーバーに設定する。

またこの時、Route53側が用意するネームサーバーは、Route53側の設定時にて作成したHosted Zone における、NSレコードのValueとなる。
この際、ネームサーバーのホスト名に例えば「ns-aws.xxxx.com.」のように末端にピリオド「.」がついているが、これを含めない形で登録する。

あとがき

手順を書いていて思ったのですが、踏まなければいけない手順や覚えねばならない用語がそれなりに数があるな、と思いました。
まあ、VPSのサービス上でsshからセコセコ環境構築するよりは、作業に必要な手数をかなり減らせるのですが。
ただ、決して「初心者がとっつきやすくなった」という事ではないな、と感じました

あと、来年はこんなドキュメントライクな記事を書くだけじゃなくて、もうちょっと華やかさのあるものを書きたいな、と思いました。

以上、長文失礼致しました。少し早いですが、良いお年を!

参考

WSで独自ドメインを設定したい。 - Qiita
http://qiita.com/mochizukikotaro/items/eb4a8d6cd3b184eaf42a

初心者のボクが「AWS + WordPress」でブログを作る! Vol.2 〜独自ドメインで運用しよう〜 | ひげメガネのブログ
http://blog.higemegane.com/2014/01/wp_with_aws2/

Amazon Virtual Private Cloud入門ガイド
docs.aws.amazon.com/ja_jp/AmazonVPC/latest/GettingStartedGuide/ExerciseOverview.html
分かりやすい解説がある。

関連するタグ

関連するタグは現在ありません。