DVA-C02Chapter 77 of 101Objective 1.3

Amazon Aurora Serverless v2

This chapter covers Amazon Aurora Serverless v2, a deployment option for Amazon Aurora that provides automatic, instant scaling of database capacity. For the DVA-C02 exam, Aurora Serverless v2 is a key topic under Domain 1 (Development) and Objective 1.3 (Selecting appropriate AWS services for development). Questions typically test your understanding of its scaling mechanism, use cases, and how it differs from Aurora Serverless v1 and provisioned Aurora. Expect 1-2 questions on this topic, often comparing it to other Aurora options or requiring you to choose the right deployment for a given workload pattern.

25 min read
Intermediate
Updated May 31, 2026

Serverless v2: A Smart Power Grid for Databases

Imagine a city's power grid. Traditional Aurora (provisioned) is like a building with a fixed power capacity contract—you pay for a certain number of megawatts, whether you use them or not. Aurora Serverless v1 was like a single, large generator that could ramp up or down, but only after a noticeable delay and with a limited range. Aurora Serverless v2 is like a smart grid with distributed, fine-grained capacity units (like small batteries called ACUs) that can be added or removed instantly, in tiny increments, across the entire building. The smart grid constantly monitors the building's power draw (database load). When more power is needed (e.g., during morning coffee rush), it seamlessly activates additional ACUs in milliseconds, without any flicker or downtime. When demand drops, it deactivates excess ACUs. The building's electrical system (database connections and queries) never notices the changes—it just works. Crucially, this smart grid can scale from a single ACU to hundreds of ACUs, far beyond the old generator's limits. You only pay for the actual ACU-hours consumed, not the full capacity you could draw. This is exactly how Aurora Serverless v2 works: it adds or removes Aurora Capacity Units (ACUs) in 0.5 ACU increments, scaling from 0.5 to 128 ACUs per Aurora, with no cold starts or connection drops.

How It Actually Works

What is Aurora Serverless v2?

Amazon Aurora Serverless v2 is an on-demand, auto-scaling configuration for Amazon Aurora. It automatically adjusts the database capacity based on the current workload, scaling in fine-grained increments (0.5 Aurora Capacity Units, or ACUs) and in milliseconds. Unlike Aurora Serverless v1, which scaled in larger increments and required a brief pause during scaling, v2 scales without any downtime or connection drops. It supports all Aurora MySQL and PostgreSQL features, including Multi-AZ deployments, Read Replicas, and Global Database.

Why It Exists

Traditional provisioned Aurora requires you to choose a fixed instance size (e.g., db.r5.large) and manually scale up or down. This leads to either over-provisioning (paying for unused capacity) or under-provisioning (performance issues during spikes). Aurora Serverless v1 solved the scaling problem but had limitations: it could not be used in a Multi-AZ cluster, had a limited capacity range (2-256 ACUs), and scaled in 1-2 minute steps with a brief pause. Serverless v2 addresses all these limitations.

How It Works Internally

Aurora Serverless v2 uses a distributed storage system shared across all ACUs in a cluster. When a query is submitted, the writer endpoint (or reader endpoint) routes it to the appropriate instance. The instance processes the query using its allocated ACUs. Each ACU provides approximately 2 GB of memory, with corresponding CPU and networking. The scaling is handled by the Aurora fleet manager, which monitors metrics like CPU utilization, memory pressure, and connection count. When it detects increased demand, it adds ACUs to the instance in 0.5 ACU increments, without restarting the database or dropping connections. The process is transparent to the application—the same endpoint remains valid throughout.

Key Components, Values, Defaults, and Timers

Aurora Capacity Unit (ACU): The base unit of capacity. 1 ACU ≈ 2 GB memory, with proportional CPU and networking. You can scale from 0.5 ACU to 128 ACUs per instance.

Minimum and Maximum ACU: You set a range. For example, min=2 ACUs, max=32 ACUs. The database will never scale below the min or above the max.

Scaling Increment: 0.5 ACU at a time. Scaling is seamless, taking approximately 5-10 seconds to complete, with no downtime.

Scaling Triggers: Based on CPU utilization, memory pressure, and other metrics. The exact algorithm is not disclosed, but it aims to keep CPU below 70% and memory below 80%.

Connection Draining: Not required. Existing connections remain open during scaling.

Idle Capacity: If no connections are active, the database can scale down to the minimum ACU setting, but it never pauses or shuts down like Serverless v1.

Multi-AZ: Supported. Each instance in the cluster scales independently. The Writer and Reader can have different ACU ranges.

Pricing: Pay per ACU-hour consumed. You are billed for the actual ACUs used per second, with a 1-minute minimum per instance.

Configuration and Verification Commands

You can create an Aurora Serverless v2 cluster using the AWS CLI, SDK, or Console. Example using AWS CLI:

