Amazon Aurora Global Database のマネージドマイナーバージョンアップグレードを試してみた

Amazon Aurora Global Database のマネージドマイナーバージョンアップグレードを試してみた

タイミングを見計らってでサッとバージョンアップしたい時に便利
2026.04.11

Aurora Global Databaseのマイナーバージョンアップを簡単に行いたい

こんにちは、のんピ(@non____97)です。

皆さんはAurora Global Databaseのマイナーバージョンアップを簡単に行いたいなと思ったことはありますか? 私はあります。

Aurora Global Databaseを運用している時にバージョンアップは一手間がかかります。

以下記事で紹介しているように人力でセカンダリーDBクラスター → プライマリDBクラスターの順番でバージョンアップをしてあげる必要があります。

https://dev.classmethod.jp/articles/aurora-global-database-upgrade/

複数DBクラスターを運用している場合は辛いところです。

2026年2月のアップデートでAurora PostgreSQL限定ですが、マイナーバージョンアップをマネージドで行ってくれるようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2026/02/amazon-aurora-global-database-managed-minor/

これにより各DBクラスターを手動でアップデートする必要がなくなりました。

バージョンアップ中に何かトラブルがあったとしても元のバージョンにロールバックしてくれます。

マイナーバージョンアップ

単一の管理操作と最小限のダウンタイムで、すべてのリージョンにわたるAuroraグローバルデータベースを新しいマイナーエンジンバージョンにアップグレードできます。これにより、各クラスタを個別に手動でアップグレードする必要がなくなり、グローバルクラスタ管理の運用上の負担が軽減されます。

グローバルデータベースのマイナーバージョンアップグレードについて理解する
グローバルデータベースのマイナーバージョンは、RDS API、AWS CLI、またはAWSマネジメントコンソールを使用してアップグレードできます。この単一の操作で、プライマリクラスタとすべてのセカンダリ(ミラー)クラスタ全体にわたるアップグレードが実行されます。アップグレード中に問題が発生した場合、サービスは自動的に既存のバージョンにロールバックされます。

注記
この管理機能は現在、Aurora PostgreSQL互換エンジンでのみサポートされています。

Amazon Aurora グローバルデータベースのアップグレード - Amazon Aurora

なお、グローバルDB全体のパッチバージョンアップの引き上げはしてくれないようです。その場合は先述の記事で紹介しているように個別にアップデートを行いましょう。

マイナーバージョンアップグレードに関する考慮事項

グローバルデータベースのマイナーバージョンアップグレードを計画する際には、以下の点を考慮してください。

管理機能はマイナーバージョンアップグレードにのみ適用されます。パッチバージョンアップグレードでは、既存のシステムアップデートメンテナンス手順が引き続き使用されます。

マネージド機能は、Aurora PostgreSQLグローバルクラスタでのみサポートされています。

グローバルクラスタトポロジ内の各クラスタは個別にアップグレードできます。この方法を選択する場合は、プライマリクラスタをアップグレードする前に、すべてのセカンダリクラスタをアップグレードしてください。アップグレード時には、プライマリおよびセカンダリDBクラスタが同じマイナーバージョンとパッチレベルにアップグレードされていることを確認してください。パッチレベルを更新するには、セカンダリクラスタで保留中のすべてのメンテナンスアクションを適用します。Aurora PostgreSQLグローバルデータベースをより高いマイナーバージョンにアップグレードする方法については、「 マイナーバージョンのアップグレードとパッチの適用方法」を参照してください。

実際に試してみます。

やってみた

us-east-1とap-northeast-1にAurora PostgreSQL 17.4のグローバルDBを用意しました。us-east-1がプライマリです。

1.現在のグローバルDBクラスター.png

EC2インスタンスから接続してDBバージョンを確認します。

$ curl -o global-bundle.pem https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  161k  100  161k    0     0  5335k      0 --:--:-- --:--:-- --:--:-- 5384k

$ export RDSHOST="database-cluster-1.cluster-cicjym7lykmq.us-east-1.rds.amazonaws.com"

$ psql "host=$RDSHOST port=5432 dbname=postgres user=postgres sslmode=verify-full sslrootcert=./global-bundle.pem"
Password for user postgres:
psql (16.5, server 17.4)
WARNING: psql major version 16, server major version 17.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

postgres=> SELECT aurora_version();
 aurora_version
----------------
 17.4.5
(1 row)

確認できました。

それでは、0.5秒間隔で現在のバージョンを確認するようにしておきます。

$ read -s PGPASSWORD
$ export PGPASSWORD
$ CONN="host=$RDSHOST port=5432 dbname=postgres user=postgres sslmode=verify-full sslrootcert=./global-bundle.pem"
$ while true; do
  printf '%s  ' "$(date '+%Y-%m-%d %H:%M:%S.%3N')"
  psql "$CONN" -tAc "SELECT aurora_version();" 2>&1
  sleep 0.5
