Route53 のエイリアスレコードについて

ざっくり概要をおさえる。※AWS公式Doc
Amazon Route 53 alias records provide a Route 53–specific extension to DNS functionality. Alias records let you route traffic to selected AWS resources, including but not limited to, CloudFront distributions and Amazon S3 buckets. They also let you route traffic from one record in a hosted zone to another record.
Amazon Route 53 のエイリアスレコードは、DNS機能を拡張する Route 53 独自の仕組み。
この機能により、CloudFrontディストリビューションやS3バケットなど、特定のAWSリソースに対してトラフィックをルーティングすることができる。また、同一ホストゾーン内の他のレコードへトラフィックを転送することも可能。
Unlike a CNAME record, you can create an alias record at the top node of a DNS namespace, also known as the zone apex. For example, if you register the DNS name example.com, the zone apex is example.com. You can't create a CNAME record for example.com, but you can create an alias record for example.com that routes traffic to www.example.com (as long as the record type for www.example.com is not of type CNAME).
エイリアスレコードは、CNAMEレコードとは異なり、DNSネームスペースの最上位(ゾーンエイペックス)に設定可能。
たとえば、example.com が zone apex である場合、CNAMEレコードは作成できないが、example.com に対して www.example.com へのエイリアスレコードを作成することは可能(ただし、www.example.com のレコードタイプが CNAME でない場合に限る)。

Route 53におけるDNSレコード構造の中での位置づけ
DNSレコードタイプ | 説明 |
---|---|
Aレコード | ドメイン名 → IPv4アドレス |
AAAAレコード | ドメイン名 → IPv6アドレス |
CNAMEレコード | ドメイン名 → 別のドメイン名(ルートドメインでは使用不可) |
MX / TXT / SRV | メールやサービス検出など用途別のDNSレコード |
Aliasレコード(★) | AWSリソースに名前解決可能にするRoute 53独自の拡張機能 |

具体的な機能(Aliasレコードができること)
機能 | 説明 |
---|---|
AWSリソースのDNS名をルートドメイン直下で指定可能 | 例: example.com → CloudFrontディストリビューション(通常CNAMEは不可) |
IPアドレス不要(動的に解決) | ELBのようにIPが変動するリソースに対してIP指定せず名前で解決できる |
Route 53ホストゾーン内で統合管理 | AWS内完結で外部DNS名への依存を減らせる |
DNSクエリに対するコスト不要 | Aliasレコードは料金が発生しない(通常のDNSクエリ課金とは異なる) |
Route 53のヘルスチェック連携 | 正常なS3バケットやELBにトラフィックを流すなどの構成が可能 |

対応するAWSサービスの例(Alias先)
対象リソース | 例 |
---|---|
CloudFrontディストリビューション | グローバルCDN |
Elastic Load Balancing (ALB/NLB) | Webアプリケーションの負荷分散先 |
API Gateway エンドポイント | REST APIやHTTP APIの公開ドメイン名 |
S3 静的ウェブサイトホスティング | S3での静的サイトホスティング |
VPCエンドポイント | 内部向け接続用リソース |
他のRoute 53レコード | 名前解決のリダイレクト先 |

AliasレコードとCNAMEレコードの比較
1. ルーティング先(リダイレクト可能なリソース)
Resources that you can redirect queries to
Aliasレコード
特定のAWSリソースにのみリダイレクト可能。例として以下がある。
- Amazon S3バケット
- CloudFrontディストリビューション
- 同じRoute 53ホストゾーン内の他のレコード
→例えば、acme.example.com を同名のS3バケットや同じホストゾーン内の zenith.example.com にリダイレクト可能。
CNAMEレコード
任意のDNSレコードにリダイレクト可能。
例:acme.example.com を zenith.example.com や acme.example.org など別のドメイン名にリダイレクトでき、Route 53のDNS管理外でも可能。
2. Zone Apex(ルートドメイン)での使用
Creating records that have the same name as the domain (records at the zone apex)
Aliasレコード
ほとんどの場合、ゾーンエイペックス(例:example.com)に同名のAliasレコードを作成できる。
ただし、ゾーンエイペックスから同じホストゾーン内のCNAMEレコード(例:zenith.example.com)へリダイレクトする場合は例外。
Aliasレコードはルーティング先のレコードタイプと同じタイプである必要があり、ゾーンエイペックスにCNAMEは作れない。
CNAMEレコード
ゾーンエイペックスに同名のCNAMEレコードは作成できない。
これはドメインのホストゾーンでもサブドメインのホストゾーンでも同様。
3. DNSクエリの料金
Pricing for DNS queries
Aliasレコード
AWSリソースへのAliasクエリは無料(Route 53の料金ページ参照)。
CNAMEレコード
- クエリ毎に料金が発生。
- Route 53内の別レコードへリダイレクトする場合は、クエリが2回発生するため2回分課金される。
- 他のDNSサービスへリダイレクトする場合はRoute 53側は1回課金され、他のDNSサービスが追加課金する可能性あり。
4. DNSクエリで指定されたレコードタイプへの応答
Record type specified in the DNS query
Aliasレコード
問い合わせ名とレコードタイプ(A、AAAAなど)がAliasレコードと一致した場合のみ応答する。
CNAMEレコード
レコードタイプに関係なく、問い合わせ名に対して常にCNAMEリダイレクトを返す。
5. digやnslookupの応答での表示
Aliasレコード
digやnslookupの応答では、作成時に指定したレコードタイプ(AやAAAAなど)として表示される。AliasであることはRoute 53の管理コンソールやAPIでのみ確認可能。
CNAMEレコード
digやnslookupの応答で常に「CNAME」として表示される。

