Google Domains のドメインのサブドメインを Amazon Route53 で利用する #terraform

Route53 でパプリックホストゾーンを作成

terraform だとこんな感じ。

resource "aws_route53_zone" "sample" {
  name = "sample.mydomain.dev"
}

パブリックホストゾーンを作成すると、NS レコードと SOA レコードは自動作成される。

Google Domains で NS レコードを作成する

Route53 側の NS レコードを、 Google Domains 側に設定する。

Amazon Route53 側

Google Domains 側

Amazon Route53 で A レコードを作成

terraform だとこんな感じ。

# Alias record の場合
resource "aws_route53_record" "sample" {
  zone_id = aws_route53_zone.sample.zone_id
  name    = aws_route53_zone.sample.name
  type    = "A"

  alias {
    name                   = aws_elb.sample.dns_name
    zone_id                = aws_elb.sample.zone_id
    evaluate_target_health = true
  }
}

# こっちは LB
resource "aws_elb" "sample" {
  name               = "sample-elb"
  availability_zones = ["us-east-1c"]

  listener {
    instance_port     = 80
    instance_protocol = "http"
    lb_port           = 80
    lb_protocol       = "http"
  }
}

その他

ホストゾーンを冪等で作ったり壊したりするケースがあんまり浮かばなかったので、作成と切り分けて参照の方がよいかもしれない。

data "aws_route53_zone" "sample" {
  name = "sample.mydomain.dev"
}

参考