done
2026-04-11 06:03:49.669  17.4.5
2026-04-11 06:03:50.227  17.4.5
2026-04-11 06:03:50.774  17.4.5
2026-04-11 06:03:51.321  17.4.5
2026-04-11 06:03:51.866  17.4.5
2026-04-11 06:03:52.411  17.4.5
2026-04-11 06:03:52.957  17.4.5
2026-04-11 06:03:53.501  17.4.5
2026-04-11 06:03:54.047  17.4.5
2026-04-11 06:03:54.595  17.4.5
2026-04-11 06:03:55.142  17.4.5
.
.
(以下略)
.
.

ap-northeast-1側でも同様の処理を流しておきます。

$ curl -s -o global-bundle.pem https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
$ export RDSHOST="global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com"
$ read -s PGPASSWORD
$ export PGPASSWORD
$ CONN="host=$RDSHOST port=5432 dbname=postgres user=postgres sslmode=verify-full sslrootcert=./global-bundle.pem"
$ while true; do
  printf '%s  ' "$(date '+%Y-%m-%d %H:%M:%S.%3N')"
  psql "$CONN" -tAc "SELECT aurora_version();" 2>&1
  sleep 0.5
done
2026-04-11 06:17:35.658  17.4.5
2026-04-11 06:17:36.277  17.4.5
2026-04-11 06:17:36.814  17.4.5
2026-04-11 06:17:37.352  17.4.5
2026-04-11 06:17:37.899  17.4.5
2026-04-11 06:17:38.438  17.4.5
2026-04-11 06:17:38.975  17.4.5
2026-04-11 06:17:39.584  17.4.5
.
.
(以下略)
.
.

それではこの状態でマイナーバージョンアップを行います。今回はマネジメントコンソールから行います。

AWS CLIから行う場合は以下のようなコマンドになります。

aws rds modify-global-cluster \
    --global-cluster-identifier global_cluster_identifier \
    --engine-version target_engine_version

今回は17.5にバージョンアップします。

2.グローバルデータベースの変更- global-database.png
3.17.5にアップグレード.png

確認画面に遷移すると、予期しないダウンタイムが発生する可能性があると警告が表示されました。

4.考えられる想定外のダウンタイム.png

今回はそのままグローバルデータベースの変更をクリックします。

すると、全台同じタイミングでバージョンアップが始まりました。

5.同時にアップグレード.png

しばらくするとセカンダリであるap-northeast-1のDBクラスターのバージョンアップが完了しました。

6.セカンダリーが17.5へ.png

このとき0.5秒間隔でバージョン確認をしているセッションを確認すると、以下のように11秒ほどダウンタイムが発生していることが分かりました。

.
.
(中略)
.
.
2026-04-11 06:21:34.069  17.4.5
2026-04-11 06:21:34.608  17.4.5
2026-04-11 06:21:35.200  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:35.714  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:36.225  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:36.738  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:37.249  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:37.759  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:38.270  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:38.781  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:39.292  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:39.802  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:40.313  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:40.823  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:41.334  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:41.845  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:42.356  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:42.868  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:43.378  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:43.889  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:44.400  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:44.911  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:45.422  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:45.934  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:46.444  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:46.956  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:47.467  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:47.979  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:48.489  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:49.000  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:49.511  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:50.022  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:21:50.532  psql: error: connection to server at "global-database-cluster-1.cluster-cukqrmgu6hz5.ap-northeast-1.rds.amazonaws.com" (172.31.33.255), port 5432 failed: FATAL:  the database system is starting up
2026-04-11 06:21:56.481  17.5.4
2026-04-11 06:21:57.176  17.5.4
.
.
(以下略)
.
.

そのまま待つとus-east-1も17.5となりました。

7.どちらも17.5.png

画面をリロードするとグローバルDBについても17.5にバージョンアップされました。

8.17.5になった.png

us-east-1側で0.5秒間隔でバージョン確認をしているセッションを確認すると、以下のように1.5秒ほどダウンタイムが発生していることが分かりました。

.
.
(中略)
.
.
2026-04-11 06:22:38.934  17.4.5
2026-04-11 06:22:39.481  17.4.5
2026-04-11 06:22:40.026  psql: error: connection to server at "database-cluster-1.cluster-cicjym7lykmq.us-east-1.rds.amazonaws.com" (172.31.14.140), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
2026-04-11 06:22:40.535  psql: error: connection to server at "database-cluster-1.cluster-cicjym7lykmq.us-east-1.rds.amazonaws.com" (172.31.14.140), port 5432 failed: FATAL:  the database system is starting up
2026-04-11 06:22:41.962  17.5.4
2026-04-11 06:22:42.682  17.5.4
.
.
(以下略)
.
.

ZDPが適用されているようです。

