メインコンテンツまでスキップ
最新1mo ago

Route 53 DNS セットアップ

ドメイン登録、ホストゾーンの設定、AWS Route 53 での DNS レコード設定に関する簡潔なステップバイステップガイド。


Route 53 とは?

Route 53 は AWS の DNS (Domain Name System) サービスです。以下の 3 つの機能を提供します:

  1. ドメイン登録 — ドメイン名の購入と管理

  2. DNS ルーティング — ドメイン名を IP アドレスに変換

  3. ヘルスチェック — リソースの健全性を監視


ステップ 1: ドメインの登録

コンソール

  1. Route 53 コンソールRegistered domainsRegister domain に進みます

  2. 目的のドメイン名を検索し、TLD (.com.dev.io など) を選択します

  3. カートに追加 → Continue

  4. 連絡先情報を入力します (登録者、管理者、技術担当者)

  5. Privacy Protection を有効にします (WHOIS から情報を非表示にします — 常に有効にしてください)

  6. Auto-renew をオン/オフにします

  7. 確認 → 利用規約に同意 → Submit

登録後の動作

  • AWS はドメインと同じ名前の ホストゾーン を自動作成します

  • 4 つの Name Server (NS) レコードがホストゾーンに割り当てられます

  • ドメイン登録には 最大 3 日 かかります (通常は .com では数分です)

  • 確認メール が届きます — リンクをクリックしないとドメインが中止されます

料金

  • ドメイン料金: TLD により異なります (.com は約 $13/年、.dev は約 $14/年)

  • ホストゾーン: $0.50/月

  • DNS クエリ: $0.40 per million queries

  • ドメイン料金は 払い戻し不可 で、登録後は ドメイン名を変更できません


ステップ 2: ホストゾーンについて

ホストゾーン は特定のドメインの DNS レコードのコンテナです。ドメインのすべてのルーティング規則を保持するフォルダと考えてください。

パブリックとプライベートのホストゾーン

タイプ用途アクセス可能な場所
パブリックインターネットからのトラフィックをルーティングインターネット上のどこからでも
プライベートVPC 内のトラフィックをルーティング関連 VPC 内のみ

自動作成レコード

ホストゾーンが作成されるとき、Route 53 は自動的に以下を追加します:

  • NS レコード — ゾーンに割り当てられた 4 つのネームサーバーをリストします

  • SOA レコード — ゾーンについての管理情報を含みます (authority start)

ヒント: ホストゾーンを削除して再作成する場合、NS レコードは異なります。レジストラで名前サーバーを更新する必要があります。


ステップ 3: 外部レジストラで Route 53 を使用

ドメインを別の場所 (GoDaddy、Namecheap、Google Domains など) で購入した場合:

  1. Route 53 で パブリックホストゾーン をドメイン名で作成します

  2. ホストゾーンから 4 つの NS レコード をコピーします

  3. レジストラの DNS 設定に移動 → 名前サーバーを Route 53 NS レコードに置き換えます

  4. 伝播を待ちます (最大 48 時間 かかることができます、通常はより速いです)


ステップ 4: DNS レコードタイプ

コアレコードタイプ

レコード動作例の値
Aドメインを IPv4 アドレスにマップ192.0.2.1
AAAAドメインを IPv6 アドレスにマップ2001:0db8::1
CNAMEドメインを別のドメイン名にマップapp.example.com → my-alb.us-east-1.elb.amazonaws.com
MXメールサーバーのルーティング10 mail.example.com
TXTテキストデータ (SPF、DKIM、確認)"v=spf1 include:_spf.google.com ~all"
NSサブドメインを他のネームサーバーに委譲ns-123.awsdns-45.com
CAASSL 証明書を発行できる CA を指定0 issue "amazon.com"

エイリアスレコード (Route 53 特有)

エイリアスレコードは Route 53 固有の機能です。CNAME のように動作しますが、主な利点があります:

機能エイリアスCNAME
ゾーンの頂点で機能 (example.com)✅ はい❌ いいえ
AWS リソースへのクエリ費用無料$0.40/million
ターゲットAWS リソースのみ任意のドメイン
応答実際の IP アドレスを返す別のドメイン名を返す

以下を指す場合はエイリアスを使用: ALB、CloudFront、S3 ウェブサイト、API Gateway、ECS、Elastic Beanstalk

以下を指す場合は CNAME を使用: AWS 以外のターゲット (Vercel、Netlify、Heroku など)

重要なルール: ゾーンの頂点 (example.com) では CNAME を作成できません。代わりにエイリアスレコードを使用してください。


ステップ 5: DNS レコードの作成

コンソール

  1. Route 53ホストゾーン → ゾーンを選択

  2. Create record をクリック

  3. ウィザードビューの場合は Quick create に切り替えます

一般的なセットアップ

ドメインを ALB に指す (エイリアス)

Record name: (頂点の場合は空白、またはウェブサイト用に "www" を入力)
Record type: A
Alias: ON
Route traffic to: Alias to Application and Classic Load Balancer
Region: ALB のリージョン
Load balancer: ドロップダウンから選択

サブドメインを EC2 インスタンスに指す (A レコード)

Record name: app
Record type: A
Value: 54.123.45.67
TTL: 300

サブドメインを外部サービスに指す (CNAME)

Record name: blog
Record type: CNAME
Value: my-site.netlify.app
TTL: 300

Google Workspace でメールを設定 (MX)

