연재 시리즈

테라폼으로 EKS만들기 프로젝트 4-2편 - VPC tag설정(Block 인자)

악분 2023. 7. 4. 16:11
반응형

이번 챕터는 테라폼 block argument가 무엇인지 학습하고 vpc tag Name을 실습합니다.

 

이전 챕터 부족한점

VPC가 여러개 있는 경우, vpc tag의 Name을 설정하여 vpc를 구별합니다. 이전 챕터에서 만든 vpc는 Name이 없습니다. 그래서 vpc 식별이 어렵습니다. vpc 식별을 위해, 테라폼 코드에 tag Name을 추가해야 합니다. tag Name은 block 인자(Argument)로 설정합니다. 

테라폼 코드가 생성한 VPC

 

예제코드 다운로드

예제 코드는 git repo에 공개되어 있습니다. vpc_with_tag폴더가 이번 챕터 예제 코드입니다.

git clone https://github.com/choisungwook/terraform_practice.git example
cd example/vpc_with_tag

 

아키텍처

이번 챕터 예제는 vpc 1개를 생성합니다.

 

테라폼 block 인자(Argument)

Block 인자는 block수행할 세부내용입니다. 예를 들어 vpc resource block은 cidr을 설정하는 cidr_block 인자가 있습니다.  각 block의 인자는 다르므로 아래 그림처럼 공식문서를 참조해야 합니다.

vpc resource 문서(출처: https://registry.terraform.io/providers/hashicorp/aws/3.3.0/docs/resources/vpc)

 

필수인자(Required)와 선택인자(Optional)

인자는 필수(Required)와 선택(Optional)이 있습니다. 필수인자가 코드에 설정되지 않으면 테라폼 실행 시 에러가 발생합니다.

 

선택인자 중에서도 꼭 사용해 할 때가 있습니다. 대표적인 예가 aws vpc block의 cidr_block인자입니다. IPAM을 사용하지 않으면 cidr_block인자를 반드시 사용해야 합니다.

출처: https://registry.terraform.io/providers/hashicorp/aws/3.3.0/docs/resources/vpc

 

코드 작성

코드를 작성하기 위해 목표와 공식문서를 조사해야 합니다. 

 

목표

기존 테라폼 코드에 vpc tag Name인자 추가합니다.

 

자료조사

vpc 공식문서를 참조하면 tag인자는 map타입입니다. map 타입이므로 key=value형태로 코드를 작성하면 됩니다.

 

 

코드 작성

자료조사단계에서 tag는 map구조라는 것을 알았으므로, tags필드는 Name={vpc이름} 형태로 코드를 작성해야 합니다.

tags = {
  Name = vpc이름
}

 

전체 코드는 아래와 같습니다.

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"

  tags = {
    Name = "terraform VPC"
  }
}

 

코드 실행

terraform plan명령어를 실행하여 vpc 태그가 생성되는지 확인합니다.

 

terraform apply 명령어를 실행하여 vpc를 생성합니다.

terraform apply

 

aws console에서 vpc태그가 있는지 확인합니다.

 

리소스 삭제

VPC생성을 확인 한 후 terraform destroy명령어를 실행하여, VPC를 삭제합니다. 

terraform destroy

 

다음 챕터

다음 챕터에서는 테라폼 변수를 사용하여 vpc cidr를 설정합니다.

반응형