- AWS Aurora separates compute from storage: all instances in a cluster share one cluster volume that keeps copies of the data in three Availability Zones and grows automatically up to 256 TiB.
- A cluster has one writer and up to 15 Aurora Replicas reading the same volume; the reader endpoint balances read connections across them.
- Aurora Serverless v2 (now documented as Aurora serverless) scales each instance between a minimum and maximum in ACUs, from 0 to 256, and can auto-pause at 0 ACUs.
- Choose Aurora Standard when I/O is under about 25% of your Aurora spend and I/O-Optimized when it is 25% or more; I/O-Optimized has no per-request I/O charge.
- Aurora Global Database adds up to 10 read-only secondary Regions with replication latency AWS describes as typically under a second.
What AWS Aurora is
Amazon Aurora (AWS Aurora, sometimes called RDS Aurora because it is managed through the Amazon RDS console and API) is a fully managed relational database engine compatible with MySQL and PostgreSQL. AWS says the code, tools and applications you use with MySQL and PostgreSQL can be used with Aurora, and claims up to 6x the throughput of stock PostgreSQL and of stock MySQL on similar hardware. That is a vendor figure, not something we have measured.
The difference from standard Amazon RDS is the storage layer. An RDS instance writes to its own block storage; an Aurora cluster writes to a distributed cluster volume that all of its instances share. Most of Aurora's features (fast replicas, quick failover, cloning, Global Database) follow from that design.
Aurora storage architecture
AWS describes Aurora storage as a distributed, shared architecture. In plain terms:
- One cluster volume. Data lives in a single virtual, SSD-backed cluster volume with copies across three Availability Zones in the Region. The amount of replication is independent of how many instances you run, and you pay for one copy of the data.
- Compute is separate. Adding a DB instance does not copy table data; the new instance attaches to the existing volume. Removing an instance does not remove data; only deleting the cluster does.
- Automatic sizing. The volume grows as data grows, up to 256 TiB, and space freed by dropping or truncating tables is released, which reduces storage charges.
- Local temporary storage. Sorts, index builds and (for Aurora PostgreSQL) temporary tables use separate local storage on each instance, which has its own limits.
On top of the volume, a cluster has one writer and up to 15 Aurora Replicas. If the writer fails, Aurora promotes a replica. Applications connect through endpoints: the cluster endpoint always points at the writer, the reader endpoint balances read-only connections across replicas, instance endpoints target one instance, and custom endpoints group a subset. Because storage is shared, Aurora can also create clones with a copy-on-write protocol, using minimal extra space until data changes.
Aurora MySQL vs Aurora PostgreSQL
Aurora is two engines that share the storage design. Pick the one that matches your application's SQL dialect, drivers and extensions; the major versions each supports are listed in AWS's release calendars.
| Aurora MySQL | Aurora PostgreSQL | |
|---|---|---|
| Current major versions | Aurora MySQL version 8.4 (MySQL 8.4) and version 3 (MySQL 8.0); version 2 (5.7) in Extended Support | PostgreSQL 13 to 18; 13 and older in Extended Support |
| Engine-specific features | Backtrack (rewind the cluster up to 72 hours), parallel query, local write forwarding | Babelfish for T-SQL clients, Query Plan Management, cluster cache management, Limitless Database |
| Serverless v2, Global Database, I/O-Optimized | Yes | Yes |
| Typical reason to choose | Existing MySQL application wanting Aurora storage and replicas | PostgreSQL application, extensions, or a path off SQL Server through Babelfish |
Going deeper
For the PostgreSQL side see the related Aurora PostgreSQL guide below and Aurora PostgreSQL vs RDS PostgreSQL. For the MySQL side, Amazon Aurora vs MySQL compares Aurora MySQL with community and RDS MySQL.
Aurora Serverless v2
Aurora Serverless v2 is a capacity mode for instances in an Aurora cluster rather than a separate product. AWS's documentation now calls it simply Aurora serverless. Capacity is measured in Aurora capacity units (ACUs); AWS defines one ACU as roughly 2 GiB of memory with corresponding CPU and networking. You set a minimum and maximum, from 0 to 256 ACUs, and each serverless writer or reader scales within that range, measured every second.
With a minimum of 0 ACUs, instances can auto-pause after a period with no user connections and resume on the next connection; AWS says you are not charged for instance capacity while paused. AWS positions this for development, testing and internal applications that can tolerate a brief resume delay. Serverless and provisioned instances can be mixed in one cluster, and serverless works with Multi-AZ, read replicas and Global Database.
Aurora I/O-Optimized vs Aurora Standard
Every Aurora cluster uses one of two storage configurations:
- Aurora Standard charges for storage plus every million read and write I/O requests. AWS calls it the best choice when I/O spending is less than 25% of your total Aurora spend.
- Aurora I/O-Optimized charges higher rates for instances and storage but nothing for I/O requests. AWS recommends it when I/O is 25% or more of the spend, and says savings can reach up to 40% in that case.
You can switch from Standard to I/O-Optimized once every 30 days and back at any time. AWS states there is no downtime for non-NVMe instances (including serverless), while NVMe-based instances need an engine restart. Check the I/O line in Cost Explorer before deciding: the right answer depends on your measured I/O, not on the workload type.
Aurora Global Database
An Aurora global database has one primary cluster that takes writes and up to 10 read-only secondary clusters in other Regions. Aurora replicates through the storage layer on dedicated infrastructure, with latency AWS describes as typically under a second. Secondary clusters serve local reads and can forward writes to the primary if you enable write forwarding.
For Region changes AWS documents two operations: switchover for planned moves (relocating the primary with no data loss) and failover for recovering from a Regional outage. You pay for each secondary cluster's instances and storage plus replicated write I/O to every secondary Region, under both storage configurations.
When to use Aurora (and when not to)
- Use Aurora for production MySQL or PostgreSQL workloads that need fast failover, several read replicas over one copy of the data, storage that grows on its own, cross-Region disaster recovery, or capacity that follows a spiky load.
- Use Serverless v2 for variable or intermittent workloads and for development clusters that can pause.
- Use standard RDS instead for small, steady workloads where one instance is enough, when you want the closest match to community MySQL or PostgreSQL, or when you need an engine Aurora does not offer (SQL Server, Oracle, MariaDB, Db2).
- Look elsewhere for key-value access at very large scale (DynamoDB) or analytics over large data sets (a columnar warehouse).
For a side-by-side view see Amazon RDS vs Amazon Aurora.
Pricing
Prices from the provider's official pricing pages, checked 8 October 2026, region US East (N. Virginia), in USD, excluding tax. List prices only; discounts, commitments and your actual usage change the bill.
Aurora bills instance-hours (provisioned) or ACU-hours (serverless), storage per GB-month, I/O requests per million on Aurora Standard, backup storage beyond the free allowance, data transfer and optional features such as Backtrack, Global Database replication and the Data API. AWS does not charge for backup storage up to 100% of the cluster's size, or for data transferred between Availability Zones for cluster replication.
The rates below are those AWS uses in the worked examples on its pricing page for US East (N. Virginia). AWS's instance example does not name the engine, so check your engine and class in the pricing tables or the AWS Pricing Calculator.
| Item | Aurora Standard (USD) | Aurora I/O-Optimized (USD) |
|---|---|---|
| Serverless capacity | 0.12 per ACU-hour | 0.156 per ACU-hour |
| db.r6i.large provisioned instance | 0.29 per hour | 0.377 per hour |
| Storage | 0.10 per GB-month | 0.225 per GB-month |
| Read and write I/O | 0.20 per 1 million requests | No charge |
| Global Database replicated write I/O | 0.20 per 1 million | 0.20 per 1 million |
| T4g and T3 CPU credits | 0.09 per vCPU-hour | 0.09 per vCPU-hour |
Estimate: provisioned cluster on Aurora Standard
- One writer and one reader, both db.r6i.large, running all month (730 hours), US East (N. Virginia).
- 100 GB of data and 100 million I/O requests in the month.
- Excludes backups beyond the free allowance, data transfer out and tax.
| Item | Basis | Estimated per month |
|---|---|---|
| Instances | 2 x 730 hours x 0.29 USD | 423.40 USD |
| Storage | 100 GB x 0.10 USD | 10.00 USD |
| I/O requests | 100 million x 0.20 USD per million | 20.00 USD |
| Estimated total | 453.40 USD per month |
Estimate: the same cluster on Aurora I/O-Optimized
- Same two db.r6i.large instances, 100 GB and 100 million I/O requests.
- Excludes backups, data transfer and tax.
| Item | Basis | Estimated per month |
|---|---|---|
| Instances | 2 x 730 hours x 0.377 USD | 550.42 USD |
| Storage | 100 GB x 0.225 USD | 22.50 USD |
| I/O requests | Included | 0.00 USD |
| Estimated total | 572.92 USD per month: Standard is cheaper at this I/O level |
Estimate: Serverless v2 cluster averaging 2 ACUs
- One serverless writer averaging 2 ACUs over 730 hours, Aurora Standard, US East (N. Virginia).
- 20 GB of data and 10 million I/O requests in the month.
- Excludes backups, data transfer and tax; real ACU usage follows your load.
| Item | Basis | Estimated per month |
|---|---|---|
| Serverless capacity | 2 ACUs x 730 hours x 0.12 USD | 175.20 USD |
| Storage | 20 GB x 0.10 USD | 2.00 USD |
| I/O requests | 10 million x 0.20 USD per million | 2.00 USD |
| Estimated total | 179.20 USD per month |
Worked examples are estimates calculated from the list prices above; they are not quotes or measured bills.
Frequently asked questions
Is Amazon Aurora the same as RDS?
Aurora is managed through Amazon RDS (same console, API and many features), which is why people say "RDS Aurora", but it is a different engine design. RDS for MySQL or PostgreSQL runs the community engine on per-instance storage; Aurora uses a shared cluster volume replicated across three Availability Zones.
What is an Aurora DB cluster?
A cluster is one cluster volume plus the DB instances attached to it: one writer and up to 15 Aurora Replicas. Instances can be provisioned or serverless, and the cluster exposes writer, reader, instance and custom endpoints.
Can Aurora scale to zero?
Yes, with Aurora Serverless v2 and a minimum capacity of 0 ACUs on engine versions that support it. Instances pause after a period without user connections and resume on the next connection. Storage is still billed while paused.
How many Regions can an Aurora global database span?
One primary Region plus up to 10 read-only secondary Regions, according to the Aurora User Guide.
Does Aurora MySQL support MySQL 8.4?
Yes. AWS lists Aurora MySQL version 8.4, compatible with MySQL 8.4 Community Edition, alongside Aurora MySQL version 3 (MySQL 8.0).
When is Aurora I/O-Optimized cheaper?
AWS's rule of thumb is when I/O charges make up 25% or more of your Aurora bill. Below that, Aurora Standard usually costs less because instance and storage rates are lower.
Sources
- Aurora User Guide: What is Amazon Aurora?
- Aurora User Guide: Amazon Aurora storage
- Aurora User Guide: Replication with Aurora
- Aurora User Guide: Amazon Aurora endpoint connections
- Aurora User Guide: Cloning a volume for an Aurora DB cluster
- Aurora User Guide: How Aurora serverless works
- Aurora User Guide: Scaling to zero ACUs with automatic pause and resume
- Aurora User Guide: Using Amazon Aurora Global Database
- Aurora User Guide: Backtracking an Aurora DB cluster
- Aurora MySQL release calendars
- Aurora User Guide: Aurora MySQL version 8.4
- Aurora PostgreSQL release calendars
- Amazon Aurora pricing
Checked 8 October 2026.
How we research cloud database guides: our editorial method. CodeWithSQL earns nothing from the providers mentioned.