Route 53 — DNS
概要
Amazon Route 53 は AWS のフルマネージド DNS サービス。ドメイン取得・管理、DNS レコード解決、ヘルスチェックを提供します。 他社で取得したドメインを Route 53 でレコード管理することも、ドメイン取得 + DNS まとめてやることも可能です。 AWS 内のサービス(CloudFront / ALB / S3 等)への Alias レコードが無料で使える点が大きな利点。
可用性は SLA 100% (DNS は AWS で唯一)。1 ホストゾーン $0.5/月 + クエリ課金で安く済みます。
主な機能
- Hosted Zone — ドメインの DNS レコード集合。Public / Private がある。
- レコードタイプ — A / AAAA / CNAME / MX / TXT / NS / SOA / CAA / ALIAS。
- Alias レコード — Route 53 独自。CloudFront / ALB / S3 等 AWS リソースへの参照を無料・apex ドメイン対応で書ける(CNAME の制約を回避)。
- Health Check — ターゲット (URL / TCP / その他チェック) の死活監視。Failover ルーティングと連携。
- ルーティングポリシー — Simple / Weighted / Latency / Geolocation / Failover / Multivalue。
- DNSSEC — DNS 応答に署名を付けて改ざん検知。
- Domain Registration — ドメイン取得・更新・移管も可能。
- Resolver — VPC 内の DNS 解決を制御 (Inbound / Outbound endpoint)。
使うべきパターン
- AWS リソースへの DNS — CloudFront / ALB / S3 静的サイトに Alias で繋ぐのが定番。apex (iigtn.com) 直配置も可能。
- マルチリージョン Failover — Health Check + Failover ルーティングで自動切替。
- Geolocation / Latency ベース配信 — 地域別に異なる Origin に振り分け。
- Private Hosted Zone — VPC 内専用 DNS で社内向け名前解決。
使わない方が良いパターン
- 既存 DNS 業者で十分 — Cloudflare / Google Domains / Squarespace 等で間に合う場合、無理に移管不要。
- 個人ブログ程度 — DNS は安いが、移管手続きの手間 vs 効果が見合わないことも。
- iigtn-platform のように Squarespace で DNS 管理して CNAME のみで AWS 連携 — Hosted Zone 不要のケースもある(ドメインまるごと Route 53 必須ではない)。
Terraform 最小サンプル(Public Hosted Zone + CloudFront Alias)
resource "aws_route53_zone" "main" {
name = "example.com"
}
# CloudFront に Alias で繋ぐ (apex でも可)
resource "aws_route53_record" "root" {
zone_id = aws_route53_zone.main.zone_id
name = "example.com"
type = "A"
alias {
name = aws_cloudfront_distribution.site.domain_name
zone_id = aws_cloudfront_distribution.site.hosted_zone_id
evaluate_target_health = false
}
}
# www → root リダイレクト相当
resource "aws_route53_record" "www" {
zone_id = aws_route53_zone.main.zone_id
name = "www.example.com"
type = "CNAME"
ttl = 300
records = ["example.com"]
}
# Health Check + Failover
resource "aws_route53_health_check" "primary" {
fqdn = "primary.example.com"
type = "HTTPS"
port = 443
resource_path = "/health"
failure_threshold = 3
request_interval = 30
}
resource "aws_route53_record" "failover_primary" {
zone_id = aws_route53_zone.main.zone_id
name = "api.example.com"
type = "A"
set_identifier = "primary"
failover_routing_policy { type = "PRIMARY" }
health_check_id = aws_route53_health_check.primary.id
alias {
name = aws_lb.primary.dns_name
zone_id = aws_lb.primary.zone_id
evaluate_target_health = true
}
}
用語集
- Hosted Zone
- ドメインの DNS レコード集合。Public (インターネット向け) / Private (VPC 内) がある。$0.5/月。
- Alias レコード
- Route 53 独自。CloudFront / ALB / S3 等 AWS リソースへの参照。CNAME と違い apex ドメイン対応・無料・短 TTL。
- Health Check
- URL / TCP の死活監視。Failover ルーティングと組み合わせる。
- ルーティングポリシー
- Simple / Weighted / Latency / Geolocation / Failover / Multivalue。同じ名前で複数レコードを登録する時の振り分け方。
- DNSSEC
- DNS 応答に署名を付けて改ざん検知する拡張。
- Resolver
- VPC 内の DNS 解決を制御する機能。Inbound / Outbound endpoint で社内 DNS と連携可。
- Domain Registration
- Route 53 で直接ドメインを取得・更新・移管できる機能。
- Apex ドメイン
example.comのようにサブドメイン無しのトップ。CNAME は使えないので Alias が必要。