• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

terraform + gcp

date: 2024-01-30 excerpt: terraform + gcpの基本的な使い方

tag: terraformgcpgoogle cloud platform


terraform + gcpの基本的な使い方

概要

  • terraformでgcpのリソースを管理
  • すでに様々なリソースがデプロイ済みであっても、terraformで管理できる
  • 各機能の説明はGoogle Cloud Platform Providerを参照

既存の環境のexport

  • exportしたファイルは複雑で冗長な場合が多いので、そのままIaCとして使うのは難しい

既存リソースをHCLでエクスポート

$ gcloud beta resource-config bulk-export \
  --path=./export \
  --project=YOUR_PROJECT_ID \
  --resource-format=terraform

import用モジュールとスクリプト生成

$ gcloud beta resource-config terraform generate-import ./export

リモートステートでの管理

GCSバケットの作成

$ BUCKET=tfstate-$PROJECT_ID
$ gsutil mb -p $PROJECT_ID -l asia-northeast1 -b on gs://$BUCKET

backend.tf

# backend.tf
terraform {
  backend "gcs" {
    bucket = "tfstate-<YOUR_PROJECT_ID>"
    prefix = "envs/prod"
  }
}

プロバイダの設定

versions.tf

terraform {
  required_version = ">= 1.0"
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "~> 6.0"   # 6.x 系に固定(お好みで >=6,<8 でもOK)
    }
  }
}

最小限のリソース別ファイル構成

$ tree .
.
├── apis.tf
├── backend.tf
├── compute.tf
├── locals.tf
├── network.tf
├── outputs.tf
├── providers.tf
├── variables.tf
└── versions.tf


terraformgcpgoogle cloud platform Share Tweet