AWS Aurora Serverless V2 database doesn’t scale to zero after upgrading from Serverless V1

If you follow the migration guide to upgrade your Aurora Serverless V1 database to V2 (which a bunch of panicked folks are likely doing ahead of the deprecation date of 31st March), you might find that your new cluster doesn’t scale down to zero after the upgrade.

In my case, the fact that logical replication was enabled (rds.logical_replication) in a cluster-level paramter group prevented instances from scaling down to zero. Disabling logical replication got the correct auto-pause behaviour.

You’re directed to do this to enable blue/green deployments, but if you don’t need blue/green or else you don’t need logical replication after the upgrade then turning this off and rebooting the instances seems to cure the problem.

How do I know if my cluster is scaling to zero properly?

The easiest way to tell is to look at the Monitoring tab of the RDS page in the AWS Console, and the ACUUtilization metric in particular.

The ACUUtilization metric tells you what proportion of the maximum number of ACUs you’ve configured the cluster should scale to are in use at any given point – 100% means it’s running at 100% of the maximum capacity you configured, and 0% means it’s scaled to zero.

If you find that the chart never hits zero, but gets stuck at some specific percentage (in the above, you can see a baseline level of 25% activity) then this indicates that your cluster isn’t auto-pausing. You can determine what your minimum activity level is by dividing your minimum ACUs by your maximum – the above case has a minimum of 0.5 and a maximum of 2, so when running at 0.5 ACUs the database is using 0.5 / 2 = 25% of its capacity.

This might be because you have legitimate work being done in the database though – if you have idle database connections, the cluster will run at least at your minimum ACU level. You should also check the DatabaseConnections metric over the same time period.

If you’re seeing zero connections, but you’re still pinned to some minimum level of ACU utilisation then something might be blocking the cluster’s auto-pause functionality.

How can I tell what’s stopping the scaling to zero?

Easiest is to look at the instance logs.

  • In the RDS console, choose the instance you’re interested in
  • On the Logs & Events tab, in the Logs section at the bottom of the page find the log named ‘instance/instance.log’
  • You will probably find, every few minutes, a log entry along the lines of:
    [INFO] Auto-pause blockers registered since 2025-03-04T02:39:48.276Z: replication capability configured

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.