Amazon Auroraでメジャーバージョンアップグレードで中間メジャーバージョンをスキップ出来るようになりました

2022.03.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

Amazon Auroraでメジャーバージョンアップグレード時に中間メジャーバージョンをスキップ出来るようになりました。

実は出来ないのを知りませんでした。調べてみると、これまではRDS for PostgreSQLでは出来ていましたが、Aurora PostgreSQLではスキップは出来なかったんですね。

Aurora PostgreSQL

これまでは1つづつ

これまではメジャーバージョンアップグレードはAurora PostgreSQLでは1つ上のバージョンまでしか対応していませんでした。
例えば、9.6を13へアップグレードしたい場合はv9.6→v10→v11→v12→v13と段階を踏んでアップグレードする必要がありました。

これからは一気に可能

これからは中間メジャーバージョンをスキップし、例えばv9.6→v13と一気にメジャーバージョンアップグレードを行うことが出来るようになります。

ただし、バージョンアップ前のマイナーバージョンによっては中間スキップが出来ない場合があります。
例えば、前述のv10.13の場合は引き続きまずはv11にまずアップグレードする必要があります。

バージョンの詳細は以下を参照してください。
Upgrading the PostgreSQL DB engine for Aurora PostgreSQL - Amazon Aurora

9.6の場合は9.6.22以上、10の場合は10.18以上、11の場合は11.13以上のマイナーバージョンの場合だとメジャーバージョンのスキップが出来ます。

9.6.22と10.18、11.13が並んでるのは少しずれている気がします。パッチ内容からすると9.6.23のような気もしますがまた別の理由なのかもしれません。

一気にアップグレード出来るようになりますが、十分評価してからアップグレードするようにしてください。
また、拡張機能の一部は特定メジャーバージョンからはサポートされていないものなどもあり、事前に削除しなければならない場合や最新のマイナーバージョンに先にアップグレードしなければならないケースがあります。
Auroraのドキュメントでは以下が挙げられています。

  • バージョンアップが必要
    • pgRouteing
    • postgis_raster
    • postgis_tiger_geocoder
    • postgis_topology
    • address_standardizer
    • address_standardizer_data_us
  • 11.x以降の場合削除が必要(サポートされていない)
    • chkpass
    • tsearch2

また、インデックスの再作成が必要なことも多いです。

RDS for PostgreSQLの以下をあわせて確認しておきましょう。

Amazon RDS の PostgreSQL DB エンジンのアップグレード - Amazon Relational Database Service

RDSはこれまでも出来ていた

ちなみに、前項で少し触れましたがRDS for PostgreSQLでは以前からメジャーバージョンスキップは可能でした。

RDSでもAuroraでもPostgreSQLのアップグレードの仕組みとしてはpg_upgradeを使っています。
pg_upgrade自体は以前からメジャーバージョンスキップは可能でした。今回はAuroraが追従して対応したという形ですね。

さいごに

本日はAurora PostgreSQLで利用出来るようになったアップグレード時のメジャーバージョンスキップについて紹介しました。

マイナーバージョンアップグレードと比べてかなりメジャーバージョンアップグレードに踏み切れずに、スケジューリングや準備をした上で複数メジャーバージョンアップグレードを一気に行うケースは意外に多いのではないでしょうか。
従来RDS for PostgreSQLで可能だった方法がAurora PostgreSQLでも可能になったので運用上助かりそうです。

ただし、メジャーバージョンアップグレードは手動で様々な評価やアップグレード後の作業も必要になるため、しっかりとして準備が必要です。
テストももちろんですが、必要な作業も多く、アップグレード前後に必要手順については必ず確認してください。

Upgrading the PostgreSQL DB engine for Aurora PostgreSQL - Amazon Aurora