단일 Terragrunt 파일에서 여러 Terraform 모듈 호출하는 방법
Terragrunt에서는 terraform 블록을 자식 구성과 결합하여 단일 Terragrunt 구성 파일에서 여러 Terraform 모듈을 호출할 수 있다.

Terragrunt에서는 terraform 블록을 자식 구성과 결합하여 단일 Terragrunt 구성 파일에서 여러 Terraform 모듈을 호출할 수 있다. 이는 일반적으로 각 모듈이 자체 Terragrunt 파일에서 참조되지만 부모 Terragrunt 파일을 사용하여 중앙에서 관리되는 계층 구조로 Terragrunt 구성을 구성함으로써 수행된다.
이를 구조화하는 기본적인 개요는 다음과 같다:
- 부모 Terragrunt 파일 생성: 이 파일은 리소스를 직접 배포하지 않지만 공통 설정을 구성하고 모듈 배포를 오케스트레이션하는 데 사용된다.
- 각 모듈에 대한 자식 Terragrunt 파일 생성: 각 모듈은 Terraform 모듈의 소스와 필요한 입력을 지정하는 자체 Terragrunt 구성 파일을 가진다.
예시 구조
다음은 예시 디렉토리 구조다:
/terraform-live
|-- terragrunt.hcl # 부모 구성
|-- network
| |-- terragrunt.hcl # network용 모듈 구성
|-- app
| |-- terragrunt.hcl # app용 모듈 구성부모 Terragrunt.hcl
# /terraform-live/terragrunt.hcl
remote_state {
backend = "s3"
config = {
bucket = "my-terraform-state"
key = "${path_relative_to_include()}/terraform.tfstate"
region = "us-west-1"
encrypt = true
dynamodb_table = "my-lock-table"
}
}
모든 자식 구성 포함
include {
path = find_in_parent_folders()
}
자식 Terragrunt.hcl (예: Network)
# /terraform-live/network/terragrunt.hcl
terraform {
source = "git::https://example.com/network-module.git?ref=v1.0"
}
network 모듈에 특정한 입력
inputs = {
vpc_id = “vpc-123456”
}
사용법
모든 모듈을 적용하려면 일반적으로 각 모듈 디렉토리로 이동하여 terragrunt apply와 같은 Terragrunt 명령을 실행한다. 모듈 디렉토리를 순회하며 Terragrunt 명령을 실행하는 스크립트나 CI/CD 워크플로우로 이를 자동화할 수도 있다.
이 설정을 통해 관심사의 명확한 분리, 재사용 가능한 코드, 환경 간 일관성을 유지하면서 중앙 집중식 구성으로 여러 모듈의 배포를 관리할 수 있다.
Ercan의 다른 글
같은 저자, 다른 영역의 사이트 두 개.