I tried the managed minor version upgrade for Amazon Aurora Global Database

I tried the managed minor version upgrade for Amazon Aurora Global Database

It's convenient when you want to quickly upgrade at just the right timing
2026.04.11

This page has been translated by machine translation. View original

I want to make minor version upgrades for Aurora Global Database easier

Hello, I'm nonPi (@non____97).

Have you ever wanted to make minor version upgrades for Aurora Global Database easier? I have.

When operating Aurora Global Database, version upgrades require extra effort.

As introduced in the article below, you need to manually upgrade the secondary DB clusters first, followed by the primary DB cluster.

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

This can be painful when operating multiple DB clusters.

In February 2026, an update was released that enables managed minor version upgrades, but only for Aurora PostgreSQL.

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

This eliminates the need to manually update each DB cluster.

Even if there's an issue during the version upgrade, it will automatically roll back to the original version.

Minor version upgrade

You can upgrade your Aurora global database to a new minor engine version across all regions with a single management operation and minimal downtime. This eliminates the need to manually upgrade each cluster individually, reducing the operational burden of global cluster management.

Understanding minor version upgrades for global databases
Global database minor versions can be upgraded using the RDS API, AWS CLI, or AWS Management Console. This single operation performs the upgrade across the primary cluster and all secondary (mirror) clusters. If any issues occur during the upgrade, the service automatically rolls back to the existing version.

Note
This management capability is currently supported only for the Aurora PostgreSQL-compatible engine.

Upgrading Amazon Aurora global databases - Amazon Aurora

However, it doesn't handle patch version upgrades for the entire global DB. In that case, you'll need to update individually as described in the article mentioned earlier.

Considerations for minor version upgrades

When planning minor version upgrades for your global database, consider the following:

The management capability applies only to minor version upgrades. For patch version upgrades, the existing system update maintenance procedures continue to be used.

The managed capability is supported only for Aurora PostgreSQL global clusters.

Each cluster in your global cluster topology can be upgraded individually. If you choose this approach, upgrade all secondary clusters before upgrading the primary cluster. When upgrading, ensure that your primary and secondary DB clusters are upgraded to the same minor version and patch level. To update patch levels, apply any pending maintenance actions on secondary clusters. For how to upgrade your Aurora PostgreSQL global database to a higher minor version, see "How to do minor version upgrades and apply patches."

Let's try it out.

Let's try it

I've set up an Aurora PostgreSQL 17.4 global DB in us-east-1 and ap-northeast-1. us-east-1 is the primary.

1.Current global DB cluster.png

I'll connect from an EC2 instance to check the DB version.

$ 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)

Confirmed.

Now, I'll set up a script to check the version every 0.5 seconds.

$ 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
.
.
(omitted)
.
.

I'll run a similar script for the ap-northeast-1 side.

$ 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
.
.
(omitted)
.
.

Now, I'll perform a minor version upgrade. I'll do this through the management console.

If you want to use AWS CLI, the command would be:

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

I'll upgrade to version 17.5.

2.Modify global database- global-database.png
3.Upgrade to 17.5.png

On the confirmation screen, there's a warning about the potential for unexpected downtime.

4.Potential unexpected downtime.png

I'll proceed by clicking "Modify global database."

The version upgrade started simultaneously on all instances.

5.Upgrading simultaneously.png

After a while, the secondary DB cluster in ap-northeast-1 completed its upgrade.

6.Secondary is now on 17.5.png

Looking at the session checking the version every 0.5 seconds, I can see there was about 11 seconds of downtime:

.
.
(omitted)
.
.
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
.
.
(omitted)
.
.

After waiting a bit longer, us-east-1 was also upgraded to 17.5.

7.Both on 17.5.png

After reloading the page, the global DB was also shown as version 17.5.

8.Now on 17.5.png

Checking the session monitoring the version every 0.5 seconds in us-east-1, I can see there was about 1.5 seconds of downtime:

.
.
(omitted)
.
.
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
.
.
(omitted)
.
.

Zero-Downtime Patching (ZDP) appears to be applied.

Organizing the events during the upgrade in chronological order:

Date (JST) Resource Event
2026-04-11 15:20 us-east-1 DB cluster Database cluster engine minor version upgrade started. Cluster remains online.
2026-04-11 15:20 ap-northeast-1 DB cluster Database cluster engine minor version upgrade started. Cluster remains online.
2026-04-11 15:21 ap-northeast-1 DB instance 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 instance DB instance shutdown
2026-04-11 15:21 ap-northeast-1 DB instance 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 instance DB instance restarted
2026-04-11 15:22 us-east-1 DB cluster Attempting to upgrade the database with zero downtime.
2026-04-11 15:22 us-east-1 DB instance 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 instance Attempting to upgrade the database with zero downtime.
2026-04-11 15:22 us-east-1 DB instance Aurora fast startup completed in [1431425] microseconds.
2026-04-11 15:22 us-east-1 DB cluster 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 instance 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 cluster Database cluster is online. The primary instance is ready for connections.
2026-04-11 15:22 us-east-1 DB cluster Database cluster engine version upgrade finished on all instances.
2026-04-11 15:22 ap-northeast-1 DB cluster 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 cluster Database cluster engine version has been upgraded.
2026-04-11 15:23 us-east-1 DB cluster 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 cluster Database cluster engine version has been upgraded.

The "Attempting to upgrade the database with zero downtime" message confirms that ZDP is being used.

Note that ZDP not working for the ap-northeast-1 DB cluster is by design. The official AWS documentation states:

Zero-downtime patching limitations

The following limitations apply to zero-downtime patching:

  • ZDP attempts to maintain current client connections to your Aurora PostgreSQL writer instance throughout the Aurora PostgreSQL upgrade process. However, connections are dropped until ZDP completes if:
    • Long-running queries or transactions are in progress.
    • Data definition language (DDL) statements are running.
    • Temporary tables or table locks are in use.
    • All sessions are listening on notification channels.
    • Cursors with "WITH HOLD" status are in use.
    • TLSv1.1 connections are in use. For Aurora PostgreSQL versions 16.1, 15.3, 14.8, 13.11, 12.15, 11.20 and higher, ZDP is supported for TLSv1.3 connections.
  • ZDP is not supported:
    • When your Aurora PostgreSQL DB cluster is configured for Aurora Serverless v1.
    • During the upgrade of Aurora reader instances.
    • During the upgrade of Aurora reader instances that are part of a secondary region of an Aurora Global Database.
    • During OS patches and OS upgrades.

Performing minor version upgrades - Amazon Aurora

Convenient for quickly upgrading when timing is important

I've tried the managed minor version upgrade for Amazon Aurora Global Database.

It's convenient for quickly upgrading when timing is important. Version upgrades are typically done during periods of low system usage or during scheduled maintenance windows. This feature reduces the risk of operational errors and can potentially shorten maintenance times.

I hope this article is helpful to someone.

This was nonPi (@non____97) from the Consulting Department of the Cloud Business Division!

Share this article