aws rds create-db-cluster \
    --db-cluster-identifier my-serverless-v2-cluster \
    --engine aurora-mysql \
    --engine-version 8.0.mysql_aurora.3.02.0 \
    --serverless-v2-scaling-configuration MinCapacity=2,MaxCapacity=32 \
    --master-username admin \
    --master-user-password password

Then create an instance in the cluster:

aws rds create-db-instance \
    --db-instance-identifier my-instance \
    --db-cluster-identifier my-serverless-v2-cluster \
    --db-instance-class db.serverless \
    --engine aurora-mysql

To verify the current ACU allocation, use:

aws rds describe-db-instances --db-instance-identifier my-instance

Look for the ServerlessV2ScalingConfiguration and Capacity fields in the output.

How It Interacts with Related Technologies

Aurora Auto Scaling: Not needed for Serverless v2; scaling is built-in. However, you can still use Auto Scaling for Read Replicas if you add provisioned readers.

Aurora Global Database: Supported. You can have a Serverless v2 cluster as a primary or secondary (but secondary must be provisioned if using cross-region replication with Serverless v1).

RDS Proxy: Fully compatible. Use RDS Proxy to manage connection pooling and reduce connection overhead during scaling.

AWS Lambda: Ideal for event-driven applications. Lambda can connect to Serverless v2 via the Data API (if using Aurora Serverless v1) or via standard JDBC/MySQL connections for v2.

CloudWatch: Monitor metrics like ServerlessDatabaseCapacity (ACU count), CPUUtilization, and DatabaseConnections.

Step-by-Step Scaling Process

1.

Workload Spike: A surge of read/write queries arrives at the writer instance.

2.

Monitoring: The Aurora fleet manager detects increased CPU/memory usage above thresholds.

3.

Scale-Up Decision: The fleet manager decides to add 0.5 ACU to the writer instance.

4.

Resource Allocation: The fleet manager allocates additional memory and CPU from the shared resource pool, attaching it to the instance without restart.

5.

Query Processing: New and existing queries use the additional capacity. No connections are dropped.

6.

Scale-Down: When load decreases, the fleet manager removes ACUs, again in 0.5 increments, down to the minimum.

Important Notes for the Exam

Serverless v2 supports all Aurora MySQL and PostgreSQL features except for some Aurora-specific features that are not relevant (e.g., Backtrack is not supported for Serverless v2).

You cannot convert a provisioned Aurora cluster to Serverless v2 in place. You must create a new cluster and migrate data.

Serverless v2 instances use the db.serverless instance class. There is no other instance class for Serverless v2.

The maximum capacity per instance is 128 ACUs. For higher capacity, use provisioned instances.

Serverless v2 is not available in all AWS regions yet; check the documentation for regional availability.

Walk-Through

1

Configure Serverless v2 Cluster

Create an Aurora cluster with `--serverless-v2-scaling-configuration` specifying MinCapacity and MaxCapacity. For example, min=2, max=32. You must also specify an engine version that supports Serverless v2 (Aurora MySQL 3.02.0+ or Aurora PostgreSQL 13.6+). The cluster is created with a writer endpoint and storage auto-scaling.

2

Create Serverless v2 Instance

Add a database instance to the cluster using `--db-instance-class db.serverless`. This instance will automatically scale within the cluster's ACU range. You can add multiple instances (e.g., one writer, one reader) each with its own ACU range if needed, but typically they share the cluster's scaling configuration.

3

Monitor and Trigger Scaling

The Aurora fleet manager continuously monitors CPU, memory, and connections. When CPU exceeds 70% or memory exceeds 80% for a sustained period (typically 1-2 minutes), it adds 0.5 ACU. Scaling occurs without downtime. You can view scaling events in CloudTrail and current capacity in CloudWatch.

4

Scale-Up Execution

When a scale-up decision is made, the fleet manager attaches additional memory (2 GB per ACU) and CPU resources to the instance. This is done by reconfiguring the instance's virtual resources in the hypervisor. The database continues to process queries during this process. The new capacity becomes available in approximately 5-10 seconds.

5

Scale-Down Execution

When load decreases, the fleet manager removes ACUs in 0.5 increments. It ensures that the remaining capacity can handle the current load. Memory pressure is reduced by releasing unused pages. Scale-down is also seamless and takes about 5-10 seconds. The instance never scales below the configured minimum.

What This Looks Like on the Job

Scenario 1: E-Commerce Flash Sale

A retail company runs an e-commerce platform on AWS. During normal operation, the database handles a few thousand transactions per minute. During flash sales, traffic spikes to hundreds of thousands of transactions per minute, lasting only 30-60 minutes. With provisioned Aurora, they would need to over-provision for the peak, paying for unused capacity most of the time. With Aurora Serverless v2, they set min=4 ACUs (normal load) and max=64 ACUs (peak). During a flash sale, the database scales from 4 to 64 ACUs in less than a minute, handling the spike seamlessly. After the sale, it scales back down. They save approximately 70% on database costs compared to provisioned instances for the same peak performance.

