AWS IGW & NAT GW 생성

박도준·2021년 5월 12일
0

[IaC] Terraform

목록 보기
4/9
post-thumbnail

AWS IGW & NAT GW

Internet Gateway는 VPC의 인스턴스와 인터넷을 연결해준다.
NAT Gateway는 프라이빗 서브넷의 인스턴스를 인터넷 또는 기타 AWS 서비스에 연결해준다.

IGW와 NAT GW의 연결에 따라, public subnet과 private subnet이 결정된다.


테라폼으로 IGW 생성

이전에 vpc를 생성한 tf 파일에 IGW 생성 코드를 추가한다.

  • IGW 생성 코드
resource "aws_internet_gateway" "IGW"{
  vpc_id = aws_vpc.main.id

  tags = {
   Name = "terraform-IGW"
  }
}

IGW를 생성하기 위해서 aws_internet_gateway 리소스를 사용한다. 생성할 vpc id를 적어준다.

terraform plan

terraform apply



테라폼으로 NAT GW 생성

private 서브넷에서 요청이 외부로 나갈 때는 내부 IP가 아닌 고정 IP를 사용한다. 때문에 NAT GW를 생성할 때, AWS Elastic IP도 함께 생성해야 한다.

NAT GW 자체는 인터넷과 통신이 되어야 하기 때문에 private 서브넷과 연결하지만, public 서브넷에 위치한다.

  • NAT GW 코드
resource "aws_eip" "NAT" {
  vpc   = true # 생성 범위 지정

  lifecycle {
    create_before_destroy = true #새로운 대체 개체가 생성되고 난 후, 이전 개체가 삭제
  }
}


resource "aws_nat_gateway" "NAT_gateway" {
  allocation_id = aws_eip.NAT.id

  subnet_id = aws_subnet.public_subnet.id

  tags = {
    Name = "NAT-GW"
  }
}

Elastic IP를 생성하기 위해 aws_eip 리소스를 사용한다.

NAT GW를 생성하기 위해 aws_nat_gateway 리소스를 사용한다. 이때 주의할 점은 NAT GW를 public subnet에 설치해야 한다.

terraform plan

terraform apply

(NAT를 생성하는데는 조금 시간이 소요된다.)

profile
Better late than never

0개의 댓글