Aurora Serverless v2のメジャーアップグレードが失敗したとき
はじめに
ある日Aurora Serverless v2 postgresを15から17へのメジャーアップグレードを試みたところ、下記のようなメッセージで失敗してしまいました。
調べてもあまり情報が出てこなかったので、こちらに備忘録として残しておきます。
command: "/rdsdbbin/aurora-15.12.15.12.4.43259.0/bin/pg_ctl" -w -l "/rdsdbdata/db/pg_upgrade_output.d/20260109T014751.492/log/pg_upgrade_server.log" -D "/rdsdbdata/db_old" -o "-p 5432 -b --config_file=/rdsdbdata/config_old/postgresql.conf -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_socket_directories='/rdsdbdiagnostic/engine-logs/upgrade' --rds.metadata_quick_recovery_mode=off --rds.buffer_cache_quick_recovery_mode=off" start >> "/rdsdbdata/db/pg_upgrade_output.d/20260109T014751.492/log/pg_upgrade_server.log" 2>&1
waiting for server to start....2026-01-09 01:48:13.057 GMT [798] LOG: pgaudit extension initialized
2026-01-09 01:48:13.158 GMT [798] FATAL: shared memory segment sizes are configured too large; total requested: 4563976192 (buffer cache: 40960, main segment: 3998179328, 65536 buffers), system total memory: 3048509440.
HINT: try reducing shared memory parameters, such as shared buffers.
2026-01-09 01:48:13.158 GMT [798] LOG: database system is shut down
stopped waiting
pg_ctl: could not start server
Examine the log output.
原因
原因はAuroraのキャパシティユニットが小さいことが原因でした。
普段は最大1ACUと低いユニットで運用しているのですが、このACUはメジャーアップグレード時にも、適用されるようなので、
Postgres15から17へのメジャーアップグレード時に必要なスペックを満たせず、上記のようなエラーが発生していました。
対応
対応としては、メジャーアップグレードを実行する前に、一時的に最大ACUを上げることです。
今回の環境では8ACUに上げることで、無事にメジャーアップグレードが成功しました。ひょっとしたらACUの具体的な数字は環境によって異なるかもしれません。
-
RDSコンソールから対象のクラスターを選択して「変更」をクリック。
-
「Serverless v2 容量の設定」で、最大キャパシティACUを上げる。

-
「続行」=>「クラスターの変更」で「今すぐ適用」を選択して変更を保存。
-
改めて、RDSコンソールから対象のクラスターを選択して「変更」をクリック。
-
「DB エンジンバージョン」でアップグレード先のPostgresバージョンを選択。

-
「続行」=>「クラスターの変更」で「今すぐ適用」を選択して変更を保存。
-
メジャーアップグレードが完了したら、再度2の手順で最大キャパシティACUを元の値に戻しておきましょう。
※注意点として、ACUの変更とメジャーアップグレードは同一の変更ではなく、ACU変更 => メジャーアップグレードの順に実行しましょう。同一に実行すると、記載のエラーのようにメジャーアップグレードが失敗する可能性があります。
おわりに
今回はAurora Serverless v2のメジャーアップグレードが失敗したときの対応方法について紹介しました。
同じような状況でお困りの方の参考になれば幸いです。
NCDC株式会社( ncdc.co.jp/ )のテックブログです。 主にエンジニアチームのメンバーが投稿します。 募集中のエンジニアのポジションや、採用している技術スタックの紹介などはこちら( github.com/ncdcdev/recruitment )をご覧ください!
Discussion