RDS設定変更時の失敗にぶちあたった
利用環境
AWS Aurora
MySQL8.0.5.2
ライターインスタンス、リーダーインスタンスがそれぞれ1
terraform v3.76.1
失敗したことの箇条書き
cluster-parameter-groupを変えた。
変わったかどうかコンソールで見た。
インスタンスの設定画面を見た。
「再起動を保留中」となっていた。
なぜだ?となり、また解消方法の知見が欲しくなった。
cluster-parameter-groupのmax_connectionsのパラメーターを変えたかったので、下記のように書いた。
parameter {
apply_method = "pending-reboot"
name = "max_connections"
value = "100"
}
terraform applyで適用し、AWSコンソール上で、クラスターパラメーターグループのmax_connections値を確認し、変更されていることを確認した。
AWS RDSの画面上で、パラメーターグループが適用中のグリーンシグナルがついているかどうか確認した。
結果、「再起動を保留中」となってしまっていた。
設定見直した。
aws_rds_clusterとaws_cluster_instanceの設定のapply_immediatelyはtrueになっていた。
仕様?的なものを見直し。
max_connectionsとは、動的パラメーターである。
→ならば、apply_method = "pending-reboot"
で再起動後に適用させる必要ない。
apply_immediately = trueとは「即時反映」のための設定値である。とは知っていた。
→即時反映とは、つまり・・・?
再起動が必要なときどうなる?
パラメーターグループの変更が即時反映されないのは、なぜ?
脳内では(パラメーターグループの変更→再起動が必要な判定→apply_immediatelyがtrueなので、RDS再起動する。という流れになるのでは?)
apply_immediatelyってそもそもクラスターやインスタンスの変更を即時適用する為で、パラメーターグループは対象外?
あと、terraformからRDSをrebootなりfailoverなりはできない?
terraformからRDSをrebootなりfailoverなりはできない?
出来なかった。
apply_immediatelyってそもそもクラスターやインスタンスの変更を即時適用する為で、パラメーターグループは対象外?
対象外っぽそうだ。
dynamicパラメーターは、変えれば、変わる。が、pending_rebootしてしまうと、設定は反映されているのに、再起動待ちだけ生きになる。