あまり触ったことがない Amazon RDS のエンジンアップグレードをやった。開きまくったタブの整理がてら迷ったことなどを記録しておく。
アップグレードってどうやるの?
エンジンバージョンを変更するには「マネジメントコンソールを使う」「AWS CLIを使う」「RDS APIを使う」などの方法がある。今回はコンソールから作業する方法を選んだ。
コンソールにログインしたら、RDSを開いてアップグレードしたいクラスターを選択する。選択した状態で、右上の [Modify] から編集画面に移る。上部でエンジンバージョンを選べるのでアップグレードしたいバージョンを選択して [Continue] する。
変更内容を確認した後、「今すぐ適用」にチェックを入れて [Apply] して待つだけ。(ここで次のメンテナンスで実行するように指定することもできる)
アップグレードが順調に進んでいるか確認する方法
まずはインスタンス一覧の Status の欄で状況を確認できる。「Upgrading…」になっていればOK。
また、各インスタンスの Events でも都度メッセージを表示してくれている。
左のメニューの Events からは、インスタンスを横断したメッセージを確認できる。
どれで確認しても良いが最終的に Events の場合は Finished のメッセージを確認できて、Status の場合は Available になっていれば正常終了している。
マイナーバージョン自動アップグレード
メンテナンスウィンドウを設定しておけば、マイナーバージョンの変更は勝手にやっておいてくれる。インスタンスの設定画面からマイナーバージョン自動アップグレードを有効にするだけで良い。この設定変更は再起動不要である。
予定しているメンテナンスがあるかどうかは、インスタンスごとのメンテナンスタブで確認できる。
自動アップグレードは便利だが、状況によってはメンテナンスウィンドウ中に終了しない場合もあるようなので注意が必要。自分はまだ遭遇したことがない。
また、クラスターの場合は、属するインスタンスすべてでマイナーバージョン自動アップグレードを有効にしていないと有効にならない。
Zero-downtime patching?
最近ではインスタンスクラスとエンジンバージョンによって ZDP (Zero-downtime patching)という機能が適用される。大雑把に言えば小さい変更であれば再起動なしで変更を反映できるもの。メンテナンスウィンドウ中のマイナーバージョン自動アップグレードは、この機能によってダウンタイムなしにできる。ただし、ZDP はベストエフォートとのことなので絶対に0ではないらしい。