Terraform에서 tfvars 파일이란 무엇이며 어떻게 사용하나요?

발행: (2025년 12월 16일 오후 05:01 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

Sarah Lean 🏴󠁧󠁢

What is a tfvars file in Terraform and how do you use it?

Terraform을 사용할 때 핵심 원칙 중 하나는 코드를 재사용 가능하고 확장 가능하게 작성하여 여러 환경에서 다시 작성하거나 복제하지 않고도 사용할 수 있다는 점입니다.

여기서 tfvars 파일이 등장합니다. 이 파일을 사용하면 변수 값을 빠르고 효율적으로 정의하고 사용자 지정할 수 있어 배포가 더 일관되고 관리하기 훨씬 쉬워집니다.

Terraform에서 tfvars 파일이란?

Terraform에서 tfvars 파일은 Terraform 구성에 대한 입력 변수 값을 정의하는 데 사용됩니다. 변수에 값을 제공할 수 있게 하여, 개발(dev), 테스트(test), 운영(prod) 등 다양한 환경에 맞게 배포를 쉽게 맞춤 설정할 수 있습니다.

Terraform 배포에서 변수를 맞춤 설정하는 방법은 여러 가지가 있지만, tfvars 파일을 사용하는 것이 가장 일반적이고 효율적인 방법입니다.

tfvars 파일은 어떻게 사용하나요?

tfvars 파일을 사용하는 방법을 가장 잘 보여주는 방법은 예제 코드를 단계별로 살펴보는 것입니다. Azure 리소스 그룹을 정의하는 프로젝트를 설정해 보겠습니다.

1. 리소스 그룹 정의 (하드코딩)

# Define the Resource Group
resource "azurerm_resource_group" "resource_rg" {
  name     = "rg-example"
  location = "uksouth"
  tags = {
    Environment = "Demo"
    Owner       = "Sarah Lean"
  }
}

전체 코드는 여기에서 확인할 수 있습니다.

이 기본 코드는 동작하지만, 하드코딩된 값 때문에 환경마다 재사용하기 어렵습니다. 중복을 피하기 위해 변수를 도입하겠습니다.

2. variables.tf 만들기

프로젝트 폴더에 variables.tf 파일을 만들고 그 안에 변수를 정의합니다. 각 변수에 설명과 기본값을 포함합니다.

variable "resource_group_name" {
  description = "The name of the resource group"
  type        = string
  default     = "azurergtechielass"
}

variable "location" {
  description = "The Azure region to deploy resources in"
  type        = string
  default     = "Sweden Central"
}

variable "environment" {
  description = "The environment for the resources"
  type        = string
  default     = "Demo"
}

variable "owner" {
  description = "The owner of the resources"
  type        = string
  default     = "Techie Lass"
}

3. 리소스에서 변수 참조하기

# Define the Resource Group
resource "azurerm_resource_group" "resource_rg" {
  name     = var.resource_group_name
  location = var.location
  tags = {
    Environment = var.environment
    Owner       = var.owner
  }
}

지금 terraform apply를 실행하면 variables.tf에 정의된 기본값을 사용해 리소스 그룹이 생성됩니다.

4. terraform.tfvars 파일 만들기

기본값 대신 tfvars 파일로 값을 덮어쓸 수 있습니다. 프로젝트 폴더에 terraform.tfvars를 만들고 각 변수에 값을 할당합니다:

resource_group_name = "techielass-demo-rg"
location            = "France Central"
environment         = "Blog"
owner               = "Sarah"

이제 terraform plan을 실행하면 Terraform이 기본값이 아니라 tfvars 파일의 값을 가져오는 것을 확인할 수 있습니다.

Terraform tfvars 파일을 사용한 plan 명령

Terraform tfvars 파일을 사용한 plan 명령

서로 다른 환경을 위한 다중 tfvars 파일 사용

tfvars 파일의 장점은 각 환경마다 별도의 파일을 유지할 수 있다는 점이며, 예를 들어:

  • dev.tfvars
  • test.tfvars
  • prod.tfvars

Terraform을 실행할 때, 해당 파일을 지정합니다:

terraform plan -var-file="dev.tfvars"
terraform apply -var-file="dev.tfvars"

이 방법은 각 환경마다 코드를 다시 작성할 필요를 없애며, 관련 tfvars 파일만 수정하면 되므로 배포가 더 빠르고 오류가 적어집니다.

Terraform tip

Summary

Terraform 배포에 tfvars 파일을 사용하면 코드를 더 유연하고 재사용 가능하며 효율적으로 만들 수 있습니다.
변수 값을 메인 구성 코드와 분리함으로써 하드코딩을 피하고, 여러 환경에 걸쳐 코드를 더 쉽게 유지 관리하고 확장할 수 있습니다.

Back to Blog

관련 글

더 보기 »

Terraform 스택, 설명

Terraform Stacks는 인프라 프로비저닝 및 관리를 대규모로 단순화하도록 설계된 기능으로, 복잡성 없이 스케일링할 수 있는 내장된 방법을 제공합니다. T...