Terraformを使用してさまざまな環境でインフラストラクチャを作成する方法

Terraformは、何百ものクラウドサービスを管理するためのCLIで一貫したワークフローを提供するオープンソースのIaC(コードとしてのインフラストラクチャ)ツールです。Terraformは、クラウドAPIを宣言型の構成ファイルに変換します。







通常、インフラストラクチャは、開発、ステージング、テスト、および本番環境に使用するいくつかの環境に展開します。指定された環境でインフラストラクチャをプロビジョニングするには、保守と拡張が容易なTerraform構成を作成することが非常に重要です。







画像







この記事では、さまざまな環境でインフラストラクチャを準備するいくつかの方法を検討します。それぞれに長所と短所があります。







前書き



. . — . Terraform .







Terraform — IaC, , .

.









Terraform, .







— 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. . .








All Articles