0
0

More than 1 year has passed since last update.

Terraform と GCP でのプロジェクト別のリソース管理

Posted at

概要

GCP で Terraform を使用する際、異なるプロジェクトや環境に対して効率的に Terraform を適用する方法について調べたので、それを本記事にまとめました。
Terraform の backend 設定を使用して、GCP上の Cloud Storage を使って異なるプロジェクトや環境ごとに Terraform state を管理する方法を以下に記載します。
これにより、リソースの競合や誤操作を回避し、一貫性のあるインフラ管理を実現することができました。

実装手順

  1. バケットの作成
    最初に、Terraform state を保存する Cloud Storage バケットを作成します。

  2. Terraform の設定ファイル (通常 main.tf または backend.tf など) に backend の設定を追加します

    terraform {
      backend "gcs" {
        bucket  = "default_gcs_bucket_name"
        prefix  = "terraform/state"
      }
    }
    
  3. backendの変更を適用するためにterraform initを実行します。

    terraform init -backend-config="bucket=terraform-backend_for_<プロジェクトID>"
    

    terraform init コマンドを実行する際に、-backend-config オプションを使用して動的に設定をオーバーライドすることができます。
    このオプションを利用すると、環境に応じて異なるバケットを使用することができます。

  4. このコマンドを実行すると、以下のようなプロンプトが表示される場合がありますので、この質問に yes と答えることで、現在の state が新しい GCS backend にコピーされます。

    Do you want to copy existing state to the new backend?
    
  5. terraform init の実行が完了したら、そのディレクトリで terraform apply を実行します。このとき、上記で設定した GCS bucket が backend として使用されることになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0