ドメインの別名を登録するCNAMEレコード

CNAMEレコードは、あるドメイン名を別のドメイン名の「別名」として登録するDNSレコードです。

CDN や SaaS の設定画面で「このCNAMEを設定してください」と言われ、意味の分からない文字列をコピーして貼る。CNAMEに初めて触れるのは、たいていこの場面です。

CNAMEレコードは「このドメイン名は、あのドメイン名と同じ場所を指している」と別名を登録する DNS のレコードです。IPアドレスではなく、別のドメイン名を向き先にします。

住所ではなく「あの店と同じ場所」と書く

「田中商店へ行くには?」と聞かれて、「駅前の青い建物と同じ場所ですよ」と答えるイメージです。住所を持っているのは「駅前の青い建物」のほうで、「田中商店」は別名として参照しているだけ。だから建物の住所が変わっても、「田中商店」の行は書き換えなくて済みます。

実際の接続も、www.example.com → example.com → IPアドレス のように、最終的に Aレコード までたどって行き先を決めます。

この性質が効くのが、CDN のホスト名(xxxxx.cdn.example.net など)を自分の ドメイン の別名にする場面です。サービス側がサーバーのIPアドレスを入れ替えても、こちらの設定はそのままで追従します。www.example.com を example.com の別名にしたり、複数の サブドメイン を1か所へ集めたりするのも、よくある使い方です。

example.com そのものには書けない

CNAMEには、ドメイン名の頂点(Zone Apex)、つまり example.com 自体には設定できないという制約があります。www なしのドメインを別のドメイン名の別名にしたいときは、Aレコードで書くか、CDN や DNS サービスが用意している「ALIAS/ANAME」のような機能で代わりを立てます。

CNAMEの向き先にさらにCNAMEを置くチェーン構成も、問い合わせの段数が増えるため避けるよう案内されることが多い形です。また、設定を保存してから実際につながるまでには、DNS の反映待ちの時間がかかることがあります。サービス側の確認がすぐに通らなくても、慌てて書き直さず、少し時間をおいてから再確認します。