Scenario 2: SaaS Multi-Tenant Application

A SaaS provider hosts hundreds of tenants on a shared Aurora cluster. Each tenant has varying usage patterns. Some tenants run monthly reports that spike CPU, while others have steady low traffic. Using Serverless v2, they set a wide ACU range (min=2, max=128) to accommodate all tenants. The database automatically scales based on total workload. However, they learned the hard way that a single tenant's runaway query could trigger scaling up to the max, increasing costs. They now use RDS Proxy and query timeouts to prevent runaway queries. They also set CloudWatch alarms to notify when ACU usage exceeds 80% of max for proactive management.

Scenario 3: Development and Test Environments

A development team creates multiple Aurora clusters for feature branches. These clusters are used only during business hours and are idle at night. With provisioned clusters, they would incur costs 24/7. With Serverless v2, they set min=0.5 ACU (the minimum) for each cluster. When not in use, the cluster scales down to 0.5 ACU, costing about $0.10 per hour. They also schedule automated snapshots and deletion scripts to clean up clusters after a branch merge. This reduces database costs by over 90% compared to running small provisioned instances.

How DVA-C02 Actually Tests This

What DVA-C02 Tests on Aurora Serverless v2 (Objective 1.3)

The exam focuses on when to use Aurora Serverless v2 versus provisioned Aurora or Serverless v1. Key differentiators: - Scaling granularity: v2 scales in 0.5 ACU increments; v1 scales in larger increments (2 ACU steps). - Scaling speed: v2 scales in milliseconds; v1 takes 1-2 minutes and may pause. - Feature parity: v2 supports Multi-AZ, Read Replicas, Global Database; v1 does not. - Pricing: v2 per-second billing with 1-minute minimum; v1 per-second billing with 5-minute minimum.

Common Wrong Answers and Why They Are Wrong

1.

"Aurora Serverless v2 requires a warm pool of instances to scale quickly." Wrong. v2 uses a shared resource pool; no warm instances are needed. The wrong answer comes from confusing with provisioned Auto Scaling.

2.

"Aurora Serverless v2 can scale to 0 ACUs when idle." Wrong. The minimum is 0.5 ACU. v1 could pause (scale to 0 ACUs), but v2 always has at least 0.5 ACU.

3.

"You must use the Data API to connect to Aurora Serverless v2." Wrong. The Data API is only for Serverless v1. v2 uses standard database connections (JDBC, MySQL client, etc.).

4.

"Serverless v2 supports Backtrack." Wrong. Backtrack is not supported for Serverless v2. Only provisioned Aurora supports Backtrack.

Specific Numbers and Terms to Memorize

ACU: Aurora Capacity Unit (≈2 GB memory)

Min capacity: 0.5 ACU

Max capacity per instance: 128 ACUs (256 for some newer engines)

Scaling increment: 0.5 ACU

Instance class: db.serverless

Engine versions: Aurora MySQL 3.02.0+, Aurora PostgreSQL 13.6+

Edge Cases and Exceptions

Global Database: You can have a Serverless v2 cluster as a primary, but secondary regions must be provisioned (or Serverless v1 for MySQL).

Aurora Serverless v1 vs v2: v1 uses a different architecture (scaling through fleet manager with pause), v2 uses the same shared storage as provisioned Aurora.

Migration: You cannot convert in place; you must create a new cluster and use snapshot restore or DMS.

How to Eliminate Wrong Answers

If a question describes a workload with unpredictable spikes and requires Multi-AZ, eliminate Serverless v1 because it doesn't support Multi-AZ. If the question mentions "no downtime during scaling," eliminate v1 because it pauses. If the question mentions "connection pooling" or "RDS Proxy," that is compatible with both v1 and v2, so look for other differentiators.

Key Takeaways

Aurora Serverless v2 scales automatically in 0.5 ACU increments without downtime.

Minimum capacity is 0.5 ACU; maximum is 128 ACUs per instance (some newer engines support up to 256).

Supports Multi-AZ, Read Replicas, Global Database, and all Aurora features except Backtrack.

Use `db.serverless` instance class; cannot convert provisioned clusters in place.

Pricing is per ACU-hour with per-second billing and a 1-minute minimum per instance.

Scaling is based on CPU and memory metrics, typically within 5-10 seconds.

Ideal for variable workloads, dev/test, and event-driven applications.

On the exam, choose Serverless v2 when you need automatic scaling with Multi-AZ and no downtime.

Easy to Mix Up

These come up on the exam all the time. Here's how to tell them apart.

Aurora Serverless v2

