Day 10: 조건, Dynamic Blocks 및 Splat Expressions로 Terraform을 더 스마트하게 만들기

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

Source: Dev.to

Terraform의 조건식

조건식은 값에 따라 Terraform이 결정을 내리도록 도와줍니다. 환경마다 별도의 리소스를 작성하는 대신, 조건을 사용해 동작을 제어할 수 있습니다.

기본 형식은 다음과 같습니다:

condition ? true_value : false_value

동적 블록(Dynamic Blocks): 적게 작성하고 많이 수행하기

동적 블록을 사용하면 Terraform이 반복되는 중첩 블록을 자동으로 생성하므로, 인그레스 규칙이나 태그와 같은 설정에서 중복을 줄일 수 있습니다.

예시

dynamic "ingress" {
  for_each = var.ingress_rules
  content {
    from_port   = ingress.value.from
    to_port     = ingress.value.to
    protocol    = ingress.value.protocol
    cidr_blocks = ingress.value.cidr
  }
}

장점

  • 유지 보수가 쉬움
  • 반복이 감소
  • 유연성 향상

스플랫 표현식(Splat Expressions): 여러 리소스 다루기

스플랫 표현식은 여러 리소스가 생성될 때 그들의 속성을 한 번에 접근하고자 할 때 사용합니다.

예시

aws_instance.example[*].id

이 표현식은 해당 리소스 아래에서 생성된 모든 인스턴스 ID를 리스트 형태로 반환합니다.

일반적인 사용 사례

  • count 또는 for_each와 함께 사용
  • 여러 값을 출력값으로 전달
  • 수동 인덱싱을 피함

실습 후 이해한 내용

  • 조건식을 사용하면 중복 코드를 줄일 수 있었다.
  • 동적 블록 덕분에 반복되는 설정을 간소화했다.
  • 스플랫 표현식으로 여러 리소스를 다루기가 쉬워졌다.
  • Terraform이 더 논리적이고 유연하게 느껴졌다.

직접 해보면서 이 개념들을 읽기만 할 때보다 훨씬 명확히 이해할 수 있었다.

Day 10의 핵심 정리

  • Terraform은 조건 로직을 지원한다.
  • 동적 블록은 반복을 감소시킨다.
  • 스플랫 표현식은 다중 리소스 출력을 간소화한다.
  • 이러한 기능들 덕분에 Terraform이 더 확장 가능해진다.
  • 깔끔한 로직은 깔끔한 인프라 코드로 이어진다.
Back to Blog

관련 글

더 보기 »