バージョンアップ時のイベントを時系列ごとに整理すると以下のようになります。

日時 (JST) リソース名 イベント
2026-04-11 15:20 us-east-1 DBクラスター Database cluster engine minor version upgrade started. Cluster remains online.
2026-04-11 15:20 ap-northeast-1 DBクラスター Database cluster engine minor version upgrade started. Cluster remains online.
2026-04-11 15:21 ap-northeast-1 DBインスタンス The parameter max_wal_senders was set to a value incompatible with replication. It has been adjusted from 10 to 20.
2026-04-11 15:21 ap-northeast-1 DBインスタンス DB instance shutdown
2026-04-11 15:21 ap-northeast-1 DBインスタンス The parameter max_wal_senders was set to a value incompatible with replication. It has been adjusted from 10 to 20.
2026-04-11 15:21 ap-northeast-1 DBインスタンス DB instance restarted
2026-04-11 15:22 us-east-1 DBクラスター Attempting to upgrade the database with zero downtime.
2026-04-11 15:22 us-east-1 DBインスタンス The parameter max_wal_senders was set to a value incompatible with replication. It has been adjusted from 10 to 20.
2026-04-11 15:22 us-east-1 DBインスタンス Attempting to upgrade the database with zero downtime.
2026-04-11 15:22 us-east-1 DBインスタンス Aurora fast startup completed in [1431425] microseconds.
2026-04-11 15:22 us-east-1 DBクラスター Attempt to upgrade the database instance 'database-cluster-1-instance-1' with zero downtime finished. The process took 2360 ms, 6 connections preserved, 0 connections dropped. See the database error log for details.
2026-04-11 15:22 us-east-1 DBインスタンス Attempt to upgrade the database instance 'database-cluster-1-instance-1' with zero downtime finished. The process took 2360 ms, 6 connections preserved, 0 connections dropped. See the database error log for details.
2026-04-11 15:22 us-east-1 DBクラスター Database cluster is online. The primary instance is ready for connections.
2026-04-11 15:22 us-east-1 DBクラスター Database cluster engine version upgrade finished on all instances.
2026-04-11 15:22 ap-northeast-1 DBクラスター Database cluster engine minor version upgrade complete. Previous version: 17.4.5. New version: 17.5.4.
2026-04-11 15:22 ap-northeast-1 DBクラスター Database cluster engine version has been upgraded.
2026-04-11 15:23 us-east-1 DBクラスター Database cluster engine minor version upgrade complete. Previous version: 17.4.5. New version: 17.5.4.
2026-04-11 15:23 us-east-1 DBクラスター Database cluster engine version has been upgraded.

Attempting to upgrade the database with zero downtime.とあることから確かにZDPが効いていることが分かります。

なお、ap-northeast-1のDBクラスターでZDPが効かなかったのは仕様です。以下AWS公式ドキュメントに記載があります。

ダウンタイムのないパッチ適用の制限

ダウンタイムのないパッチ適用には、次の制限が適用されます。

  • ZDP は、Aurora PostgreSQL のアップグレードプロセス全体で、Aurora PostgreSQL ライターインスタンスへの現在のクライアント接続を維持しようとします。ただし、以下の場合、ZDP が完了するまで接続は切断されます。
    • 長期実行クエリまたはトランザクションが進行中である。
    • データ定義言語 (DDL) ステートメントが実行中である。
    • 一時テーブルまたはテーブルロックが使用中である。
    • すべてのセッションが通知チャネルでリッスン中である。
    • 「WITH HOLD」ステータスのカーソルが使用中である。
    • TLSv1.1 接続が使用中である。Aurora PostgreSQL バージョン 16.1、15.3、14.8、13.11、12.15、11.20 以降の場合、ZDP は TLSv1.3 接続でサポートされています。
  • ZDP は、次の場合サポートされていません。
    • Aurora PostgreSQL DB クラスターが Aurora Serverless v1 に設定されている場合。
    • Aurora リーダーインスタンスのアップグレード中。
    • セカンダリリージョンの Aurora Global Database クラスターの一部である Aurora リーダーインスタンスのアップグレード中。
    • OS パッチおよび OS アップグレード中。

マイナーバージョンアップグレードの実行 - Amazon Aurora

タイミングを見計らってでサッとバージョンアップしたい時に便利

Amazon Aurora Global Database のマネージドマイナーバージョンアップグレードを試してみました。

タイミングを見計らってでサッとバージョンアップしたい時に便利ですね。バージョンアップは基本的にはシステム利用の少ない合間を縫って行ったり、システム全体をメンテナスモードにして行うことが多いと思います。こちらの機能を使うことによってオペレーションミスも減りますし、メンテナンスの時間を短くすることもできるかもしれません。

この記事が誰かの助けになれば幸いです。

以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!

この記事をシェアする

関連記事