ひとことで言うと
CNAMEレコードは「このドメイン名は、あのドメイン名と同じ場所を指している」と別名を登録する DNS のレコードです。IPアドレスではなく、別のドメイン名を向き先にするのが特徴です。
たとえ話でもう少し詳しく
「田中商店へ行くには?」と聞かれたとき、「駅前の青い建物と同じ場所ですよ」と答えるイメージです。
- 「駅前の青い建物」は実際の住所(Aレコード)を持っている
- 「田中商店」は住所を持たず、「駅前の青い建物」という別名を参照するだけ
- 「駅前の青い建物」の住所が変わっても、「田中商店」の設定は変えなくていい
CNAMEレコードも同じ仕組みで、www.example.com → example.com → IPアドレス のように、最終的にAレコードまでたどって接続先を決めます。
よく出る場面・使いどころ
www.example.comをexample.comの別名として設定するとき- CDNのホスト名(
xxxxx.cdn.example.netなど)を自分の ドメイン の別名にするとき - サービスのドメイン確認手順として「このCNAMEを設定してください」と指示されるとき
- 複数の サブドメイン を1か所に集約して管理したいとき
似た言葉との違い
- Aレコード: IPアドレスを直接書く。CNAMEは別のドメイン名を書いて間接的に参照する
- NSレコード: ドメインを管理するDNSサーバーを指定するレコード。別名指定とは別の役割
- MXレコード: メール専用の向き先を指定するレコード
実務で気にするポイント
- ドメイン名そのもの(
example.comのようなゾーンの頂点)にはCNAMEを設定できない制約がある - CNAMEの向き先にさらにCNAMEを設定するチェーン構成は、解決のステップが増えるため非推奨とされることが多い
- CDNやSaaSサービスを使うとき、接続先のIPアドレスが変わっても自分側の設定は変えなくていい点が便利
- CNAME設定後も、最終的な接続確認まで時間がかかることがある(DNSの浸透待ち)
関連して読みたい用語
- Aレコード: CNAMEの参照先として最終的にたどり着くIPアドレス指定のレコードです
- DNS: CNAMEレコードが動く基盤となる仕組みです
- ドメイン: CNAMEで別名を付ける元になる名前そのものです
- サブドメイン:
www.やblog.などのサブドメインにCNAMEを設定するケースが多いです - NSレコード: CNAMEとは役割が異なる、ドメインの管理サーバーを指すレコードです
注意: ドメイン名の頂点(Zone Apex)にはCNAMEを設定できません。
example.com自体を別のドメイン名の別名にしたい場合は、AレコードやCDNの「ALIAS/ANAME」機能などで代替する必要があります。