CLF-C02Chapter 96 of 130Objective 3.3

Amazon Aurora

This chapter covers Amazon Aurora, a MySQL and PostgreSQL-compatible relational database engine that combines the performance and availability of high-end commercial databases with the simplicity and cost-effectiveness of open-source databases. For the CLF-C02 exam, understanding Aurora's architecture, key features like Multi-AZ deployments and read replicas, and its use cases is critical as it appears in the 'Cloud Technology Services' domain (approximately 30% of the exam). You'll learn how Aurora differs from standard RDS, its storage and compute scaling, and the exam-specific distinctions you must know to avoid common traps.

25 min read
Intermediate
Updated May 31, 2026

The Self-Healing Database Library

Imagine a large corporate library with a master catalog of all books. Normally, if a patron requests a book, a librarian retrieves it from the main shelves. But if the library gets busy, you might hire multiple assistants who each keep a personal copy of the most popular books. Now, suppose the library uses a special system: every book is automatically replicated to three different rooms. If one room floods, the system instantly redirects requests to another room, and a new copy is created in a different room to maintain three copies. Moreover, the library keeps six copies of each book across two separate buildings (Availability Zones), and if a whole building is damaged, the other building still has all the data. You, the patron, never know which copy you're reading—the system handles it seamlessly. This is exactly how Amazon Aurora works: it stores data in a 6-way replicated, distributed storage volume across three Availability Zones, with automatic failover and self-healing storage. The database engine is MySQL or PostgreSQL compatible, but the storage layer is custom-built for high durability and availability. Just as the library assistants (read replicas) can serve read requests without burdening the master catalog, Aurora's read replicas offload read traffic from the primary instance. And if the primary fails, one of the replicas is promoted automatically—no manual intervention needed. The library's self-healing means if a disk fails, the system repairs it in the background without downtime. That's the power of Aurora.

How It Actually Works

What is Amazon Aurora and What Problem Does It Solve?

Amazon Aurora is a fully managed relational database engine offered by AWS as part of Amazon RDS. It is designed to provide the performance and availability of high-end commercial databases (like Oracle or SQL Server) at a fraction of the cost, while being compatible with MySQL and PostgreSQL. The core problem it solves is the trade-off between performance, durability, and cost in traditional database solutions. Standard MySQL or PostgreSQL deployments on EC2 require significant manual effort for replication, backups, and failover. Even managed RDS for MySQL/PostgreSQL uses a shared storage model that can become a bottleneck. Aurora reimagines the storage layer entirely.

How It Works – The Mechanism

Aurora separates the compute (database engine) from the storage (distributed volume). The storage layer is a virtualized, SSD-backed volume that is automatically replicated across three Availability Zones (AZs) within a single AWS Region. Each AZ contains two copies of the data, for a total of six copies. This 6-way replication ensures that data is durable even if an entire AZ fails. The storage volume auto-scales from 10 GB up to 128 TB, with no downtime. Write operations are sent to all six storage nodes, and the system commits the transaction only after a quorum of four nodes acknowledges the write. This quorum-based approach allows Aurora to tolerate the loss of up to two copies without affecting write availability, and up to three copies without losing data.

The compute layer consists of one primary instance (handles reads and writes) and up to 15 Aurora Replicas (read-only). Aurora Replicas share the same storage volume, so there is no replication lag (unlike standard MySQL replication). The primary writes to the storage, and replicas read from the same storage with minimal latency. If the primary fails, Aurora automatically promotes one of the replicas to primary in less than 30 seconds, with no data loss. This failover is faster than standard RDS Multi-AZ because the storage is already shared.

Key Tiers, Configurations, and Pricing Models

Aurora offers two main editions: Aurora MySQL (compatible with MySQL 5.7, 8.0) and Aurora PostgreSQL (compatible with PostgreSQL 11, 12, 13, 14, 15). Both support the same features but have slight differences in limits and extensions. Aurora also offers Aurora Serverless v2 (auto-scaling compute capacity) and Aurora Global Database (cross-region replication with fast failover).

Pricing: You pay for: - Compute: per hour for the DB instance (e.g., db.r6g.large, db.r6g.xlarge). - Storage: per GB-month for the allocated storage (I/O is included in Aurora, unlike standard RDS where you pay for I/O separately). Aurora's storage billing is based on the high-water mark (the maximum storage used during the month). - Data transfer: out to internet or cross-region.

