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"
}
}
}