이번 챕터에서는 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도 변수로 설정해보세요.
'연재 시리즈' 카테고리의 다른 글
테라폼 t102 스터디 - 프로비저너(provisioner) (0) | 2023.07.22 |
---|---|
테라폼 t102 스터디 - dynamic block (0) | 2023.07.15 |
테라폼 t102 스터디 - precondition/postcondition (0) | 2023.07.09 |
테라폼으로 EKS만들기 프로젝트 4-2편 - VPC tag설정(Block 인자) (1) | 2023.07.04 |
테라폼으로 EKS만들기 프로젝트 4-1편 - VPC생성 (0) | 2023.07.03 |