피드로 돌아가기
Dev.toDevOps
원문 읽기
Terraform locals로 S3 버킷 이름을 동적으로 생성하여 환경별 재사용성을 확보함
Terraform Lab: Using `locals` (Real Project Style)
AI 요약
Context
Terraform 프로젝트에서 S3 버킷 리소스 생성 시 버킷 이름과 태그를 하드코딩하면 환경(dev/prod)별 복사본 관리와 재사용이 어려워짐.
Technical Solution
- locals 블록: variable 조합으로 name_prefix, bucket_name, common_tags를 중앙 정의함
- 동적 네이밍: project_name + environment + bucket_suffix를 결합하여 jumptotech-dev-lab 형태 생성함
- 조건부 로직: is_prod = environment == "prod"으로 versioning 상태를 환경에 따라 분기함
- terraform.tfvars: 실제 값 분리하여 코드와 설정 분리 유지함
Impact
환경 변수만 변경하면 동일한 코드로 jumptotech-prod-lab 버킷 생성 가능함.
Key Takeaway
locals는 하드코딩 방지, 재사용성 확보, 중앙화된 로직 관리라는 세 가지 목적을 동시에 달성하는 Terraform 핵심 패턴임.
실천 포인트
Terraform 프로젝트에서 리소스 이름 생성 시 하드코딩 대신 locals 블록에 변수 조합 로직을 정의할 것. environment와 같은 조건 변수 활용 시 versioning, encryption 등 리소스 동작을 환경별로 동적 제어할 수 있음.