» aws_route53_zone

Manages a Route53 Hosted Zone.

» Example Usage

» Public Zone

resource "aws_route53_zone" "primary" {
  name = "example.com"
}

» Public Subdomain Zone

For use in subdomains, note that you need to create a aws_route53_record of type NS as well as the subdomain zone.

resource "aws_route53_zone" "main" {
  name = "example.com"
}

resource "aws_route53_zone" "dev" {
  name = "dev.example.com"

  tags = {
    Environment = "dev"
  }
}

resource "aws_route53_record" "dev-ns" {
  zone_id = "${aws_route53_zone.main.zone_id}"
  name    = "dev.example.com"
  type    = "NS"
  ttl     = "30"

  records = [
    "${aws_route53_zone.dev.name_servers.0}",
    "${aws_route53_zone.dev.name_servers.1}",
    "${aws_route53_zone.dev.name_servers.2}",
    "${aws_route53_zone.dev.name_servers.3}",
  ]
}

» Private Zone

resource "aws_route53_zone" "private" {
  name = "example.com"

  vpc {
    vpc_id = "${aws_vpc.example.id}"
  }
}

» Argument Reference

The following arguments are supported:

  • name - (Required) This is the name of the hosted zone.
  • comment - (Optional) A comment for the hosted zone. Defaults to 'Managed by Terraform'.
  • delegation_set_id - (Optional) The ID of the reusable delegation set whose NS records you want to assign to the hosted zone. Conflicts with vpc as delegation sets can only be used for public zones.
  • force_destroy - (Optional) Whether to destroy all records (possibly managed outside of Terraform) in the zone when destroying the zone.
  • tags - (Optional) A mapping of tags to assign to the zone.
  • vpc - (Optional) Configuration block(s) specifying VPC(s) to associate with a private hosted zone. Conflicts with the delegation_set_id argument in this resource and any aws_route53_zone_association resource specifying the same zone ID. Detailed below.

» vpc Argument Reference

  • vpc_id - (Required) ID of the VPC to associate.
  • vpc_region - (Optional) Region of the VPC to associate. Defaults to AWS provider region.

» Attributes Reference

In addition to all arguments above, the following attributes are exported:

  • zone_id - The Hosted Zone ID. This can be referenced by zone records.
  • name_servers - A list of name servers in associated (or default) delegation set. Find more about delegation sets in AWS docs.

» Import

Route53 Zones can be imported using the zone id, e.g.

$ terraform import aws_route53_zone.myzone Z1D633PJN98FT9