「example.com」と「www.example.com」、どちらでアクセスしても同じWebサイトが表示されますよね。
不思議に思ったことはありませんか?
実は、この裏側ではCNAME(シーネーム)という仕組みが働いているんです。
この記事では、ドメイン名の「別名」を設定できるDNSレコード「CNAME」について、初心者の方にもわかりやすく解説していきます。Webサイト運営やドメイン管理に役立つ知識をお届けしますよ。
CNAMEとは?ドメイン名の「別名カード」

CNAMEは「Canonical Name(正規名)」の略で、DNSレコードの一種です。
DNSレコードというのは、ドメイン名とIPアドレスなどの情報を結びつけるデータのこと。
CNAMEレコードは、あるドメイン名を別のドメイン名に紐付ける役割を持っています。
別名の仕組み
CNAMEを使うと、1つのドメイン名を別のドメイン名の「別名(エイリアス)」として設定できます。
例:www.example.com を example.com の別名にする
こうすると、www.example.com にアクセスした人は、自動的に example.com と同じ場所に案内されるんです。
あだ名のようなもの
現実世界で例えると、「田中太郎」という本名の人が「タロー」というあだ名で呼ばれるようなものですね。
どちらで呼んでも、同じ人を指しているわけです。
なぜCNAMEが必要なのか
CNAMEがどんな問題を解決するのか見ていきましょう。
サーバー移転が簡単になる
Webサイトをホスティングしているサーバーを変更する場合を考えてみましょう。
CNAMEを使わない場合:
複数のサブドメインすべてのIPアドレスを変更する必要があります。
CNAMEを使う場合:
元のドメイン(正規名)だけを変更すれば、すべてのCNAMEが自動的に新しいサーバーを参照します。
管理が圧倒的に楽になるんですね。
サービスの統合が容易
複数のサブドメインで異なるサービスを提供している場合でも、CNAMEで一元管理できます。
例えば、ブログやショップ、サポートページなど、それぞれを別名として設定できるんです。
CDNやクラウドサービスとの連携
CDN(Content Delivery Network)やクラウドサービスを使う際、CNAMEレコードの設定が必要になることがよくあります。
サービス提供側が指定したドメイン名をCNAMEで設定することで、簡単に連携できるんですよ。
CNAMEの設定例
実際にどんな風に設定するのか見てみましょう。
基本的な設定
設定内容:
名前: www
タイプ: CNAME
値: example.com
この設定により、www.example.com は example.com を参照するようになります。
CDNサービスとの連携
設定内容:
名前: blog
タイプ: CNAME
値: cdn.cloudprovider.com
blog.example.com というサブドメインを、CDNのドメインに向けられます。
外部サービスの利用
設定内容:
名前: shop
タイプ: CNAME
値: shops.shopify.com
ECサイト構築サービスなどを使う場合、このようにCNAMEで自社ドメインを向けることができます。
AレコードとCNAMEの違い

CNAMEを理解するには、Aレコードとの違いを知ることが重要です。
Aレコード
Aレコードは、ドメイン名を直接IPアドレスに紐付けます。
例:
名前: @(またはexample.com)
タイプ: A
値: 192.0.2.1
これで、example.com が IPアドレス 192.0.2.1 のサーバーを指すようになります。
CNAMEレコード
CNAMEは、ドメイン名を別のドメイン名に紐付けます。
最終的にはAレコードでIPアドレスに解決されますが、間接的な参照になるんです。
どちらを使うべきか
Aレコードを使う場合:
- ルートドメイン(example.com)
- 直接IPアドレスを指定したい場合
- シンプルな構成
CNAMEを使う場合:
- サブドメイン(www.example.com、blog.example.comなど)
- 外部サービスとの連携
- サーバー移転の可能性がある場合
基本的には、サブドメインにはCNAME、ルートドメインにはAレコードを使うと覚えておけば大丈夫ですよ。
CNAMEの重要なルール
CNAMEを使う際には、いくつかの制約があります。
ルール1:ルートドメインには使えない
これが最も重要なルールです。
ルートドメイン(example.com のように、サブドメインがないドメイン)には、CNAMEレコードを設定できません。
DNSの仕様上、ルートドメインにはNSレコードやSOAレコードが必須で、CNAMEと共存できないんです。
OK:
www.example.com → CNAME可能
blog.example.com → CNAME可能
NG:
example.com → CNAME不可
ルール2:他のレコードと共存できない
同じ名前に対して、CNAMEと他のレコードタイプを同時に設定できません。
NG:
www.example.com → CNAME + Aレコード(同時には設定できない)
ルール3:CNAMEのチェーンは避ける
CNAMEが別のCNAMEを指し、さらにそれが別のCNAMEを指す…といった「チェーン」は避けるべきです。
DNS解決に時間がかかり、パフォーマンスが低下するんですよ。
CNAMEの設定方法
実際にどこで設定するのか見ていきましょう。
ドメイン管理サービスでの設定
ドメインを取得したレジストラ(お名前.comやムームードメインなど)の管理画面で設定します。
一般的な手順:
- レジストラの管理画面にログイン
- 対象のドメインを選択
- 「DNS設定」または「DNSレコード設定」を開く
- 「レコード追加」をクリック
- タイプで「CNAME」を選択
- 名前(サブドメイン)と値(参照先ドメイン)を入力
- 保存
TTLの設定
TTL(Time To Live)は、DNSレコードがキャッシュされる時間です。
短く設定すると変更がすぐに反映されますが、DNS問い合わせが増えます。
長く設定すると反映に時間がかかりますが、効率的です。
通常は3600秒(1時間)や86400秒(24時間)に設定されることが多いですね。
反映までの時間
DNSレコードの変更は、即座には反映されません。
DNS伝播と呼ばれるプロセスにより、数分から最大48時間かかることがあります。
実際には、多くの場合1〜2時間で反映されますよ。
CNAMEの実用例
具体的な活用シーンを紹介します。
例1:wwwありとなしの統一
多くのWebサイトでは、以下のような設定をしています。
example.com → Aレコードで直接IPアドレス指定
www.example.com → CNAMEで example.com を参照
これで、どちらでアクセスしても同じサイトが表示されます。
例2:サブドメインの活用
blog.example.com → CNAME → hosting-provider.com
shop.example.com → CNAME → shopify-store.com
mail.example.com → CNAME → mail-service.com
異なるサービスを、それぞれのサブドメインで提供できるんです。
例3:負荷分散サービス
www.example.com → CNAME → lb.cloudprovider.com
クラウドサービスのロードバランサーを使う場合、CNAMEで設定することが一般的です。
例4:地域別サイト
jp.example.com → CNAME → japan-server.example.com
us.example.com → CNAME → usa-server.example.com
地域ごとに異なるサーバーを使いたい場合にも便利ですね。
CNAMEのメリット

