RDS設定変更反映のタイミング

佐野

佐野 2015年4月15日

最近、RDSでも本格的にテストしようと、色々触れている所なのですが、
EC2と同様に「インスタンス」と呼ばれていながらも、
「停止」の概念がなく、停止する際にはスナップショットを取り、
起動の際にはスナップショットからの復元で行うなど、
コンソールの違いだけでなく、概念そのものの違いにも翻弄されながら、触っているところです。

そんな中、RDSについての事で気になる件が浮上してきました。
それは、RDSの設定反映時期に関してです。

「Instance Actions」ボタンから「Modify」を選択する事で、
RDSの設定変更画面に行くのは、まぁここまでは理解の範囲内なのですが、
ここから先が、ちょっとクセモノです。

20150415135121

Modify画面の最下層にある「Maintenance」カテゴリの
「Apply Immediately」にチェックを入れなければ、その時点で設定が反映される事はありません。
もしチェックを入れていない場合は、ひとつ上の「Maintenance Window」で設定された
定期メンテナンスの時刻に反映される事になります。

http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html
こちらのAWSドキュメントの表で、「次のメンテナンスウィンドウ中に適用されます。」
の記述がある行が、それに該当します。

ただ、この記述が記述だけに、「次のメンテナンスウィンドウ中に適用されます。」は、
「「Continue」ボタンを押した次の画面で適用される」と解釈してしまった人もいる事でしょう。
そう思っていた時期が、私にもありました。
ここで言う「メンテナンスウィンドウ」とは、「Maintenance Window」で設定する、
週ごとのメンテナンス時刻の事です。

また、プログラミングに関わっている人なら、すぐにわかるとは思いますが、
念の為に、ドキュメントの表ヘッダーの「true」「false」について説明しますと、
「true」がYESという意味でチェック入り、「false」がNOという意味でチェックなしと
認識していただければいいです。

つまり、インスタンスの設定自体に、深く関わる項目は、週ごとのメンテナンスの際に適用され、
セキュリティグループの付け替えや、マスターパスワードの変更程度なら、即座に適用できるとの事ですね。
メンテナンス時に適用される内容は、RDS一覧からステータスを開いたときの、
「Maintenance Details」カテゴリの「Pending Modifications」の項目に表示されています。
20150415135147
時刻は協定世界時な所にも、注意が必要です。
また、メンテナンスによる適用前に、再度「Modify」をやり直した場合、
「Pending Modifications」の項目が最後の設定に合わせて変化しているので、
最終的な状況に関しては、この項目を確認するとよいでしょう。

なら、設定した項目は、即座にやってしまったほうがいいんじゃないか?
結局「Apply Immediately」にチェック入れておけばいいのではないかと思うかもしれませんが、
ここで要注意!
RDSの「Maintenance Window」設定を伴う再起動は、t2.microでも7分ぐらいかかります
もちろん、その間RDSを使っているウェブサイトやシステムは、機能を停止するわけですから、
真っ昼間に行うのが非現実的なのは、火を見るより明らかです。

どうしてもすぐに反映する必要があるという場合には、
「Apply Immediately」にチェックを入れて、即時反映させるのもいいでしょうが、
基本的には、「Apply Immediately」にはチェックを入れず、
誰もアクセスがないような時間帯に設定された、
「Maintenance Window」に準じるのが理想的でしょう。