このブログはこんな人向け
- Route53やDNSの基本を理解したい方
- AレコードとCNAMEレコードの違いが分からず迷っている方
- DNSレコードの種類と使い分けを知りたい方
- Route53を使ったDNS設定を実施したい方
この記事で得られること
- Route53とDNSの基本概念が分かる
- 各種DNSレコードタイプ(A、AAAA、CNAME、MX、TXT等)の違いと使い分けが分かる
- Route53特有の機能(エイリアスレコード、ルーティングポリシー)が理解できる
- 実際のユースケースに応じたDNS設定の判断材料が得られる
前提知識
- AWSマネジメントコンソールの基本操作ができる
- ドメイン名の基本概念(example.comなど)を理解している
- IPアドレスの基本を知っている
Route53を活用したDNS完全ガイド:レコードタイプの違いと使い分け
はじめに
Amazon Route 53は、AWSが提供する可用性と拡張性に優れたDNS(Domain Name System)ウェブサービスです。本記事では、DNSの基本からRoute53の特徴、そして各種レコードタイプの違いと実践的な使い分けまでを解説します。
DNSとは?
DNS(Domain Name System)は、人間が読みやすいドメイン名(例:www.example.com)を、コンピュータが理解できるIPアドレス(例:192.0.2.1)に変換する仕組みです。
DNSの動作フロー
- ユーザーがブラウザに「www.example.com」を入力
- DNSリゾルバがDNSサーバーに問い合わせ
- DNSサーバーが該当するIPアドレスを返答
- ブラウザがそのIPアドレスのサーバーに接続
Route53の特徴
主な機能
| 機能 | 説明 |
|---|---|
| ドメイン登録 | 新規ドメインの購入・管理 |
| DNSルーティング | トラフィックのルーティング制御 |
| ヘルスチェック | エンドポイントの正常性監視 |
| トラフィック管理 | 複数のルーティングポリシーによる高度な制御 |
Route53のメリット
- 高可用性: 複数のネームサーバーによる冗長化
- スケーラビリティ: 自動スケーリングで大量のクエリにも対応
- AWSサービス統合: ELB、CloudFront、S3等とのシームレスな連携
- 低レイテンシ: グローバルに分散されたDNSサーバー
主要なDNSレコードタイプ
1. Aレコード(Address Record)
概要
ドメイン名をIPv4アドレス(32ビット)にマッピングするレコード。最も基本的で頻繁に使用されるレコードタイプです。
設定例
example.com A 192.0.2.1
www.example.com A 192.0.2.1
メリット
- シンプルで分かりやすい
- 直接IPアドレスを指定できる
- DNSクエリが1回で完結(高速)
デメリット
- IPアドレス変更時に手動更新が必要
- ルートドメイン(example.com)にも設定可能
ユースケース
- Webサーバーの静的IPアドレスへのマッピング
- EC2インスタンス(Elastic IP付き)への直接マッピング
- オンプレミスサーバーとの統合
2. AAAAレコード(IPv6 Address Record)
概要
ドメイン名をIPv6アドレス(128ビット)にマッピングするレコード。AレコードのIPv6版です。
設定例
example.com AAAA 2001:0db8:85a3:0000:0000:8a2e:0370:7334
www.example.com AAAA 2001:0db8:85a3::8a2e:0370:7334
メリット
- IPv6対応に必須
- 将来的な拡張性
ユースケース
- IPv6対応サイトの構築
- デュアルスタック構成(IPv4とIPv6の両対応)
3. CNAMEレコード(Canonical Name Record)
概要
ドメイン名を別のドメイン名にマッピングする(エイリアスを作成する)レコード。
設定例
www.example.com CNAME example.com
blog.example.com CNAME server.hosting.com
メリット
- 複数のドメイン名を1つのホストにマッピング可能
- 参照先の変更が容易(CNAMEの参照先を変更すれば全て反映)
デメリット
- ルートドメイン(example.com)には設定不可
- DNSクエリが複数回必要(パフォーマンス低下の可能性)
- 他のレコードタイプと共存不可(同一名でMXやTXTと併用できない)
重要な制約
# ❌ 不可: ルートドメインにCNAMEは設定できない
example.com CNAME lb.example.com
# ✅ 可能: サブドメインにはCNAME設定可能
www.example.com CNAME lb.example.com
ユースケース
- CDN(CloudFront等)のディストリビューション名へのマッピング
- ELB(Elastic Load Balancer)のDNS名へのマッピング
- サブドメインの管理を簡素化
4. エイリアスレコード(Route53特有機能)
概要
Route53独自の機能で、CNAMEと似ていますが、ルートドメインにも設定可能かつ、追加料金不要でAWSリソースにマッピングできます。
設定例
# ルートドメインをALBにマッピング(CNAMEでは不可能)
example.com ALIAS A my-alb-123456789.ap-northeast-1.elb.amazonaws.com
# CloudFrontディストリビューションへのマッピング
www.example.com ALIAS A d123456abcdef8.cloudfront.net
メリット
- ルートドメインに設定可能(CNAMEとの最大の違い)
- DNSクエリが無料(Route53内のリソースへのクエリは課金対象外)
- AWSリソースのIPアドレス変更に自動追随
- ヘルスチェック統合が可能
デメリット
- Route53およびAWSリソース専用(外部サービスには使用不可)
対応するAWSリソース
- CloudFront ディストリビューション
- Elastic Load Balancing(ALB/NLB/CLB)
- S3 Webサイトエンドポイント
- 別のRoute53レコード
- API Gateway
- VPC エンドポイント
CNAMEとの比較表
| 項目 | CNAME | Aliasレコード |
|---|---|---|
| ルートドメイン設定 | ❌ 不可 | ✅ 可能 |
| DNSクエリ課金 | 課金対象 | 無料(AWS内) |
| DNS解決速度 | 遅い(複数クエリ) | 速い(1回) |
| 参照先 | 任意のドメイン | AWSリソースのみ |
| 他レコードとの共存 | 不可 | 可(一部) |
| TTL設定 | 可能 | AWS管理 |
ユースケース
- ルートドメインをALB/CloudFrontに向ける
- S3静的Webサイトホスティングへのマッピング
- AWSサービス間の統合
5. MXレコード(Mail Exchange Record)
概要
ドメイン宛のメールを受信するメールサーバーを指定するレコード。
設定例
example.com MX 10 mail1.example.com
example.com MX 20 mail2.example.com
優先度
- 数値が小さいほど優先度が高い
- プライマリ/セカンダリのメールサーバー構成が可能
ユースケース
- 独自ドメインのメール受信設定
- Google Workspace、Microsoft 365等の外部メールサービス統合
- SPFやDKIM設定と組み合わせたメール認証(別途設定が必要)
6. NSレコード(Name Server Record)
概要
ドメインのDNSサーバー(ネームサーバー)を指定するレコード。
設定例
example.com NS ns-123.awsdns-12.com
example.com NS ns-456.awsdns-34.net
example.com NS ns-789.awsdns-56.org
example.com NS ns-012.awsdns-78.co.uk
ユースケース
- サブドメインの委任
- DNSサーバーの変更
Route53のルーティングポリシー
Route53では、単純なDNS解決だけでなく、高度なトラフィック管理が可能です。
1. シンプルルーティング
- 単一リソースへの基本的なルーティング
- 複数のIPアドレスをランダムに返すことも可能
2. 加重ルーティング(Weighted Routing)
- トラフィックを指定した割合で分散
- カナリアリリースやA/Bテストに最適
3. レイテンシーベースルーティング
- ユーザーに最も低レイテンシのリソースを自動選択
- グローバル展開アプリケーションに最適
4. フェイルオーバールーティング
- プライマリリソース障害時にセカンダリへ自動切り替え
- ヘルスチェックと組み合わせて使用
5. 地理的位置情報ルーティング
- ユーザーの地理的位置に基づいてルーティング
- 地域別コンテンツ配信やコンプライアンス対応
6. 地理的近接性ルーティング
- リソースとユーザーの地理的距離に基づいてルーティング
- バイアス値で調整可能
7. 複数値回答ルーティング
- 複数の正常なリソースをランダムに最大8つ返す
- シンプルな負荷分散
実践的なユースケース別推奨設定
ケース1: 静的Webサイト(EC2 + Elastic IP)
# ルートドメイン
example.com A 203.0.113.10
# wwwサブドメイン
www.example.com CNAME example.com
ケース2: ALB配下の高可用性Webアプリ
# ルートドメイン(Aliasレコード使用)
example.com ALIAS A my-alb-123.ap-northeast-1.elb.amazonaws.com
# wwwサブドメイン
www.example.com ALIAS A my-alb-123.ap-northeast-1.elb.amazonaws.com
ポイント: CNAMEではなくAliasレコードを使用することで、ルートドメインにも設定可能。
ケース3: CloudFront + S3 静的サイトホスティング
# CloudFrontディストリビューション
example.com ALIAS A d123abc.cloudfront.net
www.example.com ALIAS A d123abc.cloudfront.net
ケース4: 外部メールサービス(Google Workspace)統合
# MXレコード
example.com MX 1 aspmx.l.google.com
example.com MX 5 alt1.aspmx.l.google.com
example.com MX 5 alt2.aspmx.l.google.com
ケース5: マルチリージョン構成(フェイルオーバー)
# プライマリ(東京リージョン)
example.com A Primary 203.0.113.10 (ヘルスチェックID: hc-tokyo)
# セカンダリ(大阪リージョン)
example.com A Secondary 203.0.113.20 (ヘルスチェックID: hc-osaka)
ルーティングポリシー: フェイルオーバー
コスト最適化のポイント
1. Aliasレコードの活用
- Route53内のAWSリソースへのクエリは無料
- CNAMEの代わりにAliasレコードを使用
2. TTLの適切な設定
- 安定した環境では長めのTTLでクエリ数を削減
3. ヘルスチェックの最適化
- 必要最小限のヘルスチェック間隔
- 複数リージョンでのチェックは本当に必要か検討
まとめ
レコードタイプの選択フローチャート
1. マッピング先は?
├─ IPv4アドレス → Aレコード
├─ IPv6アドレス → AAAAレコード
└─ ドメイン名
├─ AWSリソース
│ └─ ルートドメイン?
│ ├─ YES → Aliasレコード
│ └─ NO → Aliasレコード or CNAME
└─ 外部リソース
└─ サブドメイン?
├─ YES → CNAMEレコード
└─ NO → Aレコード(外部IPアドレス)
重要ポイント
- ルートドメイン設定: CNAMEは不可、Aliasレコードを使用
- AWSリソース統合: 可能な限りAliasレコードを活用(無料クエリ)
- TTL管理: 環境に応じた適切な設定
- ルーティングポリシー: 要件に応じた高度なトラフィック制御
- ヘルスチェック: フェイルオーバー構成時は必須
一般的な推奨構成
| シナリオ | 推奨レコードタイプ |
|---|---|
| 静的IP(EC2) | Aレコード |
| ルートドメイン + ALB/NLB | Aliasレコード |
| ルートドメイン + CloudFront | Aliasレコード |
| ルートドメイン + S3 静的サイト | Aliasレコード |
| サブドメイン + 外部サービス | CNAMEレコード |
| メール受信 | MXレコード |
Route53とDNSレコードを正しく理解し、適切に設定することで、高可用性かつコスト効率の良いインフラストラクチャを構築できます。