Search

2Subnet-2AZ

resource "aws_vpc" "main" { cidr_block = "10.0.0.0/16" enable_dns_hostnames = true enable_dns_support = true tags = { Name = "<env>-vpc" } } # Public ## Internet Gateway resource"aws_internet_gateway" "main" { vpc_id = aws_vpc.main.id tags = { Name = "<env>-igw" } } ## Route Table resource "aws_route_table" "public" { vpc_id = aws_vpc.main.id tags = { Name = "<env>-public-rt" } } resource "aws_route" "public" { route_table_id = aws_route_table.public.id destination_cidr_block = "0.0.0.0/0" gateway_id = aws_internet_gateway.main.id } ## Public Subnet resource "aws_subnet" "public_a" { vpc_id = aws_vpc.main.id cidr_block = "10.0.2.0/24" availability_zone = "ap-northeast-2a" map_public_ip_on_launch = true tags = { Name = "<env>-public-a" } } resource "aws_subnet" "public_b" { vpc_id = aws_vpc.main.id cidr_block = "10.0.3.0/24" availability_zone = "ap-northeast-2b" map_public_ip_on_launch = true tags = { Name = "<env>-public-b" } } ## Attach Public Subnet in Route Table resource "aws_route_table_association" "public_a" { subnet_id = aws_subnet.public_a.id route_table_id = aws_route_table.public.id } resource "aws_route_table_association" "public_b" { subnet_id = aws_subnet.public_b.id route_table_id = aws_route_table.public.id } # Private ## Elastic IP resource "aws_eip" "private_a" { } resource "aws_eip" "private_b" { } ## NAT Gateway resource "aws_nat_gateway" "private_a" { depends_on = [aws_internet_gateway.main] allocation_id = aws_eip.private_a.id subnet_id = aws_subnet.public_a.id tags = { Name = "<env>-nat-a" } } resource "aws_nat_gateway" "private_b" { depends_on = [aws_internet_gateway.main] allocation_id = aws_eip.private_b.id subnet_id = aws_subnet.public_b.id tags = { Name = "<env>-nat-b" } } ## Route Table resource "aws_route_table" "private_a" { vpc_id = aws_vpc.main.id tags = { Name = "<env>-private-a-rt" } } resource "aws_route_table" "private_b" { vpc_id = aws_vpc.main.id tags = { Name = "<env>-private-b-rt" } } resource "aws_route" "private_a" { route_table_id = aws_route_table.private_a.id destination_cidr_block = "0.0.0.0/0" nat_gateway_id = aws_nat_gateway.private_a.id } resource "aws_route" "private_b" { route_table_id = aws_route_table.private_b.id destination_cidr_block = "0.0.0.0/0" nat_gateway_id = aws_nat_gateway.private_b.id } resource "aws_subnet" "private_a" { vpc_id = aws_vpc.main.id cidr_block = "10.0.0.0/24" availability_zone = "ap-northeast-2a" tags = { Name = "<env>-private-a" } } resource "aws_subnet" "private_b" { vpc_id = aws_vpc.main.id cidr_block = "10.0.1.0/24" availability_zone = "ap-northeast-2b" tags = { Name = "<env>-private-b" } } ## Attach Private Subnet in Route Table resource "aws_route_table_association" "private_a" { subnet_id = aws_subnet.private_a.id route_table_id = aws_route_table.private_a.id } resource "aws_route_table_association" "private_b" { subnet_id = aws_subnet.private_b.id route_table_id = aws_route_table.private_b.id } # OutPut ## VPC output "aws_vpc" { value = aws_vpc.main.id } ## Public Subnet output "public_a" { value = aws_subnet.public_a.id } output "public_b" { value = aws_subnet.public_b.id } ## Private Subnet output "private_a" { value = aws_subnet.private_a.id } output "private_b" { value = aws_subnet.private_b.id }
JSON
복사