DNSのCNAMEレコードとは?
管理者がCNAMEレコードを作成する場合、IPアドレス(例えばAレコードの場合など)ではなく、別のDNSレコードを指すレコードを作成することになります。 CNAMEはエイリアスとして機能します。具体的には、エンドユーザーがCNAMEに対応するURLを入力すると、まずそのCNAMEを見つけるためのDNSルックアップが行われ、続いてAレコードを見つけるための別のルックアップが行われます。AレコードからIPアドレスが返されることで、エンドユーザーと宛先との間の通信が可能になります。
CNAMEレコードはAレコードを指すこともあれば、別のCNAMEレコードを指すこともあります。ただし、後者の場合、さらに多くのルックアップが実行されるため、遅延が増加し、ユーザー体験に影響を与える可能性があります。
CNAMEレコードの例
|
Record |
Type |
Value |
|---|---|---|
|
two.menandmice.com |
CNAME |
one.menandmice.com |
|
one.menandmice.com |
A |
192.168.100.2 |
DNSのCNAMEレコードはどのように機能するのでしょうか?
CNAMEレコードにはいくつかの異なるユースケースがあります。 一般的に、企業では、所有するすべてのサブドメインに対して個別にAレコードを作成するのではなく、ルートドメイン用のAレコードを1つ作成し、各サブドメインに対して複数のCNAMEレコードを作成します。これにより、エンドユーザーがサブドメインを指定したURLを入力すると、ルートドメインにリダイレクトされます。
この場合、blog.example.com にアクセスすると、エンドユーザーは example.com にリダイレクトされます:
|
Record |
Type |
Value |
|---|---|---|
|
two.menandmice.com |
CNAME |
example.com |
|
example.com |
A |
192.168.100.5 |
上記の例では、エンドユーザーは「blog.example.com」と入力します。ドメインネームシステム(DNS)はその名前を検索し始めますが、それがCNAMEレコードであることを認識すると、example.comに対するクエリを再実行します。これによりIPアドレスが特定され、通信が開始されます。
CNAMEが別のCNAMEを指している場合、これにより複数のクエリが発生します:
|
Record |
Type |
Value |
|---|---|---|
|
blogs.example.com |
CNAME |
blog.example.com |
|
blog.example.com |
CNAME |
example.com |
|
example.com |
A |
192.168.100.5 |
上記の例をより適切に記述する方法:
|
Record |
Type |
Value |
|---|---|---|
|
blogs.example.com |
CNAME |
example.com |
|
blog.example.com |
CNAME |
example.com |
|
example.com |
A |
192.168.100.5 |
CNAMEレコードの使用場面
DNSのCNAMEレコードは、あるドメイン名を別のドメイン名のエイリアスとして機能させたい場合に最適です。これにより、DNS管理が簡素化され、冗長性を回避できます。
以下は、CNAMEレコードが最適な選択肢となる一般的なユースケースです:
1. サブドメインをルートドメインにリダイレクトする
複数のサブドメイン(blog.example.com、shop.example.comなど)をexample.comに指向させたい場合は、CNAMEレコードを使用できます。これにより、すべてのトラフィックが単一のAレコードを経由するようになり、更新や管理が容易になります。
2. サードパーティ製サービスの利用
GitHub Pages、Shopify、WordPress などのプラットフォームと統合する際、CNAME レコード(例:store.example.com を shop.myshopify.com に指すもの)を作成するよう指示される場合があります。CNAME レコードを使用することで、IP アドレスを手動で管理することなく、このようなエイリアス設定が可能になります。
3. ロードバランサーとCDN
CNAMEレコードは、ドメイン名をコンテンツ配信ネットワーク(CDN)や負荷分散されたリソースに指向するために頻繁に使用されます。これらは通常、静的IPアドレスの代わりに動的なエンドポイント(例:cdn.example.net)を使用します。
4. Aレコードの重複を回避する
同じIPアドレスを指すサブドメインが複数ある場合、個別のAレコードを管理しているとエラーが発生する可能性があります。DNSのCNAMEレコードを使用することで一元的な制御が可能になり、1つのAレコードを更新するだけで、すべてのエイリアスが自動的に更新されます。
5. 開発環境またはステージング環境の構築
CNAME を使用すると、dev.example.com や staging.example.com といったエイリアスを作成し、本番環境のメインドメインや特定のサーバー環境を指すように設定できます。
プロのヒント:DNSのCNAMEレコードは、常に別のドメイン名を指す必要があり、IPアドレスを直接指すことはできません。また、ほとんどのDNSプロバイダーでは、ルートドメイン(アペックスとも呼ばれる)でCNAMEレコードを使用することはできません。
BlueCat MicetroでDNS管理を簡素化
適切なツールがなければ、複雑なハイブリッド環境全体での DNS CNAME レコードの管理は、すぐに煩雑なものになってしまいます。 BlueCat MicetroDNS管理は、一元化された自動化されたDNS管理機能を提供し、手作業によるミスの排除、可視性の向上、そして容易な拡張を実現します。CNAMEレコード、Aレコード、あるいはゾーン全体の管理のいずれにおいても、Micetroはポリシーの適用、オーケストレーション、および既存のインフラストラクチャ全体にわたるシームレスな統合を確実に実現します。