プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Amazon S3のルートドメインでのWebホスティング機能を試してみた

 2012年の年の瀬に、Amazon S3に待望の機能が追加されました。それは「ルートドメインでWebをホスト出来る機能」です。なんじゃそれはと思われるでしょうが、つまりwww.example.comとかblog.example.comのようにサブドメインがつかずにexample.comだけでS3で静的Webサイトを作る機能です。
 それくらい簡単だろうと言われそうですが、実はこれ根の深い問題があって実現出来ていなかったのです。S3 Web Hostingでドメインの設定をする場合は、CNameを利用することにより実現しています。そしてRFC 1034の規定でトップレベルドメイン(ホスト名無しのドメイン)は、Aレコード(IPアドレス指定)である必要があります。というところで、ルートドメインでのS3のWebホストが出来ませんでした。この辺りの事情は、以前調べて書いています。ちなみにELBでも同様なのですが、Amazon独自のエイリアス機能により回避されていました。これが今回の機能追加で、S3にもエイリアス機能が利用出来るようになったのです。ということで、試してみました。

1.S3にルートドメインでのバケットを作成する



 通常のS3のWebホスティングの場合と同様に、ドメイン名ど同一のバケットを作成します。ドメインがexample.comの場合、バケット名もそのままずばりのexample.comです。そしてプロパティでStatic Web Hostingの設定を行います。Enable website hostingを選択し、Index DocumentとError Documentを設定します。

2.Route 53で、対象ドメインのレコードセットを作成する



 次にManagement ConsoleのRoute53の画面で、レコードセットを作成します。Aレコードを作成し、AliasをYesにしてAlias Targetを指定します。空欄のところにフォーカスを当てると選択可能なものが出てくると思います。そこでS3 Website Endpointsの候補から、先程作成したルートドメインのエンドポイントを指定します。これにて実現できます。

まとめというか感想



 この機能の何が嬉しいかと言いますと、殆ど全ての静的サイトをS3に移せるようになったということです。最近だとメインのサイトはwwwをつけずにルートドメインでの使用が多かったりします。特にコーポレートサイト。しかし、今更殆どアクセスの無いコーポレートサイトの為に、Webサーバ立ちあげて冗長化の為に2台構成にしてというのも面倒です。ということで、静的サイトはどんどんS3 Web Hostingに切り替えましょう。Amazonさん代だけであれば、本当に月々数百円くらいで運用出来てしまうのです。
 また、まだ余り試していませんが、このAlias機能には凄い可能性があるように思えます。これから色々試してみたいと思います。


See Also:
Route53+S3 Web Hostingでホスト名無しのドメイン設定が出来るのか?
本当に月額10円でレンタルサーバを始められるのか? S3で静的サイト構築を検証
Amazon S3 Webホスティング情報をざっくりまとめてみました


参照:
【AWS発表】Amazon S3にてルートドメインでWebをホストできるようになりました! - Amazon Web Services ブログ