Open5

WindowsからTerraformを利用してGoogle Cloud環境を構築する

kkjkkj
初期化
terraform init
更新内容の確認
terraform plan
変更の適用
terraform apply
kkjkkj

主にローカルの開発環境で、Google Cloudのサービスを利用するアプリケーションやスクリプトを実行する際に、認証を簡単に行うコマンド

gcloud auth application-default login

利点:
サービスアカウントを作ってローカルにクレデンシャルファイルを設置して実行する必要がないので安全。

kkjkkj

このTerraformコードは、東京リージョンの asia-northeast1-b ゾーンに、PostgreSQL 17 を使用した db-f1-micro という比較的小規模なCloud SQLインスタンス (dev-db-server-2) を作成します。主な特徴は以下の通りです。

💰 低コスト構成: db-f1-micro (共有コア) と PD_HDD を採用。
💾 自動バックアップとポイントインタイムリカバリが有効になっており、データの保護が考慮されています。
🛡️ 削除保護が有効で、誤操作によるインスタンス削除を防ぎます。
⚙️ ストレージは自動拡張される設定です。
🌐 パブリックIPアドレスが有効になります。

resource "google_sql_database_instance" "dev_db_server_2" {
  name             = "dev-db-server-2"
  database_version = "POSTGRES_17"
  region           = "asia-northeast1"

  settings {
    tier    = "db-f1-micro"
    edition = "ENTERPRISE"
    disk_size               = 20
    disk_type               = "PD_HDD"
    availability_type       = "ZONAL"
    activation_policy       = "ALWAYS"
    disk_autoresize         = true
    disk_autoresize_limit   = 0 


    ip_configuration {
      ipv4_enabled    = true
    }


    backup_configuration {
      enabled                        = true
      binary_log_enabled             = false
      point_in_time_recovery_enabled = true
      backup_retention_settings {
        retained_backups = 7
        retention_unit   = "COUNT"
      }
      location                       = "asia" // JSONの "location: asia" から
      start_time                     = "19:00"
      transaction_log_retention_days = 7
    }

    location_preference {
      zone = "asia-northeast1-b"
    }

    maintenance_window {
      day  = 7
      hour = 0
      update_track = "canary"
    }
  }

  deletion_protection = false
}

https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/sql_database_instance#granular-restriction-of-network-access

kkjkkj

Cloud SQLのインスタンスの詳細情報を表示させる。

$ gcloud sql instances describe $instance_name