공식문서를 참고한는 것이 제일 좋다!
provider "aws" {
region = "ap-northeast-2"
}
aws와 리전을 입력해주면 된다!
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "prod-vpc"
}
}
tags의 경우는 놓질 수 있는 내용이지만 나중에 console을 이용하여 구분을 할 때, 빠질 수 없는 부분이기 때문에 항상 써주도록 하자
resource "aws_subnet" "public_subnet_a" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.101.0/24"
availability_zone = "ap-northeast-2a"
tags = {
Name = "prod-public-subnet-a"
}
}
vpc_id: 서브넷을 지정하기 위한 VPC 아이디를 지정한다.availability_zone: 서브넷이 존재할 az를 지정한다.resource "aws_internet_gateway" "igw" {
vpc_id = aws_vpc.main.id
tags = {
Name = "prod-ig"
}
}
igw를 만들기 위해서는 vpc와 연결을 해주도록 하자
라우트 테이블
resource "aws_route_table" "private" {
vpc_id = aws_vpc.main.id
tags = {
Name = "prod-rt-private"
}
}
라우트 테이블 자체를 생성한다. → 테이블의 구성(규칙)은 추후에 지정할 수 있다.
라우트 테이블과 서브넷 연결
resource "aws_route_table_association" "rt_association_public_a" {
subnet_id = aws_subnet.public_subnet_a.id
route_table_id = aws_route_table.public.id
}
라우트 테이블과 서브넷을 연결한다.
라우트 테이블의 요소를 추가한다.
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.igw.id
}
gateway_id: 연결하기 위한 igw 아이디를 지정한다.instance_id: nat-instance를 연결할 때, 해당 ec2 인스턴스의 아이디를 지정한다.resource "aws_vpc_peering_connection" "vpc_peering" {
peer_owner_id = "317102971835"
peer_vpc_id = "vpc-0b4ca775735a10d01"
vpc_id = aws_vpc.main.id
peer_region = "ap-northeast-2"
}