« ^ »
[WIP]

TerraformでGoogleCloudのCloudSQLのQuery Insightsを設定する

所要時間: 約 2分

Google Cloud Platform Provider

TerraformでGoogleCloudを使用するにはGoogle Cloud Platform Providerを使用する。

https://registry.terraform.io/providers/hashicorp/google/latest/docs

provider "google" {
  project = "testing"
  region = "asia-northeast1"
}

実行するには必要に応じてサービスアカウントの設定が必要になる。

CloudSQLとQuery Insights

CloudSQLを使用するにはgoogle_sql_database_instanceリソースを用いる。

https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/sql_database_instance

今回はPostgreSQL11のインスタンスをdb-f1-microで作成する。

resource "google_sql_database_instance" "testing" {
  name             = "testing"
  database_version = "POSTGRES_11"
  region = "asia-northeast1"

  settings {
    tier = "db-f1-micro"

    insights_config {
      query_insights_enabled = true
      query_string_length = 1024
      record_application_tags = true
      record_client_address = true
    }
  }
}

Cloud SQLのQuery Insightsの設定はsettingsの中に設定しているinsights_configで設定している。 これは実行されるクエリのパフォーマンスを収集、可視化する。 どのようなクエリがパフォーマンスに影響を与えているかなどの分析がしやすくなる。

query_insights_enabled をtrueに設定するとQuery Insightsが有効化される。 デフォルトではfalseになっている。 また無制限で情報を収集できるわけではない。 例えば query_string_length は取得可能なクエリの長さをバイト数で指定する。 デフォルト値は1024で、1024バイトの長さのクエリを取得する。 それ以上に長いクエリは、この設定の長さに切り詰められる。 設定可能な最大値は4500、つまり4500バイトよりも大きいクエリは完全には収集できない。 またこの値を大きくすると使用するメモリの量が増える。