Aurora Serverless v2 charges per Aurora Capacity Unit (ACU) per second, scaling from 0.5 ACU to 128 ACU. It can scale to zero when idle (if using Aurora Serverless v1, but v2 scales to zero only with some configurations).

Comparison to On-Premises or Competing Approaches

On-premises databases require purchasing hardware, setting up replication, managing backups, and handling failover manually. Aurora automates all of this. Compared to standard RDS MySQL/PostgreSQL, Aurora offers: - Higher performance: up to 5x faster than MySQL and 3x faster than PostgreSQL on the same hardware. - Better durability: 6 copies across 3 AZs vs RDS's 2 copies (single AZ or Multi-AZ with synchronous replication to one standby). - Faster failover: less than 30 seconds vs 1-2 minutes for RDS Multi-AZ. - Auto-scaling storage: up to 128 TB vs 16 TB for RDS MySQL.

However, Aurora is more expensive per hour than RDS for the same instance size. Use Aurora when you need high performance, high availability, and low maintenance. Use standard RDS for simpler workloads where cost is a primary concern.

When to Use Aurora vs Alternatives

Use Aurora for production databases that require high availability, automatic failover, and consistent performance. Examples: e-commerce platforms, SaaS applications, financial systems.

Use RDS Multi-AZ for moderate availability needs with lower cost.

Use DynamoDB for NoSQL workloads with high scalability and low latency.

Use RDS on EC2 only for legacy or special configurations that require full control.

The exam expects you to know that Aurora is a relational database (not NoSQL), that it is MySQL/PostgreSQL compatible, and that it provides higher performance and availability than standard RDS. Also know that Aurora Global Database allows cross-region replication with a typical RPO of 1 second and RTO of 1 minute.

Key Features and Limits

Maximum storage: 128 TB.

Maximum read replicas: 15 (Aurora Replicas).

Maximum number of DB instances per cluster: 16 (1 primary + 15 replicas).

Backup retention: up to 35 days (automated backups), plus manual snapshots.

Point-in-time restore (PITR): to any point within the backup retention period, down to the second.

Failover priority: you can set failover priority for each replica (tier 0-15).

Aurora Serverless v2: scales in ACUs, supports Multi-AZ, and can scale to zero if using Aurora Serverless v1 (v2 has a minimum of 0.5 ACU).

Aurora Global Database: up to 5 secondary regions, with typical cross-region replication latency under 1 second.

Exam-Relevant Details

Aurora is a relational database – not NoSQL.

It is MySQL and PostgreSQL compatible – not Oracle or SQL Server compatible.

The storage is distributed, auto-scaling, and 6-way replicated across 3 AZs.

Aurora Replicas are read-only and share the same storage as the primary – no replication lag.

Failover is automatic and fast (< 30 seconds).

Aurora Serverless is for intermittent or unpredictable workloads.

Aurora Global Database provides cross-region disaster recovery.

Backtrack feature allows you to rewind the database to a specific point in time without restoring from backup (only for Aurora MySQL).

Parallel Query enables faster analytical queries by pushing down processing to the storage layer.

CLI and SDK Examples

To create an Aurora MySQL cluster using the AWS CLI:

aws rds create-db-cluster \
    --db-cluster-identifier myauroracluster \
    --engine aurora-mysql \
    --engine-version 8.0.mysql_aurora.3.02.0 \
    --master-username admin \
    --master-user-password password123 \
    --db-subnet-group-name mydbsubnetgroup \
    --vpc-security-group-ids sg-12345678

Then create a primary instance:

aws rds create-db-instance \
    --db-instance-identifier myaurorains1 \
    --db-cluster-identifier myauroracluster \
    --engine aurora-mysql \
    --db-instance-class db.r6g.large

To add an Aurora Replica:

aws rds create-db-instance \
    --db-instance-identifier myaurorareplica1 \
    --db-cluster-identifier myauroracluster \
    --engine aurora-mysql \
    --db-instance-class db.r6g.large \
    --promotion-tier 1

Summary

Aurora is a high-performance, highly available relational database service that is fully managed, MySQL/PostgreSQL compatible, and uses a distributed storage architecture with 6-way replication across 3 AZs. It offers fast failover, auto-scaling storage, and up to 15 read replicas. For the exam, focus on its compatibility, durability, performance advantages over standard RDS, and the specific features like Aurora Replicas, Serverless, and Global Database.

Walk-Through

1

Create an Aurora DB Cluster