AliasレコードとCNAMEレコードの比較
観点 | Aliasレコード | CNAMEレコード |
---|---|---|
ルートドメイン使用 | ✅ 可能 | ❌ 不可 |
リダイレクト発生 | ❌ なし | ✅ あり(CNAMEチェーン) |
クエリの高速性 | ⏩ 高い(1回) | 🌀 やや遅くなる(2段階) |
AWS連携 | ✅ 特化(CloudFront、ALBなど) | ⭕ 一般的なドメインでも使用可能 |
対象 | AWSリソース限定 | 任意のドメイン名 |
CNAMEレコードを使った場合(例: www.example.com → elb-123456.ap-northeast-1.elb.amazonaws.com)
- www.example.com は CNAME で ELB のドメインにリダイレクトされる。
- DNSリゾルバはまず www.example.com を解決 → CNAME → elb-xxx...elb.amazonaws.com を再帰的に解決する必要がある。
- クエリ回数が増え、わずかな遅延が生じることもある。
エイリアスレコードを使った場合(例: example.com → elb-123456.ap-northeast-1.elb.amazonaws.com)
- example.com は Route 53 のホストゾーンで管理されており、Aliasレコードで ELB にマッピングされている。
- Route 53 が ELB の IP を直接返すため、CNAME リダイレクトは発生しない。
- DNSリゾルバから見ると、通常の A レコードと同じように動作する。

利用シーン(どういう現場で使われることが多いか)
利用シーン | 説明 |
---|---|
ルートドメインのWebホスティング | example.com に CloudFront や ALB を紐づける際に利用。CNAMEが使えないため Aliasレコードが必須。 |
高可用構成 | Route 53のヘルスチェック機能を活用し、複数リージョン間でフェイルオーバーDNSを実現する場合に使用される。 |
API Gatewayとの統合 | APIのカスタムドメイン(例:api.example.com)に対して AliasレコードでAPI Gatewayを関連付ける際に利用。 |
静的サイトS3ホスティング | S3バケットをドメインに関連付けるときに Aliasレコードを使い、ドメイン名で静的サイトを公開可能にする場合。 |
CloudFrontでの高速配信 | CloudFrontのDNS名はランダムなサブドメインなので、カスタムドメインにAliasでマッピングし高速コンテンツ配信を実現。 |

Q: そもそもZone Apex(ゾーンエイペックス)とは何か?
- 例えばドメイン名が
example.com
の場合、このexample.com
自体が「Zone Apex」。 - サブドメイン (例:
www.example.com
やapi.example.com
) はゾーンエイペックスの下にぶら下がる階層になる。
なぜ重要か?
- DNSのホストゾーン(管理単位)は通常、ドメイン名単位で作られる。
- Zone Apex はそのホストゾーンの「頂点」にあたるため、この名前でDNSレコードを作成することは特殊な制約がある。
実務的な制約例
▽CNAMEレコードはゾーンエイペックスに対して設定できない。
→ これがRoute 53のAliasレコードが必要になる理由の一つとなる。
▽ルートドメイン (Zone Apex) に直接IPアドレス (AレコードやAliasレコード) を割り当てる必要があるため、CNAMEの代わりにAliasレコードが使われる。

参考にさせていただいた記事