【しーねーむれこーど】

CNAMEレコード とは?

💡 「このドメインはあっちのドメインと同じだよ」という転送指示
📌 このページのポイント
CNAMEエイリアスチェーン www.example.com ユーザーがアクセス CNAME example.com 正規ドメイン名 A 93.184.216.34 実際のIPアドレス CNAMEの動き ① www.example.com を問い合わせ ② CNAMEレコード発見 → example.com ③ example.com を再度問い合わせ ④ Aレコード → 93.184.216.34 を返却 ポイント IP変更時はAレコードだけ修正 複数サブドメインの一括管理 ゾーンの頂点(apex)には使用不可 チェーンが長いと解決が遅延
CNAMEレコードの仕組み
ひよこ ひよこ

CNAMEレコードって何をするの?

ペンギン先生 ペンギン先生

ドメインに別名をつけるレコードだよ。「www.example.com」の実体は「example.com」です、みたいに指し示す設定なんだ。

ひよこ ひよこ

AレコードとCNAMEレコードの違いは?

ペンギン先生 ペンギン先生

AレコードドメインIPアドレスの直接対応、CNAMEレコードドメイン → 別のドメイン名への対応だよ。CNAMEを設定した先のドメインAレコードでIPに解決される、という2段階になるんだ。

ひよこ ひよこ

CDNを使うときにCNAMEを設定するって聞いたけど?

ペンギン先生 ペンギン先生

そう!たとえばCloudflareCloudFrontを使うとき、「assets.example.com」のCNAMEをCDNが発行するドメイン名に設定するんだ。CDN側のIPアドレスが変わっても、CNAMEの先を変えるだけで対応できる利点があるよ。

ひよこ ひよこ

ルートドメインにはCNAMEを使えないって本当?

ペンギン先生 ペンギン先生

これがちょっとハマるところで、「example.com」そのもの(ZoneApexとか裸ドメインと呼ぶ)にはCNAMEを設定できない、とDNSの仕様で決まってるんだ。理由はMXレコードなど他のレコードと共存できないから。ただしCloudflareなどのDNSサービスは「CNAME Flattening」という独自技術でこれを回避してる。この制約はインフラ経験者でも「なぜ?」と改めて聞かれると詰まる部分だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CNAMEレコード」って出てきたら「あるドメインを別のドメインに紐づける別名設定のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Canonical Name Record」 = 正規名の記録
💬 Canonicalは「正規の・本物の」という意味。CNAMEは「このドメインの本当の名前はあっちだよ」と指し示すレコードだよ
← 用語集にもどる