0

I have been trying to establish cross-region vpc peering using Terraform. But I keep getting that the VPC ID of West 1 does not exist for the aws_vpc_peering_connection.peer resource. What could I be missing?

# Create VPC
resource "aws_vpc" "West_1" {
  provider = aws.us-west-1
  cidr_block           = var.vpc_cidr_block_1
  instance_tenancy     = "default"
  enable_dns_support   = true
  enable_dns_hostnames = true

  tags = {
    name = "West_1"
  }
}

# Create VPC
resource "aws_vpc" "West_2" {
  cidr_block           = var.vpc_cidr_block_2
  instance_tenancy     = "default"
  enable_dns_support   = true
  enable_dns_hostnames = true

  tags = {
    name = "West_2"
  }
}

# Requester's side of the connection.
resource "aws_vpc_peering_connection" "peer" {

  vpc_id        = aws_vpc.West_2.id
  peer_vpc_id   = aws_vpc.West_1.id
  peer_owner_id = data.aws_caller_identity.peer.account_id
  auto_accept   = false

  tags = {
    Side = "Requester"
  }
}

# Accepter's side of the connection.
resource "aws_vpc_peering_connection_accepter" "peer" {
  provider = aws.us-west-1

  vpc_peering_connection_id = aws_vpc_peering_connection.peer.id
  auto_accept               = true

  tags = {
    Side = "Accepter"
  }
}

resource "aws_vpc_peering_connection_options" "requester" {

  # As options can't be set until the connection has been accepted
  # create an explicit dependency on the accepter.
  vpc_peering_connection_id = aws_vpc_peering_connection_accepter.peer.id

  requester {
    allow_remote_vpc_dns_resolution = true
  }
}

resource "aws_vpc_peering_connection_options" "accepter" {
  provider = aws.us-west-1

  vpc_peering_connection_id = aws_vpc_peering_connection_accepter.peer.id

  accepter {
    allow_remote_vpc_dns_resolution = true
  }
}

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

  default_tags {
    tags = {
      Provisioned = "Terraform"
    }
  }
}

provider "aws" {
  region = "us-west-1"
  alias  = "us-west-1"

  default_tags {
    tags = {
      Provisioned = "Terraform"
    }
  }
}

0 Answers0