Terraform 스크립트 리팩터링 — 균형 회복
Source: Dev.to
로컬스택 수동 구성 문제
Terraform을 로컬스택과 함께 사용할 때, 많은 개발자들이 로컬 환경에만 필요한 많은 프로바이더 설정(예: 커스텀 엔드포인트, skip_credentials_validation 같은 플래그)을 추가합니다. 이러한 설정은 유지 보수 부담을 늘리고, 실제 AWS 환경에서 사용하는 구성과 Terraform 코드가 달라지게 만듭니다.
해결책: tflocal 래퍼 사용
LocalStack은 tflocal이라는 래퍼를 제공하여, .tf 파일에 LocalStack‑전용 설정을 삽입하지 않고도 Terraform을 LocalStack에 연결해 실행할 수 있게 합니다. tflocal을 사용하면 Terraform 구성은 깔끔하게 유지되며 실제 AWS 사용과 동일하게 됩니다.
장점
- 코드가 깔끔해짐 – 조건부 엔드포인트나 검증 플래그가 필요 없습니다.
- 유지 보수 용이 – 동일한 파일이 로컬과 프로덕션 모두에서 동작합니다.
- 워크플로우 단순화 – LocalStack 세부 사항은 런타임에 처리되고, 코드에는 나타나지 않습니다.
예시 프로바이더 구성 (LocalStack 오버라이드 없음)
provider "aws" {
profile = "localstack"
region = "us-east-1"
default_tags {
tags = {
Environment = "tutorial"
Project = "terraform-configure-providers"
}
}
}
Note:
profile과region값은 여러분의 환경에 맞게 조정할 수 있습니다. 엔드포인트 오버라이드나skip_*플래그는 필요하지 않습니다.
tflocal로 Terraform 실행하기
작업 디렉터리 초기화
tflocal init
구성 적용
tflocal apply
이 명령들은 Terraform이 자동으로 LocalStack과 통신하도록 설정해 주며, .tf 파일을 환경‑특정 조정 없이 깔끔하게 유지할 수 있게 합니다.