TerraformでGCPのCloud SQL(postgres)のtierを指定するときのポイント

TerraformでGCPのCloud SQLをpostgresで立てようと思った。

CPUやメモリなどを含んだマシンタイプを指定する必要があるが、今までは db-f1-micro のようにGCPがデフォルトで提供しているタイプを使用していた。

tier = "db-f1-micro"

これを db-lightweight-1 に変えてapplyしたのだが、変更することができなかった。

Terraform Registry

これによると、

Postgres supports only shared-core machine types, and custom machine types such as db-custom-2-13312.

とのことで、共有コアのマシンタイプのものしか指定できず、それ以外の場合はカスタムマシンタイプにする必要がある。

「db-custom-CPU数-メモリ量」で表すことはできるが、なんでも数値を入れることができるわけではなく、

CPU の数とメモリの量を選択する際、選択する構成にはいくつかの制限があります。

vCPU は 1 または 2~96 の間の偶数にする必要があります。

メモリは次の条件を満たす必要があります。

vCPU あたり 0.9~6.5 GB 256 MB の倍数 3.75 GB(3,840 MB)以上

この条件を満たしていなければならない。

インスタンスの設定について  |  Cloud SQL for MySQL  |  Google Cloud

なのでカスタムマシンタイプを指定する場合の最小構成は db-custom-1-3840 ということになる。