CNAMEを使う利点をまとめました。
1. 管理の一元化
複数のサブドメインを持つ場合、元ドメインだけを変更すれば全体に反映されます。
IPアドレスの変更作業が大幅に楽になるんです。
2. 柔軟なサービス構成
外部サービスとの連携が簡単にできます。
CDN、メール配信サービス、ECプラットフォームなど、様々なサービスを統合できるんですよ。
3. 変更への対応が容易
サーバーの移転やサービスの変更があっても、CNAMEの設定を変えるだけで対応できます。
ユーザーには何の影響もありません。
4. 覚えやすいドメイン名
サービス提供側の複雑なドメイン名を、自社の分かりやすいサブドメインで提供できます。
ブランディングにも効果的ですね。
CNAMEのデメリットと注意点
一方で、注意すべき点もあります。
DNS解決の遅延
CNAMEを経由すると、DNS解決に余分なステップが必要になります。
直接Aレコードで指定する場合より、わずかに遅くなるんです。
ただし、実用上は問題にならないレベルですよ。
ルートドメインの制約
前述のとおり、ルートドメインには使えません。
この制約により、「example.com」自体をCNAMEで設定したい場合は別の方法を考える必要があります。
メールサーバーへの影響
MXレコード(メールサーバーの設定)と競合する可能性があります。
メールを使う場合は、DNS設定全体を慎重に計画する必要があるんですね。
他のDNSレコードタイプ
CNAMEと一緒に知っておきたいDNSレコードを紹介します。
MXレコード
MXレコードは、メールサーバーを指定するレコードです。
メールをどこに配送すればいいかを示します。
TXTレコード
TXTレコードは、テキスト情報を格納するレコードです。
ドメイン所有権の確認やSPF設定(メール送信認証)などに使われます。
AAAAレコード
AAAAレコードは、IPv6アドレスを指定するレコードです。
Aレコード(IPv4)の次世代版といえますね。
NSレコード
NSレコードは、ネームサーバーを指定するレコードです。
どのDNSサーバーがそのドメインを管理しているかを示します。
CNAME Flatteningとは
最近の技術として、CNAME Flatteningというものがあります。
ルートドメインでもCNAME的に使える
一部のDNSサービスプロバイダーが提供する機能で、ルートドメインでもCNAME的な設定ができます。
実際には、サーバー側でCNAMEをAレコードに変換して返す仕組みなんです。
ALIAS/AFLAMEレコード
CloudflareやAWSのRoute 53などでは、ALIASやAFLAMEという独自のレコードタイプを提供しています。
これらを使えば、ルートドメインでもCNAMEのような柔軟な設定ができますよ。
トラブルシューティング
CNAMEで問題が起きたときの対処法です。
設定が反映されない
DNS伝播には時間がかかります。
24〜48時間待ってから再確認しましょう。
nslookup や dig コマンドで、DNS解決を確認できます。
ループが発生している
CNAMEが別のCNAMEを指し、それが元に戻るようなループがあると、サイトにアクセスできません。
設定を見直して、ループを解消する必要があります。
SSLエラーが出る
CNAMEで別ドメインを参照している場合、SSL証明書が一致しないとエラーが出ます。
参照先のドメインに合わせたSSL証明書を設定しましょう。
まとめ:CNAMEで柔軟なドメイン管理を
CNAMEは、ドメイン管理を効率化する重要な仕組みです。
この記事のポイント:
- CNAMEはドメイン名を別のドメイン名に紐付けるDNSレコード
- サブドメインに対して設定できる(ルートドメインには不可)
- Aレコードは直接IPアドレスを指定、CNAMEは別名を設定
- サーバー移転や外部サービス連携が簡単になる
- 他のレコードタイプと共存できない制約がある
- DNS伝播に時間がかかることを考慮する
- CNAME FlatteningやALIASレコードでルートドメインでも利用可能
Webサイトを運営する上で、CNAMEの理解は必須です。
特に、複数のサブドメインを使ったり、外部サービスと連携したりする場合、CNAMEを適切に活用することで管理が格段に楽になります。
最初は難しく感じるかもしれませんが、一度設定すれば、その便利さを実感できるはずですよ。


コメント