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

[AWS and 테라폼: Infrastructure as Code] VARIABLES 활용하기

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

Terraform variables 사용하기


  • Terraform 은 HCL Syntax를 가진 언어다. 언어적 특성을 가지고 있기 때문에 당연히 변수를 정의하고 주입해서 사용할 수 있다.
     

Variable Types

  • string
  • number
  • bool
     

Complex variable types

  • list()
  • set()
  • map()
  • object({ = , … })
  • tuple([, …])
     

변수를 정의하기 variables.tf


  • 변수의 정의는 .tf 파일 어느 곳에서나 정의는 가능하다. 보통 variables.tf 파일을 만들어 해당 파일에 정의한다.
variable "image_id" {
  type = string
}

variable "availability_zone_names" {
  type    = list(string)
  default = ["us-east-1a"]
}

variable "ami_id_maps" {
  type = map
  default = {}
}

 

terraform.tfvars


정의한 변수에 값을 주입하기 위해 가장 일반적인 방법 terraform.tfvars 파일을 생성하는 것이다. Variable = Value 형태로 정의다.

image_id = "ami-064c81ce3a290fde1"
availability_zone_names = ["us-east-1a","us-east-1b","us-east-1c"]
ami_id_maps = {
    ap-northeast-2 = {
      amazon_linux2 = "ami-010bf43fe22f847ed"
      ubuntu_18_04  = "ami-061b0ee20654981ab"
    }

    us-east-1 = {
      amazon_linux2 = "ami-0d29b48622869dfd9"
      ubuntu_18_04  = "ami-0d324124b7b7eec66"
    }
}

terraform.tfvars 가 아닌 다른 방법으로는 module block 에 주입하는 방법이 있다.