본문 바로가기

♻ Terraform(테라폼)/Terraform Network 구성

테라폼을 활용한 인터넷 게이트웨이와 라우트 테이블 생성하기

728x90
반응형

# 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를 생성하여 보자.

728x90
반응형