Aurora serverless — Core Concepts
Aurora Capacity Units (ACU)
- 1 ACU ≈ 2 GiB memory + corresponding CPU and networking
- Range: 0.5 to 256 ACU per instance, in 0.5 ACU increments (min/max configured at the cluster level; each instance scales independently within that range — a 3-instance cluster can consume up to 768 ACU total)
- Available for the Aurora MySQL-Compatible Edition
Scaling Behavior
- Scales continuously (not in steps) based on CPU, connections, and available memory
- Scale-up: near-instant (seconds), no connection disruption
- Scale-down: continuous and granular (capacity re-evaluated every second; scales down when current capacity exceeds load). The scale-down rate is governed by current capacity, not a fixed cooldown — no "~15 min cooldown" applies to Aurora serverless (v2). (The 15-min cooldown belonged to the deprecated Aurora Serverless v1.) Certain features (global databases, Performance Insights, Enhanced Monitoring, CloudWatch Logs export, Advanced Auditing /
server_audit, elevated max_connections) can hold capacity above minimum.
Scale-to-Zero (Auto-Pause)
Supported versions:
- Aurora MySQL: 3.08.0+
Incompatible with: RDS Proxy, binary logging (binlog) enabled, Global Database (primary), Zero-ETL
Trigger: 0 user connections for the configured timeout. Aurora background processes keep CPU at ~8-10% even when idle — this is normal and does not prevent pause.
Resume latency: ~15s if paused <24h, ~30s if paused >24h.
ACU Sizing from Provisioned Instances
weighted_cpu = (P95_CPU × 0.95 + Max_CPU × 0.05) / 100
raw_acu = weighted_cpu × vCPU_count × family_ratio
estimated_acu = round_up_to_nearest_0.5(raw_acu)Family ratios (ACU per vCPU):
| Family | Ratio | Reason |
|---|---|---|
| r-series (r6g, r7g, r8g) | 4 | Memory-optimized |
| m-series (m5, m6g) | 2 | General-purpose |
| t-series (t3, t4g) | 2 | Burstable |
| c-series (c5, c6g) | 1 | Compute-optimized |
Min/Max ACU Configuration
Minimum ACU — covers:
- Average CPU load (prevents scaling churn)
- Connection memory floor: ~10 MB per connection → 100 connections ≈ 0.5 ACU
- Working set floor (advisory): 1 GiB working set ≈ 0.5 ACU. Setting min below this trades cost for occasional I/O latency spikes on scale-up.
Formula: min_acu = MAX(0.5, avg_cpu_acu, connection_acu_floor)
Maximum ACU — covers peaks with headroom (per instance):
max_acu = MIN(peak_acu × 1.3, 256)- Ensure max ≥ typical × 1.5 for burst capacity
- If per-instance peak exceeds 256 ACU, workload exceeds serverless capacity on a single instance
- Total cluster peak ACU = per-instance peak × number of instances
Pricing (us-east-1)
| Component | Standard | I/O-Optimized |
|---|---|---|
| ACU-Hour | $0.12 | $0.156 (30% premium) |
| Storage ($/GiB-month) | $0.10 | $0.225 |
| I/O requests | $0.20/million | Included |
Monthly cost:
compute = estimated_acu × $0.12/ACU-Hr × 730 hours
storage = storage_gib × $0.10/GiB-month (Standard; × $0.225/GiB-month for I/O-Optimized)
monthly = compute + storageCommitment discounts: Database Savings Plans (1-year) cover serverless ACU. Reserved Instances do NOT apply to serverless.