トップレベルドメインに対してCNAME相当を使うときに、Route53 の Aliasを使います。ELBはIPアドレスが可変であるため、Aレコードは実質使えないためです。Aliasとは、CNAMEっぽいAレコードです。
Private DNSが対応の検証前に、ちょっとマネジメントコンソールに変更があったみたいなので、書いておきます。
トップレベルドメイン名(Amazon的には zone apex というらしい)はCNAMEが使えません。www.example.com だと wwwが付かないやつのことです。ELBのエンドポイントを独自ドメインで運用、しかもトップレベルドメインとなると、Route53を使うことになります。(そうじゃなくてもRoute53は便利ですが)
マネジメントコンソールの操作としては
まず、ELBのエンドポイントを記録します。
そしてRoute53にAレコード Alias = yes として、ELBのエンドポイントを入れます
が、最近までこんなことがなかったのですが、elbのドメイン名を指定すると、勝手に頭にdualstack. がついてしまいます。
これはなんぞや?ということで調べたら、ipv6のためのELBエンドポイントが予め用意されているようです。
ipv6.hogehoge は AAAAレコードのみ
dualstack.hogehoge はA & AAAA 両方返す。
この機能は2011年頃から既にできているようです。で、マネジメントコンソールが勝手に付けてくれるdualstack.は AもAAAAレコードも返すので、間違いではなく正常に動きます。
が、例えばexample.com の Aレコードに Alias として dualstack付きを指定しただけでは、 example.comのAAAAレコードは出来ません。もしもexample.comのリクエストに対して、AもAAAAも両方返すのであれば(そんな奴おらへんやろというのは置いといて)、もう一つレコードを追加し、今度はAAAAレコードでAliasを指してやる必要があります。
ちなみに、aws-cli や boto でレコードの書き換えした場合は、勝手にdualstack.が付くことは無いようです。
ついでに2014年現在のipv6対応状況ですが、
- ELB 対応済み (EC2-Classicに限る)
-
EC2 外向きは未対応(EC2単体で外向けipv6やるなら何かしらのしかけが要ります)
-
S3 未対応
EC2はELBがあるのでさておき、EC2-VPCはELBで対応出来ず、S3が未対応という点にご注意。