Route 53 — DNS

概要

Amazon Route 53 は AWS のフルマネージド DNS サービス。ドメイン取得・管理、DNS レコード解決、ヘルスチェックを提供します。 他社で取得したドメインを Route 53 でレコード管理することも、ドメイン取得 + DNS まとめてやることも可能です。 AWS 内のサービス(CloudFront / ALB / S3 等)への Alias レコードが無料で使える点が大きな利点。

可用性は SLA 100% (DNS は AWS で唯一)。1 ホストゾーン $0.5/月 + クエリ課金で安く済みます。

主な機能

使うべきパターン

使わない方が良いパターン

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 が必要。