CNAMEレコードの仕組みと設定方法|Aレコードとの違いや正しい運用ポイントを解説

Webサイトの運用やDNSの設定をしていると「CNAMEレコード」という用語を目にすることがあるかもしれません。しかし、具体的にどのような役割を持ち、どのように使われるのかを正しく理解している人は少ないのではないでしょうか?
CNAMEレコードはDNS(Domain Name System)の一種で特定のドメインを別のドメインのエイリアス(別名)として指定するために使用されます。例えば、「www.example.com」を「example.com」にリダイレクトしたり、CDN(コンテンツ配信ネットワーク)を活用してWebサイトを高速化するための設定にも使われます。Aレコードとの違いを理解せずに誤った設定をするとWebサイトが正常に表示されなかったり、メールが届かないといったトラブルにつながる可能性があります。
本記事ではCNAMEレコードの仕組みや役割、Aレコードとの違い、設定時の注意点などを詳しく解説します。

CNAMEレコードとは
CNAMEレコード(Canonical Nameレコード)はDNSレコードの一種で、ドメイン名を別のドメイン名に関連付ける役割を持っています。DNS(Domain Name System)はドメイン名とIPアドレスを結びつける仕組みで、これによりWebページの表示やメールの受信が可能になります。
CNAMEレコードを使うと、あるドメイン名を別のドメインのエイリアス(別名)として指定できます。例えば「www.test.com」を「test.com」のエイリアスとして設定すれば、どちらにアクセスしても同じサイトが表示されるようになります。
CNAMEレコードの役割
CNAMEレコードには主にエイリアス設定とサブドメインの管理という2つの役割があります。それぞれの役割について詳しく解説します。
エイリアス設定
CNAMEレコードの大きな特徴の一つはドメインを別のドメインに紐づけて、エイリアスとして設定できることです。例えば、以下のようなケースが考えられます。
- 「www.test.com」を「test.com」にエイリアス指定
→CNAMEレコードを利用すると、どちらのドメインでも同じWebサイトにアクセスできます。 - CDNやクラウドサービスでの利用
→コンテンツ配信ネットワーク(CDN)を使う場合に、オリジンサーバーのドメインをCNAMEで指定することで柔軟な運用が可能になります。
CNAMEレコードが動作する流れは以下の通りです。
- ユーザーが「www.test.com」にアクセス
- CNAMEレコードを参照し、「www.test.com」は「test.com」に変換される
- Aレコードが返ってきてIPアドレスに解決される
- ブラウザが取得したIPアドレスにアクセスし、Webページが表示される
サブドメインの管理
CNAMEレコードは特定のサブドメインを別のホスト名にリダイレクトする際にも使用されます。サブドメインとは、例えば「test.com」の前に「example」を追加して「example.test.com」とするようなドメインのことです。
この仕組みを使うと、クラウドサービスや複数の環境(本番・開発環境など)を管理する際に便利です。例えば、以下のようなケースが考えられます。
- 開発環境と本番環境を分ける
「dev.test.com」を「staging.example.com」にリダイレクト - SaaSサービスのカスタムドメイン設定
顧客ごとに異なるサブドメインを設定(「customer1.example.com」→「app.saas.com」)
サブドメインを追加する際に重要な設定項目は以下の通りです。
- ホスト名
test(設定するサブドメイン) - TYPE
CNAME - TTL(Time To Live)
一般的には「86400(1日)」を設定することが多い - VALUE
「example.test.com」などリダイレクト先のホスト名
このようにCNAMEレコードを活用することで柔軟にドメインを管理することができます。
Aレコードとは
Aレコード(Address Record)はホスト名とIPアドレスを直接関連付けるためのDNSレコードです。Webサイトのドメイン名とIPアドレスを結びつける際に利用されます。
もともとIPアドレスは数字の羅列(例:192.168.1.1)のため、人間にとって覚えにくいというデメリットがありました。これを解消するために、Webページには「example.com」のような覚えやすいアルファベットのドメイン名が設定されています。Aレコードはそのドメイン名を適切なIPアドレスに変換する役割を担います。
CNAMEレコードとAレコードの違い
CNAMEレコードとAレコードはどちらもDNSレコードの一種ですが、それぞれ用途や役割が異なります。ここでは、用途・目的の違いとレコード内容の違いを詳しく解説します。
用途・目的の違い
AレコードとCNAMEレコードの主な違いは以下の通りです。
用途 | 目的 |
---|---|
Aレコード | ドメイン名をIPアドレス(IPv4)に関連付ける |
CNAMEレコード | ドメイン名を別のドメイン名に変更・エイリアス化する |
Aレコードはホスト名をIPアドレスに直接紐づけるのが目的です。一方、CNAMEレコードは、あるドメインを別のドメインのエイリアスとして指定し、結果的にAレコードの指すIPアドレスへ誘導する役割を持っています。
レコード内容の違い
例えば、Aレコードで「test.com」を「190.1.2.0」に設定したとします。この場合、ユーザーが「www.test.com」にアクセスしてもAレコードには「www.test.com」の情報がないため、正しくWebサイトが表示されません。
しかし、CNAMEレコードを使って「www.test.com」を「test.com」にエイリアス指定すれば、どちらのURLでも同じWebサイトが表示されるようになります。
AレコードとCNAMEレコードの違いをまとめると以下の通りです。
- Aレコード
ホスト名とIPアドレスを直接関連付ける - CNAMEレコード
ドメイン名を別のドメイン名にエイリアス化し、間接的にIPアドレスへ誘導する
このように用途や役割に違いがあるため、適切な場面で使い分けることが重要です。
CNAMEレコードの設定方法と具体例
CNAMEレコードはDNS設定の中でも特に重要な役割を果たしますが、適切に設定しないとサイトの動作に影響を及ぼす可能性があります。ここでは、CNAMEレコードの基本的な設定方法と実際にどのように使われるのかを具体例とともに紹介します。
CNAMEレコードの基本的な設定手順
CNAMEレコードを設定するには以下の手順を踏みます。
- DNS管理画面にログインする
ドメインを管理しているDNSプロバイダー(お名前.com、Cloudflare、AWS Route 53など)にログインし、DNS設定画面にアクセスします。 - 新しいCNAMEレコードを追加する
「レコードを追加」ボタンをクリックし、以下の項目を入力します。- ホスト名:CNAMEレコードを設定したいドメイン(例:「www」)
- タイプ:「CNAME」を選択
- 値(ターゲット):リダイレクト先のドメイン(例:「example.com」)
- TTL(Time To Live):通常はデフォルト(3600秒など)で問題なし
- 設定を保存し、DNSの反映を待つ
変更を保存すると、DNSの設定が更新されます。通常、数分~24時間で反映されます。
CNAMEレコードの具体的な利用例
CNAMEレコードはさまざまなシーンで活用されます。以下に代表的なケースを紹介します。
- wwwあり・なしのドメインを統一する
例えば、「www.example.com」を「example.com」に統一する場合、CNAMEレコードを使って「www.example.com」を「example.com」にエイリアス指定します。これにより、どちらのURLでも同じサイトが表示されます。 - CDNを利用する際の設定
CloudflareやAWS CloudFrontなどのCDNを活用する場合、オリジンサーバーのドメイン名をCNAMEレコードで指定し、キャッシュを有効にすることができます。 - メールサーバーの設定
メール配信サービスを利用する場合、一部のサービスではCNAMEレコードを用いてDNS認証を行うケースがあります。
CNAMEレコードに別のCNAMEレコードを指定する方法
CNAMEレコードは「CNAMEレコードは他のデータと共存できない」 というルールがあり、これはRFC 1912で定められています。しかし、複数のホスト名に対して、それぞれ別のCNAMEレコードを設定することは可能です。
指定できない例
1つのホスト名に対して複数のCNAMEレコードを設定することはできません。
ホスト名 | レコード | 関連付けるWebサイト |
---|---|---|
test.com | CNAME | AAA.test.com |
test.com | CNAME | BBB.test.com |
このように同じホスト名(test.com)に異なるCNAMEレコードを複数設定することは不可です。
指定できる例
異なるホスト名に対して、それぞれ別のCNAMEレコードを指定することは可能です。
ホスト名 | レコード | 関連付けるWebサイト |
---|---|---|
test.com | CNAME | AAA.test.com |
abc.test.com | CNAME | BBB.test.com |
この場合、異なるホスト名ごとにCNAMEレコードが設定されているため問題ありません。
CNAMEレコードのメリットとデメリット
CNAMEレコードは便利なDNSレコードですが、すべての状況で万能ではありません。ここでは、CNAMEレコードの利点と欠点を整理し正しく活用するためのポイントを紹介します。
CNAMEレコードのメリット
CNAMEレコードを適切に活用すると以下のようなメリットがあります。
- ドメイン管理がシンプルになる
Aレコードと異なり、CNAMEレコードはドメイン名を別のドメイン名に関連付けるため、変更時のメンテナンスが容易です。 - サブドメインの管理が楽になる
例えば、「blog.example.com」や「shop.example.com」などをすべて「example.com」に紐づけることで、一括管理が可能になります。 - CDNやクラウドサービスとの相性が良い
クラウド環境ではIPアドレスが頻繁に変更されるため、AレコードではなくCNAMEレコードを利用することで、常に最新の情報に更新されるメリットがあります。
CNAMEレコードのデメリット
一方で、CNAMEレコードには以下のような制限やデメリットもあります。
- ルートドメイン(example.com)には設定できない
一般的なDNSの仕様上、ルートドメインにはCNAMEレコードを設定できません。これを解決するために、代替手段として「ALIASレコード」や「ANAMEレコード」が用いられることがあります。 - DNSクエリの回数が増える可能性がある
CNAMEレコードを経由すると、リダイレクト先のAレコードをさらに取得する必要があり、その分DNSの解決に時間がかかる場合があります。 - CNAMEレコードと他のDNSレコードは共存できない
すでにAレコードやMXレコードが設定されているドメインにはCNAMEレコードを追加できません。誤って設定すると、DNSの不整合が発生し、Webサイトやメールの受信に影響を及ぼすことがあります。
CNAMEレコードの注意点
CNAMEレコードを設定する際には、以下の点に注意しましょう。
- CNAMEレコードと他のDNSレコードは組み合わせ不可
- AレコードやMXレコードと同じホスト名にCNAMEレコードを設定することはできません。
- 特にNSレコード(ネームサーバーレコード)とCNAMEレコードを組み合わせることは禁止されています。
- CNAMEレコードが優先される
- CNAMEレコードが設定されたホスト名は、そのCNAMEのリダイレクト先が最優先され、その他のDNS情報は無視される ため、意図しない動作にならないよう注意が必要です。
- DNS設定のルールを守る
- CNAMEレコードの設定ミスは、Webサイトやメールの不具合につながる可能性があるため、DNSのルールをしっかり理解した上で設定を行いましょう。
このような制限があるのは、DNSの正しい動作を維持するためとセキュリティ上の理由によるものです。CNAMEレコードを活用する際は、適切なルールを守ることが大切です。
まとめ
CNAMEレコードは特定のドメイン名を別のドメイン名のエイリアスとして指定するためのDNSレコードです。主にWebサイトのリダイレクトやCDNの活用、サブドメインの管理などで活用されます。
一方で、CNAMEレコードにはAレコードやMXレコードと併用できないというルールがあり、設定を誤るとDNSの動作に影響を及ぼす可能性があります。そのため、CNAMEレコードを利用する際は用途を正しく理解し適切に設定することが重要です。
本記事で解説した内容を参考にしながら正しいCNAMEレコードの設定を行い、快適なWeb運用を実現しましょう。
