본문 바로가기
Terraform/AWS and 테라폼: Infrastructure as

[AWS and 테라폼: Infrastructure as Code] VPC & Subnet 생성하기

by 개발자 영만 2024. 1. 19.

VPC 기본 생성


Terraform을 통해서 VPC를 생성해보자. VPC를 생성할 때는 aws_vpc 리소스를 사용하면 되고, 필수적으로 필요한 설정은 cidr_block 이다.

provider "aws" {
  region  = "us-east-2"
}

resource "aws_vpc" "ihwoo-tftest-vpc" {
  cidr_block = "10.0.0.0/16"

  tags = {
    Name = "ihwoo-tftest-vpc",
    Date = "2022-10-05",
    User = "ihwoo"
  }
}
  • Terraform Plan 명령어를 통해 생성되는 리소스를 확인
  • Terraform apply 를 통해서 리소스를 생성
     

Subnet 생성하기


위의 실습을 통해서 VPC를 생성했다. 지금부터는 VPC의 구성요소중 하나인 Subnet을 생성해보자. Subnet은 특정 Availability Zone 에 속한 네트워크 그룹으로 VPC 내에서도 나눠진 독립적인 네트워크 구역이다.

Subnet을 생성하실 때는 aws_subnet 이라는 리소스를 사용하면 된다. 필요한 설정은 해당 서브넷을 연결할 VPC의 ID와 해당 서브넷의 cidr block이다. 서브넷의 cidr block은 반드시 VPC의 cidr block 내에 속해 있어야 한다.
 

Private Subnet 구성

Private 서브넷은 Public 서브넷과 다르게 인터넷과 통신이 되지 않는 IP 대역이다. 즉, 인터넷 게이트웨이와 연결이 되어 있지 않은 곳이라서 외부에서 Private 서브넷으로 접근하는 것은 불가능하다.

생성하는 방법은 위에서 서브넷 생성했던 방식과 동일하다. 같은 코드이지만, 인터넷 게이트웨이와 연결되어 있느냐 여부에 따라 속성이 달라진다는 점을 기억하자!

resource "aws_vpc" "ihwoo-tftest-vpc" {
  cidr_block = "10.0.0.0/16"

  tags = {
    Name = "ihwoo-tftest-vpc",
    Date = "2022-10-05",
    User = "ihwoo"
  }
}

resource "aws_subnet" "ihwoo-tftest-public-subnet" {
  vpc_id = aws_vpc.ihwoo-tftest-vpc.id
  cidr_block = "10.0.0.0/24"

  availability_zone = "us-east-2a"

  tags = {
    Name = "ihwoo-tftest-public-subnet",
    Date = "2022-10-05",
    User = "ihwoo"
  }
}

resource "aws_subnet" "ihwoo-tftest-private-subnet" {
  vpc_id = aws_vpc.ihwoo-tftest-vpc.id
  cidr_block = "10.0.10.0/24"

  tags = {
    Name = "ihwoo-tftest-private-subnet",
    Date = "2022-10-05",
    User = "ihwoo"
  }
}