俺です。
Aurora PostgreSQLのバージョンアップをいくつかやったのでメモを残します。
Aurora PostgreSQL バージョンアップ・パッチ適用の全体時間はだいたい20min~30minぐらいです(Event logより)
バージョンアップ中にDB Instanceの再起動が行われ、一時的に全ての接続が失われます。
この一時的にっていうのは一体どれぐらいの期間なのか、数秒なのかそれとも自分が定年退職するまでの期間なのか実際のダウンタイムがきになったので
バージョンアップ中にpsql -c SELECT NOW();
を while : sleep 1
でぶん回して接続が復帰するまでの脳筋的体感時間を計測した結果をざっくりメモで残しておきます。
no | verup前 | verup後 | クラスタ・インスタンスパラメータグループの変更、要不要 | 再起動対象 | 脳筋体感的ダウンタイム | 備考 |
---|---|---|---|---|---|---|
1 | 9.6 | 10.12 | クラスタパラメータグループ・インスタンスパラメータグループ共に変更必要 | writer/readerが同時に再起動される | 10min ~ 20min | パラメータグループの変更が必要なのでクラスタ全体が一回shutdownされてるかんじ |
2 | 10.7 | 10.12 | パラメータグループ変更無し | writer/readerが同時に再起動される | 30sec ~1min | writer/readerエンドポイントが返すAレコードは、一番早く復帰するwriterインスタンスになるが、readerインスタンス復帰後にreaderエンドポイントはreaderインスタンスのAレコードが返される |
- メジャーバージョンアップはサービスの適切なメンテナンスウインドウを設定すること。メンテナンスウインドウに重なる、もしくは前後の時間帯で走るバッチ処理調整とか考慮しないとつらいかもって気持ちになりました。
- マイナーバージョンアップであればメンテなしでもぶっこんでよい規模のサービスは多々ありそうって気持ちになりました。
おわり