First, you create a DB cluster, which is the container for the storage volume and all DB instances. In the AWS Management Console, navigate to RDS and choose 'Create database'. Select 'Amazon Aurora' as the engine, then choose either MySQL or PostgreSQL compatibility. You must specify a DB cluster identifier, master username and password, and a virtual private cloud (VPC) with subnets. AWS automatically creates a subnet group and places the cluster in multiple Availability Zones. The cluster initially has no compute instances; you add them in the next step. The storage volume is created immediately, starting at 10 GB, and will auto-scale as data is added.

2

Add a Primary DB Instance

After the cluster exists, you add a primary DB instance. This is the compute layer that handles read and write operations. You choose an instance class (e.g., db.r6g.large) and specify the cluster identifier. AWS then launches the instance in one of the cluster's Availability Zones. The primary connects to the shared storage volume. Behind the scenes, AWS initializes the storage nodes across three AZs. The primary writes data to all six storage nodes, and the system ensures durability using a quorum of four. This step is essential because without a primary, the cluster has no compute capacity and cannot accept connections.

3

Configure Aurora Replicas for Read Scaling

To improve read performance and availability, you add Aurora Replicas. These are read-only DB instances that share the same storage volume as the primary. In the console, you choose 'Create read replica' from the cluster menu. You select an instance class and optionally set a failover priority (tier 0-15). AWS launches the replica in a different AZ from the primary if possible, for high availability. Because the storage is shared, there is no replication lag; the replica sees data as soon as it is committed. You can add up to 15 replicas. If the primary fails, Aurora automatically promotes the replica with the highest priority (lowest tier number) to primary.

4

Enable Automated Backups and Retention

Aurora automatically enables automated backups with a default retention period of 1 day. You can increase it up to 35 days. Backups are stored in Amazon S3 and are incremental, meaning only changes since the last backup are stored. You can also take manual snapshots, which are retained indefinitely. To enable point-in-time restore (PITR), the backup retention must be at least 1 day. During a restore, you can create a new cluster from a snapshot or to a specific timestamp. The restore is fast because it uses the distributed storage; you don't need to wait for data to be copied.

5

Monitor and Scale the Cluster

After the cluster is running, you monitor performance using Amazon CloudWatch metrics such as CPUUtilization, DatabaseConnections, and Read/Write Latency. Aurora automatically scales storage up to 128 TB as needed, with no downtime. For compute scaling, you can modify the instance class of the primary or replicas, which requires a reboot. For dynamic scaling, use Aurora Serverless v2, which adjusts ACUs automatically. You can also enable Performance Insights to analyze database load and identify bottlenecks. The exam may ask about auto-scaling storage: it's automatic and doesn't require configuration.

What This Looks Like on the Job

Scenario 1: E-commerce Platform with High Availability Needs

An online retailer runs a MySQL-based e-commerce platform on AWS. They previously used a single RDS MySQL instance with Multi-AZ for failover. However, during Black Friday, the database became a bottleneck due to high read traffic (product catalog queries, order lookups). They migrated to Aurora MySQL. The primary instance handles writes (orders, inventory updates), and they added 5 Aurora Replicas to distribute read traffic. The replicas are in different AZs, ensuring that even if one AZ fails, the application can still serve reads. During a recent AZ outage, the primary failed, and Aurora promoted a replica to primary in under 30 seconds. The application experienced only a brief pause, and no data was lost. The retailer now pays for compute (6 instances) and storage (auto-scales), but the cost is justified by zero downtime during peak sales. Misconfiguration: if they had set all replicas to the same failover priority, the promotion order would be arbitrary, but still works. A common mistake is not enabling Performance Insights, making it hard to identify slow queries.

Scenario 2: SaaS Application with Variable Workloads

A SaaS company provides a project management tool that experiences unpredictable usage spikes. They chose Aurora Serverless v2 for its ability to scale compute from 0.5 ACU to 64 ACU based on demand. During off-peak hours, the database scales down to 0.5 ACU, saving costs. When a customer runs a large report, the ACUs scale up automatically in seconds. The company uses Aurora Global Database to replicate data to a secondary region for disaster recovery. They set up a secondary cluster in us-west-2 (primary is in us-east-1). If the primary region fails, they can promote the secondary to primary with an RTO of about 1 minute. Misconfiguration: they initially set the minimum ACU too high (16 ACU), leading to unnecessary costs. After adjusting to 0.5 ACU, costs dropped 70%. Also, they forgot to enable backtrack, which would allow them to undo accidental data changes without restoring from backup.