Automatic scaling in 0.5 ACU increments

Scales in milliseconds with no downtime

Pay per ACU-hour (per-second billing, 1-min minimum)

Supports Multi-AZ, Read Replicas, Global Database

Minimum capacity 0.5 ACU, maximum 128 ACUs per instance

Aurora Provisioned

Manual scaling or Auto Scaling (takes minutes)

Scaling requires instance modification (downtime if not using Multi-AZ failover)

Pay per instance-hour (reserved instances available for discount)

Supports Multi-AZ, Read Replicas, Global Database

Fixed instance sizes (e.g., db.r5.large, db.r6g.xlarge)

Aurora Serverless v2

Scales in 0.5 ACU increments

Scales in milliseconds, no pause

Minimum 0.5 ACU, maximum 128 ACUs

Supports Multi-AZ, Read Replicas, Global Database

Uses standard database connections

Aurora Serverless v1

Scales in larger steps (2 ACU increments)

Scales in 1-2 minutes with a pause

Minimum 2 ACU, maximum 256 ACUs (scales to 0 when paused)

Does not support Multi-AZ or Read Replicas

Requires Data API for Lambda (no standard connections)

Watch Out for These

Mistake

Aurora Serverless v2 scales exactly like Aurora Serverless v1, just faster.

Correct

v2 is fundamentally different: it uses the same shared storage architecture as provisioned Aurora, scales in 0.5 ACU increments without pausing, and supports Multi-AZ, Read Replicas, and Global Database. v1 uses a separate fleet manager, scales in larger steps, and pauses during scaling.

Mistake

Aurora Serverless v2 can scale to 0 ACUs when idle, just like Serverless v1.

Correct

v2 has a minimum of 0.5 ACU. It never pauses or scales to zero. v1 could scale to 0 ACUs (pause) after a period of no connections. v2 always maintains at least minimal capacity.

Mistake

You can convert an existing provisioned Aurora cluster to Serverless v2 in place.

Correct

There is no in-place conversion. You must create a new Serverless v2 cluster and migrate data using snapshot restore, DMS, or other methods.

Mistake

Aurora Serverless v2 instances use the same instance classes as provisioned Aurora.

Correct

Serverless v2 uses only the `db.serverless` instance class. You cannot choose db.r5.large etc. The capacity is defined by ACU range, not instance size.

Mistake

Aurora Serverless v2 is more expensive than provisioned Aurora for steady workloads.

Correct

For steady workloads, provisioned Aurora can be cheaper because you can reserve instances for a discount. Serverless v2 is best for variable workloads. The exam tests choosing the cost-effective option based on workload patterns.

Do You Actually Know This?

Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.

Frequently Asked Questions

Can Aurora Serverless v2 scale to zero ACUs?

No. The minimum capacity is 0.5 ACU. Unlike Serverless v1 which could pause (scale to 0 ACUs) when idle, Serverless v2 always maintains at least 0.5 ACU to handle new connections instantly. This ensures no cold starts.

Does Aurora Serverless v2 support Multi-AZ?

Yes, fully. You can create a Multi-AZ cluster with a writer in one AZ and up to 15 readers in different AZs. Each instance scales independently within the cluster's ACU range. This is a major advantage over Serverless v1.

How do I migrate from provisioned Aurora to Serverless v2?

You cannot convert in place. You must create a new Serverless v2 cluster and migrate data. Common methods: take a snapshot of the provisioned cluster and restore it as a Serverless v2 cluster, or use AWS DMS (Database Migration Service) for live migration with minimal downtime.

What is the difference between Aurora Serverless v1 and v2?

v2 scales faster (milliseconds vs. minutes), in finer increments (0.5 ACU vs. 2 ACU), without pausing, and supports Multi-AZ, Read Replicas, and Global Database. v1 is simpler but limited. v2 uses the same shared storage as provisioned Aurora, while v1 uses a separate fleet manager.

Can I use RDS Proxy with Aurora Serverless v2?

Yes, RDS Proxy is fully compatible with Aurora Serverless v2. It helps manage connection pooling, reduce connection overhead, and improve scalability, especially for Lambda functions. This is a recommended pattern for serverless applications.

What engine versions support Aurora Serverless v2?

Aurora MySQL version 3.02.0 and higher (compatible with MySQL 8.0), and Aurora PostgreSQL version 13.6 and higher. Always check the latest AWS documentation for the most up-to-date version requirements.

Is Aurora Serverless v2 available in all AWS regions?

No, it is available in most commercial regions but not all. For example, it may not be available in some China regions or gov-cloud regions. Check the AWS Regional Services list for current availability.

Terms Worth Knowing

Ready to put this to the test?

You've just covered Amazon Aurora Serverless v2 — now see how well it sticks with free DVA-C02 practice questions. Full explanations included, no account needed.

Done with this chapter?