연재 시리즈

테라폼으로 EKS만들기 프로젝트 4-3편 - VPC 입력변수 설정

악분 2023. 7. 9. 19:19
반응형

이번 챕터에서는 aws vpc cidr를 테라폼 변수로 설정합니다.

 

예제코드 다운로드

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

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

 

변수 정의방법

테라폼 변수는 variable block으로 정의합니다. block body에는 변수type만 설정하면 됩니다. 변수타입은 테라폼 공식문서에서 확인할 수 있습니다.

 

아래 예제는 vpc_cidr변수를 정의합니다. 변수타입은 string입니다.

 

변수타입은 공식문서를 참조했습니다.

 

변수 사용방법

정의한 변수를 테라폼 코드에서 사용해야겠죠? 정의한 변수는 "var.변수이름"으로 사용합니다. 아래 예제는 resource block에서 vpc_cidr변수를 참조했습니다.

 

코드 작성

아래 코드는 지금까지 내용을 정리했습니다. aws vpc코드를 작성하고 cidr를 변수로 설정합니다.

variable "vpc_cidr" {
  type = string
}

resource "aws_vpc" "main" {
  cidr_block = var.vpc_cidr

  tags = {
    Name = "terraform VPC"
  }
}

 

코드 실행 - 변수 값 정의

변수 값은 테라폼을 실행할 때 초기화합니다. 테라폼을 실행하면 변수 값을 초기화하는 입력 프롬프트가 나옵니다. 아래 예제는 terraform plan명령어를 실행할 때 변수 값을 초기화 합니다.

 

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

terraform apply

 

aws 콘솔에서 vpc가 잘 생성되었는지 확인합니다. 그리고 cidr도 입력 프롬프트에 입력한대로 설정되었는지 확인합니다.

 

리소스 삭제

aws 리소스를 확인 한 후, 생성한 리소스를 삭제합니다. terraform destroy명령어 사용할 때도 변수 입력프롬프트 단계가 있습니다.

terraform destroy

 

잘못된 변수값 입력

테라폼은 block body가 올바르게 설정되었는지 유효성검사를 합니다. 유효성 검사가 실패하면  에러를 발생시키고 코드실행을 중단합니다.

 

예를 들어, aws provider를 사용하여 vpc를 생성한다고 가정해봅시다. 입력 프롬프트 단계에서 잘못된 vpc cidr을 설정하면, 유효성검사가 실패하여 에러를 발생시킵니다.

 

리팩토링 - 변수를 관리하는 파일

테라폼 변수는 관습적으로 variables.tf파일에 코드를 작성합니다. variables.tf파일로 모든 변수를 관리하면, 처음 보는 사람도 무슨 변수를 사용하는지 확인할 수 있습니다.

 

연습문제

vpc tag도 변수로 설정해보세요.

반응형