akiyoko blog

akiyoko の IT技術系ブログです

はじめての Route 53 (Amazon Route 53 を使って Webサイトをネイキッドドメインで運用する)

Amazon Route 53 は、EC2 や S3 と組み合わせて使うことで真価を発揮する、クラウドの DNSサービスです。

前回「はじめての S3 (Amazon S3 を使って Webサイトを公開する)」では、S3 にアップロードした静的ファイルを Webサイトとして公開し、お名前.com で CNAMEレコードを設定して、独自ドメインの FQDN でアクセスできるようにしましたが、そのようなケースでは(レジストラのCNAMEレコードを設定すれば事足りるので)Route 53 は必須ではありませんでした。

ですが、前回のように「www.akiyoko.info」といったサブドメイン付きの FQDN ではなく、サブドメインを省略した「akiyoko.info」のようなネイキッドドメインで公開するには、Route 53 を使用する必要があります。今回はその手順をまとめますが、前半は前回のおさらい的なところが多いかもしれません。

やりたいこと

  • Amazon S3 に保存した静的ファイルを Webサイトとして公開
  • お名前.com で登録した独自ドメイン「akiyoko.info」で公開


今回は、

  • Route 53 を使い、Aレコード および CNAMEレコードを設定
  • S3 のバケット名は、ネイキッドドメイン(akiyoko.info)および FQDN(www.akiyoko.info)の両方を作成

という方針で進めます。


ちなみに、やろうとしていることは、
Middleman + Foundation + Amazon S3 でのBlogサイト構築(9)Amazon S3へのデプロイ
と同じです。


1. ネイキッドドメインのバケットを作成

ネイキッドドメイン(ファイルを配置する側)のバケットを作成します。

1) バケットを作成

S3 の画面から「Create Bucket」ボタンをクリックして、バケットを作成します。

f:id:akiyoko:20140526005223p:plain


バケット名は「akiyoko.info」、Regionは前回同様「Tokyo」を選択します。

f:id:akiyoko:20140526005412p:plain

2) バケットの Permissions を変更

バケット名を右クリック -> [Properties] を選択し、[Permissions] タブから「Add bucket policy」をクリックします。

f:id:akiyoko:20140526005615p:plain


以下のポリシーを設定して、「Save」ボタンをクリックします。

{
  "Version":"2012-10-17",
  "Statement":[{
    "Sid":"AddPerm",
        "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::akiyoko.info/*"
      ]
    }
  ]
}

f:id:akiyoko:20140526005739p:plain

3) Webサイトホスティング設定を変更

バケットの [Properties] から [Static Website Hosting] を選択し、「Enable website hosting」をクリックします。「Index Document」に「index.html」と入力して、「Save」ボタンをクリック。

f:id:akiyoko:20140526005812p:plain

4) ファイルをアップロード

前回と同じファイルをアップロードします。

f:id:akiyoko:20140526005907p:plain


2. サブドメイン付きのバケットを作成

サブドメイン付きドメイン(リダイレクトする側)のバケットを作成します。

1) バケットを作成

「Create Bucket」ボタンをクリックして、バケットを作成します。

f:id:akiyoko:20140526010205p:plain


バケット名は「www.akiyoko.info」とします。

f:id:akiyoko:20140526010220p:plain

2) リダイレクト転送の設定

[Static Website Hosting] タブから [Redirect all requests to another host name] を選択し、「Save」ボタンをクリックします。

f:id:akiyoko:20140526010425p:plain


3. Route 53 の設定

続いて、Route 53 の設定です。

1) Hosted Zone を作成

AWSのサービスから、Route 53 を選択します。

f:id:akiyoko:20140526010621p:plain


「Create Hosted Zone」をクリック。

f:id:akiyoko:20140526010642p:plain


「Domain Name」にネイキッドドメイン「akiyoko.info」を設定します。

f:id:akiyoko:20140526010818p:plain


後でレジストラ側(今回の例では「お名前.com」)で設定するネームサーバの情報をチェックします。

f:id:akiyoko:20140526011000p:plain

2) Aレコードを設定

「Create Record Set」をクリックします

f:id:akiyoko:20140526011107p:plain


以下の情報を設定して、「Create」をクリック。

Name (空白)
Type A - IPv4 address
Alias Yes
Alias Target ネイキッドドメイン「akiyoko.info」の S3 Endpoint


f:id:akiyoko:20140526011254p:plain

3) CNAMEレコードを設定

「Create Record Set」をクリックします

f:id:akiyoko:20140526011323p:plain


以下の情報を設定して、「Create」をクリック。

Name www
Type CNAME - Canonical name
Alias No
TTL 300(デフォルト)
Value akiyoko.info.s3-website-ap-northeast-1.amazonaws.com(ネイキッドドメイン「akiyoko.info」の S3 Endpoint)


f:id:akiyoko:20140526011341p:plain


最終的にこうなっていれば OKです。

f:id:akiyoko:20140526011611p:plain


4. レジストラ側で ネームサーバを設定

最後に、AWS ではなくレジストラ側の設定です。

ネームサーバを「お名前.com」のものではなく、Route 53が管理しているものに変更します。
例として、「お名前.com」でドメインを管理しているものとします。






1) ドメインNaviにログイン

ドメインNaviにログインします。
https://www.onamae.com/domain/navi/domain.html

f:id:akiyoko:20140523022511p:plain


2) CNAME を設定

[ドメイン設定] から、[ネームサーバーの変更] -> [他のネームサーバーを利用] をクリックし、対象となるドメインをクリックして現在の情報を反映させます。

f:id:akiyoko:20140526011948p:plain

対象のドメインにチェックを入れて、3. 1) の手順で確認したネームサーバの情報を設定して、「確認画面に進む」をクリック。

f:id:akiyoko:20140526012035p:plain


「設定する」をクリックします。

f:id:akiyoko:20140526012058p:plain


4) 動作確認

しばらく待ち、http://akiyoko.info/ にアクセスします。

f:id:akiyoko:20140526012129p:plain


確認できました。