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이 더 확장 가능해진다.
- 깔끔한 로직은 깔끔한 인프라 코드로 이어진다.