Aurora Auto Pause and Resume is designed to automatically shut down your Aurora cluster when it’s not in use and bring it back online when needed, significantly reducing costs.

Here’s a look at how it works in practice. Imagine you have a staging environment for your application that’s only active during business hours. You can configure Auto Pause to shut down the Aurora cluster at 7 PM on Friday and bring it back up at 8 AM on Monday.

{
  "AuroraCluster": {
    "ClusterIdentifier": "my-staging-aurora-cluster",
    "Engine": "aurora-postgresql",
    "ServerlessV2ScalingConfiguration": {
      "MinCapacity": 0.5,
      "MaxCapacity": 4.0
    },
    "AutoPauseParameters": {
      "Enabled": true,
      "IdleClientTimeout": 300
    }
  }
}

This JSON snippet shows a Serverless v2 configuration for an Aurora PostgreSQL cluster named my-staging-aurora-cluster. The key here is AutoPauseParameters, where Enabled is set to true. The IdleClientTimeout is set to 300 seconds (5 minutes). This means that if there are no active connections to the cluster for 5 minutes, Aurora will initiate the pause sequence.

How it Works Internally

Aurora Serverless v2 clusters don’t have dedicated instances that are always running. Instead, they dynamically scale compute capacity up and down based on demand. Auto Pause takes this a step further by scaling compute capacity down to zero when there’s no demand for a sustained period.

When IdleClientTimeout is reached, Aurora begins a graceful shutdown process. It stops accepting new connections but allows existing ones to complete. Once all connections are terminated, the cluster’s compute resources are deprovisioned, effectively pausing the cluster. The data remains intact and accessible via the Aurora cluster endpoint.

To resume, Aurora monitors for incoming connection attempts to the cluster endpoint. The first connection attempt triggers the resume process. Aurora then provisions the necessary compute resources, which can take a few minutes, and establishes the connection.

The Levers You Control

The primary levers for Auto Pause are Enabled and IdleClientTimeout.

  • Enabled: A boolean value (true or false) to turn the feature on or off.
  • IdleClientTimeout: An integer representing the duration in seconds of inactivity before the cluster is paused. The minimum value is 60 seconds, and the maximum is 86400 seconds (24 hours).

Choosing the right IdleClientTimeout is crucial. Too short, and you might pause and resume frequently, leading to higher latency for your first connection and potentially increased overhead. Too long, and you lose out on cost savings. For workloads with predictable idle periods, like development or staging environments outside of work hours, a longer timeout is appropriate. For less predictable, but still intermittent, workloads, a shorter timeout might be better.

The surprising part is how Aurora handles the underlying storage. When a Serverless v2 cluster pauses, it doesn’t stop writing to or reading from the storage layer. The storage volume itself remains active and available. This is why resuming is relatively quick – it’s primarily about bringing the compute layer back online, not reattaching or initializing storage. When the cluster resumes, it reconnects to the existing storage volume, preserving all data and state.

Once you’ve mastered Auto Pause and Resume, the next logical step is to explore advanced scaling strategies with Serverless v2, such as using custom metrics to trigger scaling events.

Want structured learning?

Take the full Rds course →