プログラマでありたい

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

Route53+S3 Web Hostingでホスト名無しのドメイン設定が出来るのか?

 下記の機能は、Route53+S3で実現出来るようになりました。


 S3 Web Hostingでサブドメイン無しのドメイン設定が出来るのかなと調べてみました。サブドメイン無しのドメインとは、例えばwww.example.comではなくて、example.comのようなFQDNです。これは正式な名称は知りませんが、naked domainやZone Apex,root recordとか呼ばれているようです。AmazonのDNSサービスであるRoute53とS3での静的WebサイトサービスであるWeb Hosting機能で実現出来るのでしょうか?結論から言うと、2012/10/9時点では、対応できません。Twitterで#jawsugに質問してみたら、片山さんにご回答頂けました
 そもそもの話なのですが、S3 Web Hostingでドメインの設定をする場合は、CNameを利用することにより実現します。そしてRFC 1034の規定でトップレベルドメイン(ホスト名無しのドメイン)は、Aレコード(IPアドレス指定)である必要があります。なのでAmazon AWSの場合、EC2を使ってグローバルIPを利用する場合はAレコードを使うので問題ありません。ELBやS3 Web Hostingの場合は、CNameレコードを作ってエンドポイントを指定することになるのですが、RFCの制約によりトップレベルドメインにはCNameを設定できません。ただしELBの場合、Aレコードのエイリアスという機能を使うことにより解決しています。(たぶんRoute53の独自機能だと思います)


 ちなみに無理やりトップレベルドメインにCNameを設定しようとすると下記のようなエラーが出ます。

RRSet of type CNAME with DNS name example.com. is not permitted at apex in zone example.com.

 一方でS3のエンドポイントのIPアドレスを調べてAレコードを設定したとしても、調べる度にIPアドレスがコロコロ変わるので無理だと解ります。ということで、正攻法ではお手上げです。Amazonさんの対応を待ちましょう。


 しかし、Route53を使わなければ実現出来る方法もあるようです。DNS Made Easyという会社が提供しているAName Recordという独自(?)のレコードセットを使えば実現出来るようです。。この人も設定しているらしく、下の通りに指定してるそうです。

kaivonfintel.org. 60 IN ANAME kaivonfintel.org.s3-website-us-east-1.amazonaws.com.

よく解りませんね。nslookupで調べてみると

$ nslookup
> kaivonfintel.org
Name: kaivonfintel.org
Address: 72.21.211.197
> www.kaivonfintel.org
www.kaivonfintel.org canonical name = www.kaivonfintel.org.s3-website-us-east-1.amazonaws.com.
www.kaivonfintel.org.s3-website-us-east-1.amazonaws.com canonical name = s3-website-us-east-1.amazonaws.com.
Name: s3-website-us-east-1.amazonaws.com
Address: 207.171.163.149

 トップレベルドメインには、固定のIPが振られているっぽく見えます。そして、wwwはAWSのエンドポイントへのCNameです。トップレベルドメインとwwwの関係は、nslookupで見る限りは出てきていませんね。AName Recordという独自のサービスで解決しているのだと思います。


 一応、実際に使われているらしいというのは解りました。しかし、DNS Made EasyのAName Recordを使うかと問われると、私は使いません。理由としては、独自過ぎるサービスなので、この会社が何かあった時に対応が出来なくなるからです。ということで、AWSの公式対応待つとします。(Amazonの対応も独自になるとは思いますが、S3を含めAmazonのシステム内の話ということで許容します)


2013/03/13追記
Route53+S3で実現出来るようになりました。


See Also:
本当に月額10円でレンタルサーバを始められるのか? S3で静的サイト構築を検証
Amazon S3のルートドメインでのWebホスティング機能を試してみた


参照:
S3 hosting & naked domains - semantics etc.
Introducing the ALIAS Record - DNSimple