Aurora vs. RDS: The AWS Database Decision the SAA-C03 Tests Every Time
Aurora and RDS are both managed relational databases, but they differ in architecture, failover speed, replication model, and cost — and the SAA-C03 exploits every one of those differences. Here's the complete guide to getting this right under exam pressure.
Here is a scenario you will see on the SAA-C03:
A financial services company runs a critical transaction database on RDS MySQL Multi-AZ. During a recent maintenance event, the system was unavailable for approximately 90 seconds — long enough to trigger customer-facing errors and support tickets. The company's SLA now requires a maximum failover window of 30 seconds. What should a solutions architect recommend?
Four answer choices appear. One involves upgrading the RDS instance size. One adds a Read Replica with automated promotion scripts. One enables RDS Proxy. One migrates to Aurora MySQL.
If you can't explain, at the architectural level, why Aurora's failover completes in 10–30 seconds while RDS typically takes 60–120 seconds — not just that it does, but what structural difference causes it — you're going to second-guess yourself on every database question under exam pressure.
This is one of the exam's highest-leverage topic pairs. Database architecture questions appear in SAA-C03's Design Resilient Architectures and Design High-Performing Architectures domains, and Aurora vs. RDS comes up constantly in disguised form. Master it once, and it pays dividends across dozens of scenarios.
Why Aurora Isn't Just "RDS Pro"
When AWS launched Aurora, the headline was "5× the throughput of MySQL." That benchmark matters less than the reason behind it — and the reason is the architectural decision that separates Aurora from every other RDS engine.
Standard RDS follows a familiar pattern: a primary EC2-backed instance writes to an EBS volume attached to that instance. In Multi-AZ mode, AWS maintains a synchronous standby in a second Availability Zone. Every write to the primary is synchronously mirrored to the standby's EBS volume before being acknowledged. When the primary fails, the standby is promoted and DNS is updated. The standby becomes the new primary, with its own EBS volume. The data was always local to each instance.
Aurora takes a fundamentally different approach: it separates compute entirely from storage. Rather than attaching storage to each instance, Aurora uses a purpose-built distributed storage cluster that spans three Availability Zones automatically and maintains six copies of every piece of data — two per AZ — at all times. Your Aurora DB instances (the compute layer) are stateless workers that read from and write to this shared storage layer.
This isn't a detail. It is the root cause of every meaningful difference between Aurora and RDS on the exam.
Aurora's Distributed Storage: What Six Copies Buy You
Understanding the six-copy storage model unlocks the "why" behind every Aurora advantage:
Write quorum: Aurora only needs 4 of 6 storage nodes to acknowledge a write before it's considered durable. This means writes proceed even if an entire AZ plus one additional node is unavailable, without slowing down.
Read quorum: Aurora needs just 3 of 6 copies to serve reads. The storage layer can lose a full AZ and still serve both reads and writes — before any failover of the compute layer is even triggered.
Self-healing storage: The storage layer continuously scans segments for corruption and repairs them using the redundant copies. Unlike EBS, Aurora storage doesn't require manual volume integrity checks.
Replication without replay: Because all Aurora compute instances share the same underlying storage, Aurora Read Replicas don't replay binary logs to stay current. They simply read from the same shared cluster. This eliminates the primary bottleneck of RDS Read Replicas and is why Aurora replicas have nearly zero lag, while RDS MySQL replicas can fall seconds or minutes behind under heavy write load.
When an exam scenario describes problems that stem from data movement — slow failover, replica lag, replication overhead on the primary — the architectural fix is the Aurora shared-storage model.
High Availability and Failover: Where the Gap Is Biggest
Failover behavior is the dimension that generates the most Aurora vs. RDS exam questions.
RDS Multi-AZ failover mechanics: When the primary RDS instance becomes unhealthy, AWS promotes the standby. The standby already has synchronized data, but several steps must still complete: crash recovery on the new primary, DNS TTL propagation to the new endpoint, and connection re-establishment from the application. Even with RDS Proxy absorbing reconnection overhead at the application layer, the underlying database failover window is typically 60 to 120 seconds.
Aurora failover mechanics: When the Aurora writer instance fails, there is no data to copy or synchronize — all replicas already share the storage layer. Aurora promotes an existing Read Replica to writer (or spins up a new writer from shared storage if no replica exists), updates the cluster endpoint DNS, and resumes service. With at least one Aurora Read Replica in the cluster, this completes in 10 to 30 seconds — typically under 20 seconds in practice.
The exam signals for Aurora failover are explicit:
- "Sub-30-second failover" → Aurora
- "The company cannot tolerate more than 30 seconds of downtime" → Aurora
- "The current 90-second failover window is unacceptable" → Aurora
Aurora Global Database is a further step: cross-region replication with a lag of typically under one second, with a manual or automated global failover that promotes a secondary region to primary. RDS cross-region Read Replicas use binary log replication and can lag by minutes. Multi-region HA with sub-second RPO = Aurora Global Database.
Read Replicas: Not All Created Equal
Both Aurora and RDS support Read Replicas, but the mechanics are so different that they deserve separate mental models:
| Dimension | RDS Read Replicas | Aurora Read Replicas |
|---|---|---|
| Replication mechanism | Async binary log replay | Shared storage (no replication) |
| Typical replica lag | Seconds to minutes under load | < 100 ms; often single-digit ms |
| Maximum replicas | 5 (MySQL), 5 (PostgreSQL) | 15 per cluster |
| Auto-failover promotion | Manual (or custom automation) | Automatic, zero data loss |
| Reader endpoint | Manual per-replica routing | Single reader endpoint, auto-balanced |
| Cross-region option | Yes, via binary log | Yes, via Aurora Global Database |
| Replication load on primary | Some CPU for log shipping | Minimal (storage-layer operation) |
The 15-replica limit and near-zero replica lag are the two Aurora Read Replica facts the exam tests most reliably. When a scenario describes heavy read traffic that must scale beyond five replicas, or applications that can't tolerate stale reads, Aurora Read Replicas are the architectural answer.
The reader endpoint is also worth noting: Aurora provides a single reader endpoint that automatically load-balances connections across all available replicas. With RDS, you manage individual replica endpoints in your application config. "Lowest operational overhead for scaling reads" + relational database = Aurora with reader endpoint.
Aurora Serverless v2: When to Reach for It
Aurora Serverless v2 is a compute-scaling tier for Aurora clusters, not a separate product. It allows Aurora to scale in fine-grained increments (as small as 0.5 ACUs — Aurora Capacity Units) based on workload demand, rather than requiring you to choose and maintain a fixed instance size.
Exam signals that point to Aurora Serverless v2:
- "Intermittent or unpredictable relational database workloads" — development environments, QA databases, seasonal SaaS tenants
- "Automatically scale database compute without manual intervention"
- "Minimize cost for variable relational workloads"
Two critical traps the exam sets around Serverless v2:
First, Aurora Serverless v2 does not scale to zero. Aurora Serverless v1 (now largely deprecated) could pause to zero cost. v2 has a minimum of 0.5 ACU — the database remains available and incurs a small baseline cost. If a scenario requires "zero database cost when completely idle," Serverless v2 is not the answer.
Second, Serverless v2 is not always cheaper than provisioned Aurora. At stable, predictable high load, a provisioned instance with a known size costs less than Serverless v2's variable billing. Serverless v2 wins on unpredictable traffic, not on sustained constant load.
Cost: When RDS Actually Wins
Aurora instances cost roughly 20% more per instance-hour than comparable RDS instances. The exam tests whether you know when that premium is worth it — and when it isn't.
Aurora wins on total cost when:
- Multiple Read Replicas are needed (near-zero lag means fewer replicas for the same read throughput)
- HA requirements would otherwise require large Multi-AZ RDS instances plus replica infrastructure
- The operational savings from Aurora's managed cluster outweigh the per-instance premium
RDS wins on total cost when:
- The workload is stable, predictable, and read-light
- The scenario specifies Oracle, SQL Server, or MariaDB (Aurora supports only MySQL-compatible and PostgreSQL-compatible engines — this is a hard constraint, not a preference)
- A small team needs the simplest possible managed database without cluster-level concepts
The Oracle/SQL Server trap is the most punishing one in this topic area. Aurora does not support Oracle or SQL Server. If a scenario specifies either engine, the answer is RDS — regardless of how many high-availability properties it lists. Picking "Aurora Multi-AZ" for an Oracle database is a wrong answer even though Aurora Multi-AZ is a real and powerful configuration.
Three Exam Scenario Walkthroughs
Scenario 1: The 30-Second Failover Requirement
"A healthcare company's patient record system runs on RDS MySQL Multi-AZ in us-east-1. During a recent Availability Zone disruption, the system was unavailable for 95 seconds while the standby was promoted. The company's updated SLA requires a maximum failover window of 30 seconds. Which change should a solutions architect make?"
Distractor: Switch to a larger RDS MySQL Multi-AZ instance.
Wrong. Instance size doesn't change failover duration. The 60–120 second window is a function of EBS volume promotion and DNS propagation — architectural overhead, not compute capacity.
Distractor: Add an RDS Read Replica and configure automatic promotion via a Lambda-triggered CloudWatch alarm.
Wrong. This introduces custom automation complexity and doesn't guarantee sub-30-second promotion. It also requires lag-management logic since RDS replicas may be seconds behind.
Distractor: Enable RDS Proxy in front of the RDS instance.
Wrong. RDS Proxy reduces connection overhead and application reconnection time, but the underlying database failover window is unchanged. Proxy absorbs connection pooling at the app tier; it doesn't accelerate DB-level failover.
Correct: Migrate to Aurora MySQL.
Aurora's shared-storage architecture allows failover in 10–30 seconds when at least one Read Replica is present. Zero data movement required — the replica becomes the writer over the same storage. This is the architectural answer to the 30-second requirement.
Scenario 2: The Engine Trap
"An enterprise company runs a large ERP application that requires Oracle Database Enterprise Edition features. The company needs 99.99% availability. A solutions architect must recommend a managed database option on AWS."
Distractor: Amazon Aurora Multi-AZ with at least two Read Replicas.
Wrong. Aurora does not support Oracle. This is the trap — "Aurora Multi-AZ with replicas" is a genuinely powerful HA configuration, so candidates reach for it when they see "99.99% availability." But it is simply not an option for Oracle workloads.
Correct: Amazon RDS for Oracle with Multi-AZ.
Oracle (and SQL Server) support means RDS only. Multi-AZ provides the synchronous standby for HA. The 99.99% availability language doesn't change the engine constraint.
Scenario 3: The Read Scaling Question
"A content platform's application is read-heavy, with reads outnumbering writes 25:1. As the user base has scaled to 5,000 concurrent users, the primary RDS PostgreSQL instance CPU regularly peaks above 85%. The team wants to scale with the lowest ongoing operational overhead. The company uses blue/green deployments and can tolerate brief connection resets during version upgrades."
Distractor: Add five RDS PostgreSQL Read Replicas and update the application to distribute reads across their endpoints.
Possible but operationally expensive. Managing five endpoint strings in application config, monitoring each replica's lag, and updating routing when replicas fail — this is exactly the operational overhead the scenario wants to avoid.
Distractor: Upgrade the RDS primary to a larger instance class.
Vertically scaling the primary doesn't address the read distribution problem. CPU will climb again at higher load.
Distractor: Add an ElastiCache cluster for read caching.
Valid for cacheable content but requires application changes (cache-aside pattern, cache invalidation logic). The scenario doesn't indicate the reads are cacheable, and this adds operational complexity.
Correct: Migrate to Aurora PostgreSQL with Read Replicas, using the Aurora reader endpoint.
Aurora supports up to 15 Read Replicas with near-zero lag. The single reader endpoint auto-balances connections across all replicas without application-level routing logic. Aurora also natively supports blue/green deployments for safe schema upgrades. Lowest operational overhead for read scaling at this scale.
The Mental Model: Shared Storage Changes Everything
The fastest Aurora vs. RDS mental model for exam conditions:
RDS = shared nothing. Aurora = shared storage.
With RDS, each instance owns its data independently. High availability means maintaining multiple synchronized copies of the same data. Failover means handing data ownership from one copy to another. Replicas mean continuously shipping change events from primary to standby. Everything requires data movement.
With Aurora, the storage layer is separate from compute and always replicated across three AZs. Compute instances are stateless workers. Failover means pointing a different worker at the same storage — no data to move, no ownership to transfer. Replicas mean routing additional readers to the same storage — no lag, no replication overhead.
This single idea — shared storage eliminates data movement — is the "why" behind:
- Faster failover (no data to promote)
- Near-zero replica lag (shared storage, no log replay)
- 15 replicas vs. 5 (storage isn't the bottleneck)
- Zero-data-loss failover promotion (all replicas are current)
- Sub-second cross-region replication via Global Database
When an exam scenario's problem is fundamentally about data movement overhead, Aurora's answer is to eliminate the movement.
Common Exam Traps
Trap 1: "Aurora is always the right answer for managed relational databases."
No. RDS is required for Oracle, SQL Server, and MariaDB. It's also more cost-effective for stable, predictable, read-light workloads where Aurora's architecture premium isn't justified.
Trap 2: "RDS Multi-AZ and Aurora Multi-AZ are equivalent options."
Structurally different. RDS Multi-AZ = synchronous EBS mirroring + 60–120s failover. Aurora Multi-AZ = distributed shared storage + sub-30s failover. Same label, completely different mechanics.
Trap 3: "RDS Proxy fixes failover latency."
RDS Proxy improves application-tier connection management and reduces reconnection time after failover. It does not shorten the database-tier failover window itself. Proxy + RDS = faster reconnection. Proxy + RDS ≠ Aurora-class failover speed.
Trap 4: "Aurora Serverless v2 scales to zero."
Only Aurora Serverless v1 could pause to zero. Serverless v2 maintains a minimum of 0.5 ACU. "Zero cost when idle" requires a different solution.
Trap 5: "Aurora Read Replicas are just like RDS Read Replicas with better marketing."
They work differently at every level. Aurora replicas share storage (no lag, no binary log overhead, automatic failover promotion). RDS replicas replay binary logs (lag accumulates under write load, manual promotion required).
Trap 6: "The scenario mentions 'Multi-AZ' so it must mean RDS."
Aurora clusters are inherently multi-AZ. When a question says "Aurora Multi-AZ," it refers to an Aurora cluster with instances across multiple AZs, which is Aurora's default configuration — not RDS behavior with Aurora branding.
Exam-Day Checklist
Before answering any Aurora vs. RDS question:
- Does the scenario specify Oracle or SQL Server? → RDS only; Aurora is off the table
- Does the scenario require sub-30-second failover? → Aurora
- Does the scenario describe 90-second or longer failover as a problem? → Aurora
- Does the scenario mention cross-region replication with sub-second lag? → Aurora Global Database
- Does the scenario mention replica lag as a problem or need more than 5 replicas? → Aurora (15 replicas, near-zero lag)
- Does the scenario say "lowest operational overhead for read scaling"? → Aurora with reader endpoint
- Does the scenario describe intermittent or unpredictable relational workloads? → Aurora Serverless v2
- Does the scenario require "zero cost when database is completely idle"? → Not Serverless v2 (min 0.5 ACU)
- Does the scenario emphasize cost optimization with a stable, predictable workload? → Lean toward RDS
- Does the scenario mention RDS Proxy in the context of failover speed? → Proxy ≠ faster DB failover; if speed is the issue, the answer is Aurora
Practice Makes the Difference
Aurora vs. RDS is one of those topics where reading the explanation once isn't enough — the exam will test it in scenarios you haven't seen, with distractors designed to exploit exactly the gaps above. The best way to close those gaps is to work through questions that force you to apply the architecture, not just recognize the labels.
The free SAA-C03 diagnostic gives you 10 calibrated questions across the core exam domains — including database architecture — and shows you your per-domain score so you know where to focus next.
For full exam prep, the CertCoach Pass covers all four AWS certifications — CLF-C02, SAA-C03, DVA-C02, and AIF-C01 — for $29, one-time. If you're studying multiple AWS certs, one pass covers every track.
And if networking questions are next on your list, the Gateway vs. Interface VPC Endpoints guide covers another high-frequency SAA-C03 trap at the same depth — why they're architecturally different, when each one applies, and the exam scenarios that expose the gap.