単一の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 の他のサイト
同じ著者、別の領域のサイトが2つ。