# terraform을 활용한 인터넷 게이트웨이와 라우트 테이블 생성하기
- VPC를 구성할때 Public은 인터넷 게이트웨이에 연결하고, Pivate은 NAT 게이트웨이에 연결하는게 정석이다.
하지만 지금은 NAT 게이트웨이를 구성하면 EIP도 생성해야 하고, 여러가지 비용이 발생하므로, 실습 및 연습용 이므로 퍼블릭과 프라이빗 모두 언터넷 게이트웨이에 연결하도록 하겠다.
프라이빗 네트워크는 왜 NAT에 연결해야 하는지는 인터넷 등 검색해서 알아보길 바란다.
자 그럼 이제 인터넷 게이트웨이를 테라폼을 통해 생성해 보자.
- 기존 vpc.tf 파일에 아래의 내용을 추가하자.
resource "aws_internet_gateway" "igw" {
vpc_id = aws_vpc.main.id
tags = {
Name = "practice01-internet-gateway"
}
}
- 인터넷 게이트웨이를 생성하기위해 위의 스크립트를 추가해주자.
- 추가 후 terraform plan을 입력하여 실행계획을 보자.
- terraform plan을 입력하여 실행계획을 보면, 인터넷 게이트웨이가 생성이 될거라는 내용이 있다.
- 다음으로 terraform apply를 입력하여 실제로 생성을 해보자.
- 성공적으로 생성이 되었다는 메세지가 출력 되었다.
- 실제 AWS 콘솔을 확인하여 생성이 되었는지 확인하자.
- 정상적으로 생성이 된 것을 확인할 수 있다.
- 다음으로는 라우팅 테이블을 생성해보자.
resource "aws_route_table" "public" {
vpc_id = aws_vpc.main.id
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.igw.id
}
tags = {
Name = "practice01-rt-public"
}
}
resource "aws_route_table_association" "route_table_association_public" {
subnet_id = aws_subnet.public_subnet.id
route_table_id = aws_route_table.public.id
}
resource "aws_route_table" "private" {
vpc_id = aws_vpc.main.id
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.igw.id
}
tags = {
Name = "practice01-rt-private"
}
}
resource "aws_route_table_association" "route_table_association_private" {
subnet_id = aws_subnet.private_subnet.id
route_table_id = aws_route_table.private.id
}
- 위에 코드처럼 라우팅 테이블을 생성해주자.
- 퍼블릭과 프라이빗을 각각 나누어 생성해주고, 프라이빗은 위에서 언급한것과 같이 본래는 NAT 게이트웨이와 EIP를 통해 연결되게끔 생성해야 되나, 테스트와 실습이므로 인터넷 게이트웨이에 연결하자.
- terraform plan을 입력하여 실행계획을 보자.
- 4개의 정책이 추가된다는 내용을 볼 수 있다.
- terraform apply를 입력하여 실제 인프라에 생성하자.
추가된 내용을 위와같이 확인 할 수 있다.
이로써, VPC를 구성하는 4개의 기본구성을 모두 생성 하였다.
다음은 생성된 VPC에 EC2 인스턴스를 연결하고 ALB를 생성하여 보자.
'♻ Terraform(테라폼) > Terraform Network 구성' 카테고리의 다른 글
테라폼을 활용한 Subnet 생성하기 (0) | 2021.06.07 |
---|---|
테라폼을 활용한 Network Elemtents 생성하기 (0) | 2021.06.07 |