Record name: (空白)
Record type: MX
Value:
1 ASPMX.L.GOOGLE.COM
5 ALT1.ASPMX.L.GOOGLE.COM
5 ALT2.ASPMX.L.GOOGLE.COM
10 ALT3.ASPMX.L.GOOGLE.COM
10 ALT4.ASPMX.L.GOOGLE.COM
TTL: 3600

SSL 証明書の検証 (CNAME)

ACM (AWS Certificate Manager) を使用する場合:

  1. ACM で証明書をリクエスト

  2. ACM が CNAME 名と値を提供

  3. Route 53 で CNAME レコードを作成 (ACM が自動作成できます)

  4. 検証を待機 (通常は数分)


ステップ 6: ルーティングポリシー

ポリシー使用例
シンプル単一リソース、基本的なルーティング
加重リソース間でトラフィックを分割 (例: 70/30 ブルーグリーンデプロイ)
フェイルオーバーヘルスチェック付きのアクティブ-パッシブセットアップ
レイテンシ最低レイテンシーリージョンにルーティング
地理的ロケーションユーザーの国/大陸に基づくルーティング
地理的近接性リソースへの地理的距離に基づくルーティング
マルチバリュー回答複数の健全な IP を返す (基本的な負荷分散)

ステップ 7: ヘルスチェック

ヘルスチェックはエンドポイントを監視し、DNS フェイルオーバーをトリガーできます。

  1. Route 53ヘルスチェックヘルスチェックを作成

  2. 指定: エンドポイント IP またはドメイン、ポート、パス (例: /health)

  3. チェック間隔を設定: 30 秒 (標準) または 10 秒 (高速、費用が増加)

  4. 失敗しきい値を設定 (デフォルト: 3 連続失敗)

  5. ヘルスチェックを DNS レコードにリンク

ヘルスチェックのコストは AWS エンドポイント で $0.50/月、AWS 以外のエンドポイント で $0.75/月 です。


AWS CLI リファレンス

ホストゾーンを作成

aws route53 create-hosted-zone \
--name example.com \
--caller-reference "unique-string-$(date +%s)"

A レコードを作成

aws route53 change-resource-record-sets \
--hosted-zone-id Z0123456789ABC \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"TTL": 300,
"ResourceRecords": [{"Value": "54.123.45.67"}]
}
}]
}'

エイリアスレコードを作成 (ALB)

aws route53 change-resource-record-sets \
--hosted-zone-id Z0123456789ABC \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "example.com",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "Z35SXDOTRQ7X7K",
"DNSName": "my-alb-123.us-east-1.elb.amazonaws.com",
"EvaluateTargetHealth": true
}
}
}]
}'

ホストゾーン内のレコードをリストアップ

aws route53 list-resource-record-sets \
--hosted-zone-id Z0123456789ABC

レコードを削除


# CREATE と同じですが Action を "DELETE" に変更

# レコード値は完全に一致する必要があります


一般的なシナリオ

S3 + CloudFront 上の Docusaurus サイト

  1. S3 バケットを作成 → 静的ホスティングを有効化

  2. CloudFront ディストリビューションを作成 → オリジンを S3 に設定

  3. example.comwww.example.com の ACM 証明書をリクエスト (us-east-1 の必須)

  4. エイリアス A レコードexample.com → CloudFront ディストリビューション に作成

  5. エイリアス A レコードwww.example.com → CloudFront ディストリビューション に作成

www を頂点にリダイレクト (またはその逆)

  1. www.example.com という名前の S3 バケットを作成

  2. すべてのリクエストを example.com にリダイレクトするように S3 を設定

  3. エイリアス A レコードwww.example.com → S3 ウェブサイトエンドポイント に作成

API のサブドメイン

api.example.com → ALB または API Gateway へのエイリアス


TTL (Time to Live)

TTL は DNS リゾルバーがレコードをキャッシュする期間 (秒単位) を指示します。

TTL期間使用例
601 分移行または DNS 変更中
3005 分ほとんどのレコードの標準
36001 時間めったに変更されない安定レコード
8640024 時間非常に安定したレコード (NS、MX)

ヒント: DNS 変更を行う前に、あらかじめ 1 日前に TTL を 60 秒に下げます。変更が伝播した後、戻します。

注: エイリアスレコードは TTL を持ちません — Route 53 はターゲットリソースのデフォルト TTL を使用します。


トラブルシューティング

DNS が伝播したか確認


# 特定の DNS サーバーから確認
dig example.com @ns-123.awsdns-45.com

# A レコードを確認
dig A example.com

# CNAME を確認
dig CNAME www.example.com

# クイック確認
nslookup example.com

一般的な問題

問題修正
ドメインが解決されないレジストラとホストゾーン間の NS レコードが一致するか確認
SSL 証明書の検証に失敗Route 53 に CNAME 検証レコードが存在することを確認
頂点での CNAME が失敗代わりにエイリアスレコードを使用してください — CNAME はゾーン頂点では使用できません
変更が反映されないTTL 有効期限を待つか、変更前に TTL を下げます
エイリアスターゲットがドロップダウンに表示されないリソースが同じアカウント内にあることを確認するか、DNS 名を手動で入力

費用概要

リソース費用
ドメイン登録TLD により $9–$75+/年
ホストゾーン$0.50/月 (ゾーンごと)
標準 DNS クエリ$0.40/million
AWS リソースへのエイリアスクエリ無料
ヘルスチェック (AWS エンドポイント)$0.50/月 (各)
ヘルスチェック (AWS 以外)$0.75/月 (各)

有用なリンク

Related Articles