Amazon Aurora
AWS's MySQL- and PostgreSQL-compatible relational engine: the shared cluster volume across three Availability Zones, Aurora Replicas and failover, endpoints, Global Database, backups, backtrack and cloning, Standard and I/O-Optimized storage, security, cost, and monitoring.
7 min read · Last reviewed · SAA-C03
Sign in to bookmark tutorials and track what you have read.
On this page
What it is
Amazon Aurora is a fully managed relational database engine, built by AWS, that is compatible with MySQL and PostgreSQL. The code, tools, and drivers you use with MySQL or PostgreSQL work with Aurora. It is managed through Amazon RDS, so backups, patching, parameter groups, and the console work the same way.
What makes Aurora different is its storage. Instead of each DB instance owning its own disk, all instances in an Aurora DB cluster share one cluster volume that stores copies of the data across three AZ (Availability Zone)An isolated location within an AWS Region, made up of one or more data centers with their own power, cooling, and networking. The AZs in a Region are linked by fast, low-latency connections, so spreading resources across them protects against the failure of one site.Glossary entry and grows automatically. That design gives faster FailoverSwitching automatically to a standby resource when the primary one fails, such as a standby database in Amazon RDS or a backup site chosen by Route 53 failover routing.Glossary entry, more readers, and less replication lag than standard RDS.
Choose Aurora for MySQL or PostgreSQL workloads that need HA (High availability)The ability of a system to keep serving users when parts of it fail, usually by running redundant copies across Availability Zones and failing over automatically. It is often stated as a percentage of uptime, such as 99.99%.Glossary entry, many Read replicaA read-only copy of a database that is updated asynchronously from the primary. It takes read traffic off the primary, can be in another Region, and can be promoted to a standalone database.Glossary entry, cross-AWS RegionA separate geographic area where AWS runs its services, such as us-east-1 in Northern Virginia, made up of several Availability Zones. Most resources live in one Region; you choose Regions for latency, data residency, and the services you need.Glossary entry replication, or high throughput. For other engines, such as Oracle or SQL (Structured Query Language)The standard language for querying and changing data in relational databases. Analytics services such as Amazon Athena and Amazon Redshift also use SQL.Glossary entry Server, use RDS.
Concepts
- DB cluster: one primary (writer) instance, up to 15 Aurora Replicas (readers), and the shared cluster volume.
- Cluster volume: writes go to six storage nodes across three Availability Zones. It grows on its own up to 128 TiB (256 TiB on recent engine versions), and you pay only for the space you use.
- Aurora Replicas read the same cluster volume, so they don't copy data and replica lag is usually very low. They are also the failover targets.
- Endpoints:
- The cluster endpoint always points to the current writer.
- The reader endpoint balances connections across the replicas.
- Instance endpoints reach one specific instance.
- Custom endpoints group a subset of instances, for example larger replicas for reporting.
- Aurora Auto Scaling adds and removes Aurora Replicas to match the load, which standard RDS read replicas don't do.
- Capacity: choose provisioned instance classes, Aurora Serverless capacity that scales automatically, or a mix of both in one cluster.
- Vector search: Aurora PostgreSQL supports the pgvector extension, with HNSW indexes for fast similarity search over vector embeddings. It can also be the vector store for Amazon Bedrock Knowledge Bases, which needs the RDS Data API (Application programming interface)A defined way for one program to ask another for data or actions, such as a set of HTTPS requests and responses. Every AWS service is controlled through its API, which the console, the CLI, and the SDKs call for you.Glossary entry and the database credentials in AWS Secrets Manager.
Security, resilience, performance, and cost
Security
- Run the cluster in SubnetA range of IP addresses in a VPC, inside one Availability Zone. A subnet is public when its route table sends internet traffic to an internet gateway, and private when it does not.Glossary entry and allow the database port only from the application's Security groupA stateful virtual firewall for network interfaces, such as an EC2 instance's, whose rules can only allow traffic. Return traffic for allowed connections is allowed automatically, and a rule can refer to another security group instead of IP addresses.Glossary entry.
- Encryption at restEncrypting data where it is stored, such as on disks, in databases, or in backups, so that it cannot be read without the key. On AWS it usually uses keys in AWS KMS.Glossary entry uses AWS KMS and covers the cluster volume, backups, snapshots, and replicas. As with RDS, choose it when you create the cluster; to encrypt an existing one, restore an encrypted copy of a snapshot.
- Use TLS (Transport Layer Security)The protocol that encrypts traffic between a client and a server and lets the server prove its identity with a certificate. It replaced SSL, though the older name is still common; HTTPS is HTTP over TLS.Glossary entry in transit, IAM database authentication, and master passwords managed in AWS Secrets Manager.
- Database Activity Streams send a near-real-time feed of database activity to Amazon Kinesis for auditing.
Resilience
- Failover: if the writer fails, Aurora promotes a replica. Service is typically restored in under 60 seconds, often under 30, and the cluster endpoint follows the new writer. Set priority tiers (0–15) to choose which replica is promoted first. With no replicas, Aurora must create a new writer, which takes longer, so put at least one replica in another Availability Zone.
- Aurora Global Database has a primary cluster in one Region and up to 10 secondary Regions. Replication runs on dedicated infrastructure with LatencyThe time between sending a request and receiving the response, usually measured in milliseconds. Distance and processing add to it; caching and serving users from nearby locations reduce it.Glossary entry typically under a second, so RPO (Recovery point objective)The most data, measured in time, that a workload can afford to lose in a disaster. With an RPO of one hour, data must be restorable to no more than an hour before the failure.Glossary entry is typically seconds and RTO (Recovery time objective)The longest acceptable time between a disruption and the workload being available again.Glossary entry can be minutes. Secondary Regions serve low-latency local reads, and you can switch over or fail over to a secondary Region.
- Backups are continuous and incremental, with a retention of 1 to 35 days and PITR (Point-in-time recovery)Restoring a database to its state at a chosen moment within a retention period, using continuous backups. Amazon RDS, Amazon Aurora, Amazon DynamoDB, and AWS Backup support it.Glossary entry. Restoring creates a new cluster.
- Backtrack (Aurora MySQL) rewinds the cluster in place to an earlier time, up to 72 hours back, with no restore. It affects the whole cluster. You must turn Backtrack on when you create or restore the cluster; you can't add it to an existing cluster.
- Cloning creates a new cluster quickly using copy-on-write, so a clone for testing uses almost no extra storage at first.
Performance
- Scale reads by adding replicas and connecting through the reader endpoint; scale the writer by changing its instance class, or use Aurora Serverless.
- RDS Proxy pools connections for Lambda and other short-lived clients.
- Global Database serves reads close to users in other Regions.
Cost
- Pay for instances (or Serverless capacity), storage used, backup storage beyond the retention included, and data transfer.
- Choose a storage configuration:
- Aurora Standard: you pay for I/O requests. It is the best choice when I/O is under 25% of your Aurora spending.
- Aurora I/O-Optimized: no I/O charges, with more predictable cost. It is the best choice when I/O is 25% or more of your Aurora spending.
- You can switch from Standard to I/O-Optimized once every 30 days.
- Save on steady usage with Reserved DB Instances or Database Savings Plans.
Monitoring
- CloudWatch metrics such as replica lag, CPU, and connections, CloudWatch Database Insights for database load, and Enhanced Monitoring for OS metrics.
- Publish engine logs to CloudWatch Logs; CloudTrail records API calls; RDS events go to EventBridge.
Aurora or RDS?
| Amazon Aurora | Amazon RDS (MySQL, PostgreSQL) | |
|---|---|---|
| Storage | Shared cluster volume across three Availability Zones; grows automatically | Separate storage per instance; set the size (or turn on autoscaling) |
| Read replicas | Up to 15; share the storage; Aurora Auto Scaling | Up to 15; asynchronous copies; added by hand |
| Failover | To a replica, usually under 30–60 seconds | Multi-AZRunning standby or extra copies of a resource in other Availability Zones so that it survives the loss of one. An Amazon RDS Multi-AZ deployment keeps one or two standby copies and fails over to one automatically.Glossary entry instance 60–120 seconds; Multi-AZ cluster under 35 seconds |
| Cross-Region | Global Database, lag typically under a second, up to 10 secondary Regions | Cross-Region read replicas |
| Rewind in place | Backtrack (Aurora MySQL) | Not available; restore to a new instance |
| Engines | MySQL- and PostgreSQL-compatible only | Six engines, including Oracle and SQL Server |
Reverse mindmap: when the question points here
- Yes, when the question says
- MySQL or PostgreSQL with the highest availability and performance leads to Aurora
- Storage that grows on its own across three Availability Zones leads to Aurora cluster volume
- Up to 15 low-lag read replicas leads to Aurora Replicas
- Choose the feature
- Replicas that scale with the load leads to Aurora Auto Scaling
- Send reporting queries to bigger replicas leads to Custom endpoint
- Failover to a chosen replica first leads to Priority tiers
- Cross-Region DR with RPO in seconds leads to Aurora Global Database
- Fast local reads in other Regions leads to Aurora Global Database
- Undo a bad change in minutes, no restore leads to Backtrack
- Quick test copy of production leads to Aurora cloning
- High I/O bills leads to Aurora I/O-Optimized
- No, when the question says
- Oracle or SQL Server leads to Amazon RDS
- Unpredictable or idle workload, no sizing leads to Aurora Serverless
- Key-value at any scale leads to DynamoDB
Key takeaways
- Aurora is AWS's MySQL- and PostgreSQL-compatible engine, managed through RDS.
- One shared cluster volume: six storage nodes across three Availability Zones, growing automatically to 128 TiB (256 TiB on recent versions).
- Up to 15 Aurora Replicas, which are also failover targets; use the cluster endpoint for writes and the reader endpoint for reads.
- Global Database: up to 10 secondary Regions, lag typically under a second, RPO in seconds.
- Backtrack rewinds Aurora MySQL in place up to 72 hours, if turned on at creation or restore; cloning makes fast copy-on-write copies.
- Choose I/O-Optimized when I/O is 25% or more of the Aurora bill.
Sources
- Amazon Aurora User Guide: What is Amazon Aurora?
- Amazon Aurora User Guide: Amazon Aurora storage
- Amazon Aurora User Guide: High availability for Amazon Aurora
- Amazon Aurora User Guide: Replication with Amazon Aurora
- Amazon Aurora User Guide: Amazon Aurora endpoint connections
- Amazon Aurora User Guide: Amazon Aurora Auto Scaling with Aurora Replicas
- Amazon Aurora User Guide: Using Amazon Aurora Global Database
- Amazon Aurora User Guide: Using switchover or failover in Amazon Aurora Global Database
- Amazon Aurora User Guide: Backing up and restoring an Amazon Aurora DB cluster
- Amazon Aurora User Guide: Backtracking an Aurora DB cluster
- Amazon Aurora User Guide: Cloning a volume for an Amazon Aurora DB cluster
- Amazon Aurora User Guide: Quotas for Amazon Aurora
- Amazon Aurora User Guide: Monitoring Amazon Aurora with Database Activity Streams
- Amazon Aurora User Guide: Using Aurora PostgreSQL as a Knowledge Base for Amazon Bedrock