Scenario 3: Financial Services with Strict Compliance

A financial institution needs a highly durable database with cross-region replication for compliance. They use Aurora PostgreSQL with Global Database. The primary cluster is in eu-west-1 (Ireland), and they have a secondary cluster in eu-central-1 (Frankfurt) for disaster recovery. They also use AWS Backup to manage backups across regions. The storage is 6-way replicated, meeting their durability requirement of 99.999999% (11 nines). They set backup retention to 35 days and take daily manual snapshots for archival. During a compliance audit, they demonstrated that data is encrypted at rest using AWS KMS and in transit using TLS. A common pitfall: they initially used standard RDS PostgreSQL, but the failover time of 2 minutes was too slow for their SLA. Switching to Aurora reduced failover to under 30 seconds. They also learned that Aurora Global Database replication is asynchronous, so there is a small RPO (typically < 1 second), which is acceptable for their use case.

How CLF-C02 Actually Tests This

Exactly What CLF-C02 Tests on This Objective

The CLF-C02 exam tests Amazon Aurora under Domain 3: Cloud Technology Services (30% of exam). Specifically, you need to understand:

Aurora is a relational database engine that is MySQL and PostgreSQL compatible.

It is part of Amazon RDS, but it's a separate engine option.

Key features: 6-way replication across 3 AZs, auto-scaling storage up to 128 TB, fast failover (< 30 seconds), up to 15 read replicas (Aurora Replicas) with no replication lag.

Aurora Serverless: for intermittent workloads, scales automatically, ideal for variable traffic.

Aurora Global Database: cross-region replication with RPO < 1 second, RTO < 1 minute.

Pricing: pay for compute (per hour), storage (per GB-month), and data transfer.

Most Common Wrong Answers and Why

1.

"Aurora is a NoSQL database." – This is false. Aurora is a relational database. Candidates confuse it with DynamoDB because both are AWS database services. Remember: Aurora is SQL-based, DynamoDB is NoSQL.

2.

"Aurora stores data in a single Availability Zone." – False. Aurora replicates data across 3 AZs with 6 copies. Candidates may confuse it with standard RDS single-AZ deployments.

3.

"Aurora Replicas can accept write traffic." – False. They are read-only. Only the primary can handle writes. Candidates might think replicas are like Multi-AZ standby, but Multi-AZ standby is also read-only, but Aurora Replicas are different: they share storage and can be promoted faster.

4.

"Aurora provides infinite storage." – False. Maximum is 128 TB. Candidates might think auto-scaling means unlimited.

Specific AWS Service Names, Values, and Terms

Aurora MySQL and Aurora PostgreSQL are the two engines.

Aurora Replicas (up to 15) – read-only, no replication lag.

Multi-AZ – Aurora is inherently Multi-AZ due to storage replication.

Aurora Serverless v1 and v2 – v2 scales from 0.5 ACU to 128 ACU.

Aurora Global Database – up to 5 secondary regions.

Backtrack – rewinds the database to a point in time (MySQL only).

Parallel Query – pushes analytical queries to storage.

6 copies across 3 AZs – the exact durability mechanism.

Tricky Distinctions

Aurora vs RDS Multi-AZ: Both offer high availability. Aurora has faster failover (<30s vs 1-2 min), more replicas (15 vs 1 standby), and better performance. RDS Multi-AZ is cheaper.

Aurora Replicas vs Read Replicas in RDS: Aurora Replicas share storage (no lag), RDS Read Replicas use asynchronous replication (lag possible).

Aurora Serverless vs Provisioned: Serverless scales automatically, provisioned requires manual scaling.

Decision Rule for Multiple-Choice Questions

When you see a question about a relational database that needs high performance, high availability, and automatic failover, lean towards Aurora. If the question mentions MySQL or PostgreSQL compatibility, it's likely Aurora. If it mentions NoSQL, choose DynamoDB. If it mentions cost savings for variable workloads, choose Aurora Serverless. If it mentions cross-region disaster recovery, choose Aurora Global Database. Eliminate answers that say "single AZ" or "manual failover" for Aurora.

Key Takeaways

Amazon Aurora is a MySQL and PostgreSQL-compatible relational database engine.

It stores 6 copies of data across 3 Availability Zones for high durability.

Aurora Replicas are read-only and share the same storage as the primary, eliminating replication lag.

Failover is automatic and typically completes in less than 30 seconds.

