새소식

IaC/Terraform

2주차(1)_Terraform을 통한 VPC 배포

  • -
CloudNet@ 팀의 가시다님께서 Leading 하시는 Terraform T101 Study 내용 요약

 

해당 Terraform Study 는 Terraform Up and Running 책을 기반으로 진행 중입니다.

 

이번에는 Default VPC 가 아닌 원하는 VPC 생성해보자.
이후 생성한 VPC 에 리소스를 배포할 예정이다.

 

1. Architecture


 

 

2. VPC를 위한 vpc.tf 파일 생성


이처럼 특정 리소스만을 위한 tf 파일을 분리할 수 있다.
  • 아래의 리소스는 모두 같은 vpc.tf 파일 안에 있는 코드지만 블로그에서는 가독성을 위해 구분해놓았다.

 

2.1. vpc 생성

provider "aws" {
  region  = "ap-northeast-2"
}

resource "aws_vpc" "scott_vpc" {
  // 생성할 VPC의 범위 지정
  cidr_block       = "10.10.0.0/16"
  enable_dns_support   = true
  enable_dns_hostnames = true

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

 

2.2. Internet Gateway 생성

resource "aws_internet_gateway" "scott_igw" {
  vpc_id = aws_vpc.scott_vpc.id

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

 

2.3. Subnet 생성

resource "aws_subnet" "scott_subnet_01" {
  vpc_id     = aws_vpc.scott_vpc.id
  cidr_block = "10.10.1.0/24"

  availability_zone = "ap-northeast-2a"
  map_public_ip_on_launch = true

  tags = {
    Name = "terraform-subnet-01"
  }
}

resource "aws_subnet" "scott_subnet_02" {
  vpc_id     = aws_vpc.scott_vpc.id
  cidr_block = "10.10.2.0/24"

  availability_zone = "ap-northeast-2c"
  map_public_ip_on_launch = true

  tags = {
    Name = "terraform-subnet-02"
  }
}

 

2.4. Route Table 생성

resource "aws_route_table" "scott_rt" {
  vpc_id = aws_vpc.scott_vpc.id

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

resource "aws_route_table_association" "scott_rt_association_01" {
  subnet_id      = aws_subnet.scott_subnet_01.id
  route_table_id = aws_route_table.scott_rt.id
}

resource "aws_route_table_association" "scott_rt_association_02" {
  subnet_id      = aws_subnet.scott_subnet_02.id
  route_table_id = aws_route_table.scott_rt.id
}

resource "aws_route" "scott_default_route" {
  route_table_id         = aws_route_table.scott_rt.id
  destination_cidr_block = "0.0.0.0/0"
  gateway_id             = aws_internet_gateway.scott_igw.id
}

 

2.5. vpc.tf 배포

terraform init && terraform plan && terraform apply -auto-approve

 

 

3. 리소스 생성 확인


  • terraform.tfstate 파일을 참조하여 현재 배포된 리소스 확인 가능
terraform state list

 

  • vpc 생성 확인

 

  • subnet 생성 확인

 

  • Route Table 확인

 

실습 진행 후에는 반드시 리소스를 삭제하자!
terraform destroy -auto-approve

 


 

다음 글에서는 이번에 생성한 VPC에 Auto Scaling Group 과 Load Balancer 를 배포해보겠다.

 

 

Contents

포스팅 주소를 복사했습니다