Terraformは、何百ものクラウドサービスを管理するためのCLIで一貫したワークフローを提供するオープンソースのIaC(コードとしてのインフラストラクチャ)ツールです。Terraformは、クラウドAPIを宣言型の構成ファイルに変換します。
通常、インフラストラクチャは、開発、ステージング、テスト、および本番環境に使用するいくつかの環境に展開します。指定された環境でインフラストラクチャをプロビジョニングするには、保守と拡張が容易なTerraform構成を作成することが非常に重要です。

この記事では、さまざまな環境でインフラストラクチャを準備するいくつかの方法を検討します。それぞれに長所と短所があります。
前書き
. . — . Terraform .
Terraform — IaC, , .
.
— 1
terraform.tfvars. , .
. , . outputs.tf, providers.tf, variables.tf . . terraform : init, plan, apply
.
( 1)
:
- ,
- .
:
- ;
- , .
— 2
, terraform.tfvars. , .
main.tf variables.tf , terraform . , , :
// Dev Environment terraform plan --var-file="tfvars/environment/dev.tfvars" // QA Environment terraform plan --var-file="tfvars/environment/qa.tfvars" // Prod Environment terraform plan --var-file="tfvars/environment/prod.tfvars"
( 2)
:
- ;
- , .
:
- ;
- , .
Terraform default. , , , . , , default.
terraform workspace
. . , terraform workspace new
.
— , . Terraform — root-. Root- , .tf .
, . , . , .
. , .
Terragrunt
Terragrunt — , DRY , Terraform .
- Terraform — - IaC, CLI .
- , , , .
- Terraform.
- — . .
- Terraform default. , , , .
- — , . , .
- Terragrunt — , DRY , Terraform .
, Terraform. . .