Day-08: terraform의 Meta Arguments

발행: (2025년 12월 2일 오후 03:04 GMT+9)
2 min read
원문: Dev.to

Source: Dev.to

메타 인수

Terraform은 리소스 동작을 제어하는 다섯 가지 메타‑인수를 제공합니다:

  • depends_on
  • count
  • for_each
  • provider
  • lifecycle

count

count는 값 목록을 반복(iterate)하는 데 사용됩니다.

// variables.tf
variable "bucket_count_list" {
  type    = list(string)
  default = [
    "bhaskaratejabulusu-bucket-day-08-list-1",
    "bhaskaratejabulusu-bucket-day-08-list-2"
  ]
}

// main.tf
resource "aws_s3_bucket" "bucket1" {
  count  = length(var.bucket_count_list)
  bucket = var.bucket_count_list[count.index] // 0부터 count‑1까지 반복
}

for_each

for_each는 값 또는 키‑값 쌍을 반복합니다. 맵(map)과 집합(set)에서 사용할 수 있으며, 변수의 타입은 map 또는 set이어야 합니다.

집합 예시

// variables.tf
variable "bucket_count_set" {
  type    = set(string)
  default = [
    "bhaskaratejabulusu-bucket-day-08-set-1",
    "bhaskaratejabulusu-bucket-day-08-set-2"
  ]
}

// main.tf
resource "aws_s3_bucket" "bucket2" {
  for_each = var.bucket_count_set
  bucket   = each.value // 집합을 반복
}

맵 예시

// variables.tf
variable "bucket_count_map" {
  type = map(string)
  default = {
    bucket1 = "bhaskaratejabulusu-bucket-day-08-map-1",
    bucket2 = "bhaskaratejabulusu-bucket-day-08-map-2"
  }
}

// main.tf
resource "aws_s3_bucket" "bucket3" {
  for_each = var.bucket_count_map
  bucket   = each.value
}

depends_on

depends_on은 리소스 간의 의존성을 명시적으로 선언하여 Terraform이 올바른 순서로 리소스를 생성하도록 합니다.

// main.tf
resource "aws_s3_bucket" "bucket1" {
  count  = length(var.bucket_count_list)
  bucket = var.bucket_count_list[count.index]
}

resource "aws_s3_bucket" "bucket2" {
  for_each = var.bucket_count_set
  bucket   = each.value

  depends_on = [aws_s3_bucket.bucket1]
}

이 예시에서 bucket2bucket1에 의존합니다; Terraform은 bucket1이 생성될 때까지 기다렸다가 bucket2를 프로비저닝합니다.

Back to Blog

관련 글

더 보기 »

계정 전환

@blink_c5eb0afe3975https://dev.to/blink_c5eb0afe3975 여러분도 알다시피 저는 다시 제 진행 상황을 기록하기 시작했으니, 이것을 다른…