Resource: aws_directory_service_region

Manages a replicated Region and directory for Multi-Region replication. Multi-Region replication is only supported for the Enterprise Edition of AWS Managed Microsoft AD.

Example Usage

provider "aws" {
  region = "us-west-2"
}

provider "aws" {
  alias  = "secondary"
  region = "us-east-2"
}

data "aws_region" "example" {
  provider = aws.secondary
}

data "aws_availability_zones" "available" {
  state = "available"

  filter {
    name   = "opt-in-status"
    values = ["opt-in-not-required"]
  }
}

resource "aws_vpc" "example" {
  cidr_block = "10.0.0.0/16"

  tags = {
    Name = "Primary"
  }
}

resource "aws_subnet" "example" {
  count = 2

  vpc_id            = aws_vpc.example.id
  availability_zone = data.aws_availability_zones.available.names[count.index]
  cidr_block        = cidrsubnet(aws_vpc.example.cidr_block, 8, count.index)

  tags = {
    Name = "Primary"
  }
}

resource "aws_directory_service_directory" "example" {
  name     = "example.com"
  password = "SuperSecretPassw0rd"
  type     = "MicrosoftAD"

  vpc_settings {
    vpc_id     = aws_vpc.example.id
    subnet_ids = aws_subnet.example[*].id
  }
}

data "aws_availability_zones" "available-secondary" {
  provider = aws.secondary

  state = "available"

  filter {
    name   = "opt-in-status"
    values = ["opt-in-not-required"]
  }
}

resource "aws_vpc" "example-secondary" {
  provider = aws.secondary

  cidr_block = "10.1.0.0/16" # Can't overlap with primary's VPC.

  tags = {
    Name = "Secondary"
  }
}

resource "aws_subnet" "example-secondary" {
  provider = aws.secondary

  count = 2

  vpc_id            = aws_vpc.example-secondary.id
  availability_zone = data.aws_availability_zones.available-secondary.names[count.index]
  cidr_block        = cidrsubnet(aws_vpc.example-secondary.cidr_block, 8, count.index)

  tags = {
    Name = "Secondary"
  }
}

resource "aws_directory_service_region" "example" {
  directory_id = aws_directory_service_directory.example.id
  region_name  = data.aws_region.example.name

  vpc_settings {
    vpc_id     = aws_vpc.example-secondary.id
    subnet_ids = aws_subnet.example-secondary[*].id
  }

  tags = {
    Name = "Secondary"
  }
}

Argument Reference

This resource supports the following arguments:

vpc_settings

Attribute Reference

This resource exports the following attributes in addition to the arguments above:

Timeouts

aws_directory_service_region provides the following Timeouts configuration options:

Import

In Terraform v1.5.0 and later, use an import block to import Replicated Regions using directory ID,Region name. For example:

import {
  to = aws_directory_service_region.example
  id = "d-9267651497,us-east-2"
}

Using terraform import, import Replicated Regions using directory ID,Region name. For example:

% terraform import aws_directory_service_region.example d-9267651497,us-east-2