MailData

CNAME VS Aレコード

CNAME VS Aレコード

2024年4月20日
著者: Ahona Rudra
翻訳: 永 香奈子

この記事はPowerDMARCのブログ記事 CNAME Vs A Record の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。


DNS(ドメインネームシステム)は、私たちのWebサーバーをWebサイトにリンクするものです。
これは、サーバーが目的のWebサイトへ案内するために使用する電話帳のようなものです。
DNSの概念は、さまざまな種類のレコードを中心に構築されています。

本ブログでは、CNAMEレコードとAレコードの違いに焦点を当てます。

DNSレコードとは?

DNSは、IPアドレスではなくドメイン名を入力することでWebサイトにアクセスできるようにするために作られました。
無数のWebサイトのIPアドレスを記憶したり管理したりするのは、現実的に不可能だからです。
DNSレコードは、ドメインの権威DNSサーバー上に存在し、ドメインやWebサイトの機能を支える鍵となります。

このレコードには、ドメインがさまざまなリクエストをどのように処理するか、関連付けられたIPアドレスなどの情報が含まれています。
DNS レコードにはいくつかの種類があり、その重要性は「極めて重要」なものから「便利なもの」までさまざまです。
代表的なDNSレコードとして、CNAMEレコードとAレコードがあります。

Aレコードは、基本的なDNSレコードとして極めて重要なものとされています。
一方で、CNAMEレコードは理論上「必須ではない」とされていますが、実際には重要と見なされることが多く、Webサイトの可用性を高めるために適用するのが望ましいとされています。

CNAMEレコードとは?

CNAMEレコードとAレコードの違いを理解する前に、それぞれの目的を簡単に説明します。
DNSのCNAMEレコードは、エイリアスドメインやサブドメインを親ドメインに関連付けるためのレコードです。
ここで C は「canonical(正規の)」を意味し、サブドメインを正規のドメイン名(カノニカルネーム)や、別のDNSホスト名のレコードと関連付ける役割を持ちます。

重要なのは、CNAMEレコードはサブドメインと親ドメインを関連付けるが、必ずしも同じページをロードするとは限らない、という点です。
サブドメインを親ドメインに接続するためには、適切なCNAMEレコードを作成する必要があります。
つまり、特定のドメインのサブドメインにアクセスした際に、必ずしも親ドメインのホームページ(トップページ)が表示されるわけではありません。

代わりに、それぞれのドメインに対応する適切なファイルへリダイレクトされます。
例えば、ブログページ、商品ページ、「会社概要」ページなどが該当します。
CNAMEレコードは、WebマスターがWebサイトのIPアドレスを変更した際に役立ちます。

すべてのサブドメインのAレコードを個別に変更するのではなく、親WebサイトのAレコードを変更するだけで済みます。
CNAMEレコードを確認したい場合は、CNAMEレコード検索ツールを使用すると確認できます。

Aレコードとは?

DNSのAレコードの目的は、IPアドレスを入力せずに目的のWebサイトへアクセスできるようにすることです。
Aレコードには、特定のWebサイトに対応するIPアドレスの情報が含まれており、ここで A は「address(アドレス)」 を意味します。
Aレコードがないと、ドメイン名を使ってWebサイトにアクセスすることはできません。

ブラウザのアドレスバーにドメイン名を入力すると、対応するサーバーがそのドメインのIPアドレスを返します。
このIPアドレスはゾーンファイル内に記録されており、その情報をもとにWebサイトへアクセスできます。
例えば、ブラウザのアドレスバーに 「powerdmarc」 と入力すると、DNSのAレコードが対応するIPアドレスを検索し、Webサイトへ誘導します。

尚、AレコードはIPv4アドレスのみに対応し、IPv6には対応していません。
IPv6を使用する場合は、AAAAレコードが必要な点にご注意ください。
Aレコードを確認したい場合は、Aレコード検索ツールを使用すると確認できます。

DNSのAレコードとCNAMEレコードの違い

AレコードとCNAMEレコードの違いを詳しく理解するために、次の例を考えてみましょう。

ホスト名/ドメイン/サブドメイン DNSレコードタイプ 宛先
example.com Aレコード 12.345.67.89
www.example.com CNAMEレコード example.com
blog.example.com CNAMEレコード example.com
shop.example.com CNAMEレコード shop.work.com

CNAMEレコードとAレコードのサブドメインの違いに注目すると、Aレコードの目的は、親ドメインまたはホスト名を正しいIPアドレスにリンクすることです。
一方、CNAMEレコードは、ドメインのエイリアス(www)やサブドメイン(mail)を、Aレコードに記載されたメインドメインにリンクします。
「shop」ドメインは「work」サーバにリダイレクトされ、製品がホストされるIPアドレスを管理します。

CNAMEレコードとAレコードのもう一つの大きな違いは、AレコードがWebサイトをIPアドレスに接続するのに対し、CNAMEレコードはサブドメインやエイリアスをIPアドレスではなく別のドメインレコードに接続する点です。
すべてのCNAMEレコードは、親ドメインをターゲットとし、親ドメインにリンクされた他のエイリアスをターゲットにしてはいけません。
これにより、DNSルックアップのプロセスに追加の手順が発生し、時間が余分にかかり、不要な複雑さが生じるからです。