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バイトよりも大きいクエリは完全には収集できない。
またこの値を大きくすると使用するメモリの量が増える。
参考
- https://github.com/GoogleCloudPlatform/k8s-config-connector/issues/399
- https://github.com/GoogleCloudPlatform/magic-modules/pull/4464
- https://github.com/hashicorp/terraform-provider-google/issues/8449
- https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/sql_database_instance
- https://cloud.google.com/blog/ja/topics/developers-practitioners/using-google-cloud-service-account-impersonation-your-terraform-code