忙しい人のためのまとめ
Zone apex(ドメイン名そのもの)をCNAMEにマッピングすることはできない(できたとしても動作の保証がない)。
原理は次の通り。
- CNAMEと他のレコードは同居できない
- 一方、Zone apexには少なくともNSレコードを設定する必要がある
- したがってZone apexにCNAMEをマップした場合、上記が矛盾することとなる
詳細は下記のブログに記載されている。(素晴らしい記事です)
http://tech.blog.aerie.jp/entry/2014/09/09/162135
定義はRFC 1912を見る。
http://tools.ietf.org/html/rfc1912#section-2.4
2.4 CNAME records
A CNAME record is not allowed to coexist with any other data. In
other words, if suzy.podunk.xx is an alias for sue.podunk.xx, you
can't also have an MX record for suzy.podunk.edu, or an A record, or
even a TXT record.
Route 53での解決(回避)
Route 53のエイリアスレコードを用いると、zone apexをELB名などにマッピングすることができる。
Q: Amazon Route 53 はどの DNS レコードタイプをサポートしますか?
Amazon Route 53 は現在、以下の DNS レコードタイプをサポートしています。
(中略)
加えて、Route 53 は「エイリアス」レコードを提供します(Route 53 固有の仮想レコード)。エイリアスレコードの用途は、ホストゾーン内のリソースレコードセットを、Elastic Load Balancing ロードバランサー、CloudFront ディストリビューション、またはウェブサイトとして設定されている S3 バケットにマッピングすることです。エイリアスレコードは CNAME レコードのように機能するので、DNS 名(example.com)を別の「ターゲット」DNS 名(elb1234.elb.amazonaws.com)にマッピングできます。それらはリソルバーに表示されていないという点で、CNAME レコードと異なります。リソルバーには、A レコードと結果として生じるターゲットレコードの IP アドレスだけが表示されます。