Storage auto-scales from 10 GB to 128 TB without downtime.

Aurora Serverless v2 automatically scales compute capacity based on workload.

Aurora Global Database enables cross-region replication with <1 second RPO.

Aurora is more expensive than standard RDS but offers higher performance and availability.

Easy to Mix Up

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

Amazon Aurora

6-way replication across 3 AZs

Up to 15 read replicas (Aurora Replicas) with no lag

Auto-scaling storage up to 128 TB

Failover in < 30 seconds

Higher performance (5x MySQL, 3x PostgreSQL)

Amazon RDS MySQL/PostgreSQL

2 copies (single AZ or Multi-AZ with standby)

Up to 5 read replicas (with replication lag)

Storage up to 16 TB (gp2) or 64 TB (io1)

Failover in 1-2 minutes

Standard performance

Watch Out for These

Mistake

Aurora stores data in a single Availability Zone.

Correct

Aurora replicates data across three Availability Zones with six copies (two per AZ). This provides high durability and availability.

Mistake

Aurora Replicas can be used for both read and write operations.

Correct

Aurora Replicas are read-only. Only the primary instance handles write operations. They can be promoted to primary during failover.

Mistake

Aurora is a NoSQL database service.

Correct

Aurora is a relational database engine compatible with MySQL and PostgreSQL. It is not NoSQL. DynamoDB is the NoSQL service.

Mistake

Aurora storage is limited to 16 TB like RDS MySQL.

Correct

Aurora storage automatically scales up to 128 TB. RDS MySQL has a maximum of 16 TB for gp2 storage.

Mistake

Aurora requires manual failover in case of primary failure.

Correct

Aurora automatically fails over to a replica in less than 30 seconds with no data loss. No manual intervention is needed.

Frequently Asked Questions

Is Amazon Aurora a NoSQL database?

No, Amazon Aurora is a relational database engine that is compatible with MySQL and PostgreSQL. It is not a NoSQL database. For NoSQL workloads, AWS offers Amazon DynamoDB. The exam tests this distinction: Aurora is SQL-based, DynamoDB is NoSQL. A common trap is to associate Aurora with NoSQL because it's a high-performance service, but it's strictly relational.

How many copies of data does Aurora store?

Aurora stores six copies of your data across three Availability Zones. Each AZ contains two copies. This ensures that data is durable even if an entire AZ fails. The system uses a quorum-based write approach: writes are committed once four out of six copies acknowledge. This gives Aurora 99.999999% durability (11 nines). The exam may ask for the number of copies or the number of AZs.

Can Aurora Replicas be used for writes?

No, Aurora Replicas are read-only. They can only handle SELECT queries. Write operations (INSERT, UPDATE, DELETE) must go to the primary instance. However, in the event of a primary failure, one of the replicas is automatically promoted to primary and can then accept writes. This is a key difference from Multi-AZ RDS, where the standby is also read-only but does not share storage.

What is the difference between Aurora Serverless v1 and v2?

Aurora Serverless v1 scales from 1 ACU to 256 ACU and does not support Multi-AZ by default. It can scale to zero when idle. Aurora Serverless v2 scales from 0.5 ACU to 128 ACU, supports Multi-AZ, and provides faster scaling. v2 is recommended for production workloads. Both are designed for intermittent or unpredictable workloads. The exam may ask which version supports Multi-AZ (v2).

What is Aurora Global Database?

Aurora Global Database is a feature that allows you to replicate your Aurora database across multiple AWS Regions. It consists of one primary region and up to five secondary regions. Replication is asynchronous, with a typical lag of less than 1 second. In a disaster, you can promote a secondary region to primary with an RTO of about 1 minute. This is ideal for disaster recovery and low-latency global reads.

How does Aurora pricing work?

You pay for compute (per hour for each DB instance), storage (per GB-month for the allocated storage, based on the high-water mark), and data transfer (out to internet or cross-region). I/O operations are included in the storage price, unlike standard RDS where you pay separately for I/O. Aurora Serverless charges per ACU per second. There is no charge for the cluster itself, only for instances and storage.

What is the maximum storage for Aurora?

The maximum storage for an Aurora DB cluster is 128 TB. Storage automatically scales from a minimum of 10 GB. This is significantly higher than standard RDS MySQL (16 TB for gp2) or PostgreSQL (16 TB). The exam may test this limit as a differentiator.

Terms Worth Knowing

Ready to put this to the test?

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

Done with this chapter?