zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

Amazon S3 Bucketに配置した静的コンテンツをトップレベル(ルート)ドメインで公開する

【問題とそこに至る経緯】

・お名前.comでドメインを取得していた(仮にhoge.com)
Amazon S3 Bucketにhoge.comディレクトリを作成、StaticWebsiteHostingで静的コンテンツを配置して公開(参考サイト:http://gyori.hatenablog.com/entry/2013/06/23/181302
・エンドポイントが払い出されたので、お名前.comの転送サービスを使ってS3エンドポイントへ転送(ホストの無いルートドメインなのでCNAME登録ができなかった)

としたところ、最初の転送ではちゃんとhoge.comとなったのだけど、サイト内遷移すると
http://hoge.com.s3-website-ap-northeast-1.amazonaws.com/hoge/
みたいになってしまい、ショボイ。

【解決法】

調べたところ、ネームサーバをAmazon Route53に向けるとよい、という事が分かった。

■Route53-[Hosted Zones]

1)Hosted Zoneを作成する

[Create Hosted Zone]→取得していたドメインを入力。コメントは任意
作成したゾーンを選択すると以下の情報が取れます。この中のネームサーバー情報が必要となります。

[Hosted Zone Details]
Domain Name:hoge.com.
Type:Public Hosted Zone
Hosted Zone id:xxxxxxxxxx
Name Servers *:
ns-xxx.awsdns-xx.net
ns-xxx.awsdns-xx.com
ns-xxxx.awsdns-xx.co.uk
ns-xxxx.awsdns-xx.org

2)Route53でAレコードをセットする

切り替える前にあらかじめAレコードをセットしておきます。
DomainName-[Create Record Set]
Alias:Yes
Alias Target:「S3 WebSite Endpoints」の中に作成したS3 WebSiteが表示されるので選択
※S3のBucket名はドメインと同じにしておかないとダメ。

以下の様な設定が追加されます。

Name:hoge.com.
Type:A
Value:ALIAS s3-website-ap-northeast-1.amazonaws.com

★お名前.comのネームサーバに登録済みだったものはこのタイミングで
 全て移植しておいてください。自分はMXレコードを移植し忘れて
 お名前.comの転送メールサービスが動かなくなってる(そりゃそうだ)
 のにしばらく気づきませんでした。。

3)お名前.com でネームサーバーをRoute53に設定します。

※以下お名前.comでの作業です。
[ドメイン設定]-[ネームサーバーの設定]-[ネームサーバーの変更]-[他のネームサーバーを利用]
で、AWSで表示されたName Serversを記載

ns-xxx.awsdns-xx.net
ns-xxx.awsdns-xx.com
ns-xxxx.awsdns-xx.co.uk
ns-xxxx.awsdns-xx.org

4)確認
nslookup
> set type=ns
> hoge.com

実際にアクセスし、s3バケットのエンドポイントが隠蔽されていることを確認。
OK.


【参考としたサイト】

お名前.com で取ったドメインを Amazon Route53で管理し、サブドメインをはてなブログに割り当てるまで - 銀の光と碧い空