GCP CloudSQL の高可用性について
CloudSQL
インスタンスでは、高可用性向けに構成することができます。
これまでは、failover replica
インスタンスを使用していました。
新しい構成では failover replica
を使用しません。
以下のような terraform
の設定は不要となります。
resource "google_sql_database_instance" "replica" {
name = name
database_version = "MYSQL"
master_instance_name = google_sql_database_instance_name
region = region
settings {
...
}
replica_configuration {
failover_target = true
}
}
修正内容
高可用性を持つインスタンスを作成するには、以下のように設定します。
resource "google_sql_database_instance" "mysql_instance_ha" {
name = "mysql-instance-ha"
region = "asia-northeast1"
database_version = "MYSQL_8_0"
settings {
tier = "db-f1-micro"
availability_type = "REGIONAL"
backup_configuration {
enabled = true
binary_log_enabled = true
start_time = "20:55"
}
}
}
以下の設定をすることで、インスタンスのアベイラビリティタイプが「REGIONAL」になり、インスタンスは同じリージョン内で高可用性を提供するようになります。
availability_type = "REGIONAL"
環境ごとに設定を変えたい場合は以下のようにすると良いでしょう。
availability_type = var.environment == "production" ? "REGIONAL" : "ZONAL"
また、すでにレガシー構成でfailover replica
インスタンスを作成している場合は、以下の設定を追加して削除してあげましょう。
deletion_protection = "false"
インスタンスの高可用性を確認する
インスタンスの可用性が高いことを確認するには、以下のコマンドを実行します。
gcloud sql instances describe INSTANCE_NAME
出力には、availabilityType
が REGIONAL
であることが示されます。
参考記事