[小ネタ] RDS パラメーターグループの動作


概要

RDSを構築する時に、パラメーターグループを「defalut」のまま作成したRDSで
途中で、パラメータを変更することになった。

「default」のパラメータグループは、パラメータを変更することは出来ない から
新しいグループを作成して、パラメータ(適用タイプ:Dynamic)を変更し適用することにした。

その時、検証した内容を記録します。

検証

0. 検証環境

  • RDS
    • エンジン:PostgreSQL 10.1
    • マルチAZ:いいえ
    • パラメータグループ-1:default.postgres10
    • パラメータグループ-2:para-new

[ 変更したパラメータ(para-new) ]

1. パラメータグループを変更( default --> para-new )

マネジメントコンソールの操作で、「変更」から「パラメータグループ」を変更する。
※ 「変更のスケジュール」は「次に予定されるメンテナンスウィンドウ中に適用します」にした。

[ イベントログ表示 ]

[ パラメータの反映結果 ]

変更した内容は反映されなかった。(変更内容としては、ファイル名が変わる想定)

ドキュメントをちゃんと読むと...以下のように記載されている。

DB インスタンスに関連付けられている DB パラメータグループを変更する場合
DB インスタンスで新しい DB パラメータグループを使用する前に、インスタンスを手動で
再起動する必要があります。

確かに、コンソール上でも表示されている。

[ パラメータグループ表示 ]

よし!再起動だ! という具合にできれば、反映され終了です。

大体、稼働しているRDSは、容易には再起動出来ない(特にマルチAZではない場合...)。
そもそも、初期構築時に「default」は避けておきたい。

2. メンテナンスウィンドウに祈る

メンテナンスウィンドウの時間帯に上手いことやってくれないかと期待をして待つ...

特に何も起きない...

3. パラメータグループを変更

上記のドキュメントを読むと、パラメータグループを変更する際には
「再起動」が必要なわけで、もしかして、今の状態でなら変更出来るのでは?と思い、「para-new」の内容を変更する。
( サンプルで変更したのは適当に選んだパラメータです。)

適用が完了すると...?
おっ?反映されている。

ただ、「パラメータグループ表示」は、変化しない。モヤモヤ。

まとめ

ドキュメントの通り、「パラメータグループ」を変更する際は、反映には再起動が必須となる。
ただ、「再起動の保留中」の状態でも、「パラメータグループ」の変更をともなわない「パラメータ」の変更は、「適用タイプ:Dynamic」であれば、再起動不要で反映される。

なので、RDSを作成する際は、個々のパラメータを「default」から変更しないとしても
新しく作成して、それを適用しておけば、後々変更が必要になった場合に楽だなと改めて思いました。