반응형
Variable (베리어블, 변수)
Terraform의 variable은 인프라에 여러번 사용되는 변수의 값을 선언하고 할당하는 데 사용되는 기능이다.
→ 즉 인프라에 필요한 변수는 variable 여기에 저장하면 된다. (매번 값을 하드코딩할 필요 없다)
사용 예시)
개발하는 어플리케이션 이름이 "google"이라면, 이름을 variable에 저장한다. (variable = google)
개발 도중에 이름을 호출해야 할 때 마다 variables에서 값을 가져오면 된다.
👓 variable 특징
✍ HCL Syntax (variable 문법 예시)
variable "instance_type" { #instance_type라는 변수
description = "EC2 인스턴스 타입"
type = string #입력값 종류
default = "t2.micro" #변수 값
}
variable 값을 가져올 때는 var.<name>를 사용해야된다.
var.instance_type #instance_type 변수 값 가져오기
- 일반적으로 variables.tf 이라는 파일에 정의한다..
- 변수를 variable에 관리 함으로써 변수를 다른 환경에서 재사용 가능하게 만들며, 이해하기 쉽게 만든다.
(즉, 인프라 구성을 유연하게 만든다) - variable는 인프라 구성의 민감한 정보를 보호할 수 있다.
(sensitive = true 라는 속성값을 추가하면 terraform plan&apply, 출력(output)에서 값을 숨긴다)
📌사용 예시
1. variables.tf (변수 선언하기)
variable "ami_id" {
description = "EC2 인스턴스에 사용할 AMI ID"
type = string
default = "ami-0c55b159cbfafe1f0"
}
variable "instance_type" {
description = "EC2 인스턴스 타입"
type = string
default = "t2.micro"
}
2. main.tf
provider "aws" {
region = "ap-northeast-2" # 서울 리전
}
resource "aws_instance" "web" {
ami = var.ami_id
instance_type = var.instance_type
}
실행하기: terraform init
> terraform apply
terraform.tfvars 파일
*.tfvars 파일은 Terraform의 variable(변수)에 실제 값을 할당하는 데 사용되는 파일이다.
Terraform에서 variable 블록에서는 변수를 선언하고, *.tfvars 파일에서 변수의 실제 값을 정의한다.
Terraform이 이를 자동으로 읽어서 변수에 값을 할당한다.
variables.tf 파일: 변수를 정의하는 사용
terraform.tfvars 파일: 변수에 값을 할당하기 위해 사용
예시
variables.tf: 변수를 선언하는 파일
variable "region" {
description = "AWS region"
type = string
}
variable "instance_type" {
description = "EC2 instance type"
type = string
}
terraform.tfvars: 변수의 실제 값을 적는 파일
region = "ap-northeast-2"
instance_type = "t3.micro"
🤔 문제
다음 중 num_servers 변수의 값을 servers 입력값으로 모듈에 전달하는 올바른 방법은 무엇인가?
- servers = num_servers
- servers = variable.num_servers
- servers = var(num_servers)
- servers = var.num_servers
정답
더보기
정답 4번
반응형
'Terraform' 카테고리의 다른 글
[Terraform] Terraform Cloud란? 쉽게 정리 (0) | 2025.06.27 |
---|---|
[Terraform] Splat Expressions와 For Expressions 쉽게 정리 (0) | 2025.06.26 |
[Terraform] terraform force-unlock 명령어란? 쉽게 정리 (0) | 2025.06.20 |
[Terraform] terraform init 명령어가 하는일. 쉽게 정리 (0) | 2025.06.20 |
[Terraform] terraform import 명령어란? 쉽게 정리 (0) | 2025.06.19 |