What is Amazon Aurora?

An introduction to Amazon Aurora, AWS's cloud-native relational database. Learn how its unique architecture provides the performance and availability of commercial databases at a fraction of the cost.

When you need a relational database in the AWS cloud, the most common choice is Amazon RDS (Relational Database Service), which provides managed instances of popular engines like MySQL, PostgreSQL, and SQL Server. But AWS also offers its own, cloud-native relational database engine that is designed for higher performance and availability: Amazon Aurora.

What is Amazon Aurora?

Amazon Aurora is a MySQL and PostgreSQL-compatible relational database built for the cloud. It combines the performance and availability of high-end commercial databases with the simplicity and cost-effectiveness of open-source databases.

Aurora is part of the Amazon RDS family, so it has all the benefits of a managed service: automated patching, backups, and monitoring. But its underlying architecture is fundamentally different and purpose-built for the cloud.

The Key Differentiator: The Storage Layer

The real magic of Aurora is its unique, distributed storage architecture. In a traditional database, the compute node (where the query processing happens) is tightly coupled with the storage layer. In Aurora, these are separated.

The Aurora storage layer is a self-healing, auto-scaling distributed system that automatically replicates your data across three Availability Zones (AZs). It stores six copies of your data—two copies in each of the three AZs. This provides an incredible level of durability and availability.

This architecture allows Aurora to:

  • Survive the loss of an entire AZ without any data loss and with minimal interruption.
  • Automatically detect and repair failures in the storage layer.
  • Perform continuous backups to S3 with no impact on database performance.

Performance and Scalability

Because of its unique architecture, Aurora offers significant performance improvements over standard MySQL and PostgreSQL.

  • Throughput: AWS claims that Aurora can deliver up to five times the throughput of standard MySQL and up to three times the throughput of standard PostgreSQL running on the same hardware.
  • Read Replicas: You can create up to 15 low-latency read replicas that share the same underlying storage as the primary instance. This allows you to scale your read traffic far beyond what is possible with a single instance.

High Availability

Aurora is designed for high availability. If your primary database instance fails, Aurora can automatically fail over to one of your read replicas in under a minute, with no data loss. This makes it a great choice for mission-critical applications that require high uptime.

Aurora Serverless

For applications with infrequent, intermittent, or unpredictable workloads, AWS offers Aurora Serverless. This is an on-demand, auto-scaling configuration for Aurora. It automatically starts up, shuts down, and scales capacity up or down based on your application's needs. This can be a very cost-effective option for development and testing environments or for applications with spiky traffic patterns, as you pay only for the database capacity you consume.

When to Choose Aurora

  • For New Applications: If you are building a new application on AWS and need a relational database, Aurora should be your default choice if your budget allows. Its performance, scalability, and high availability are superior to standard RDS.

  • For Existing MySQL/PostgreSQL Databases: Migrating an existing RDS MySQL or PostgreSQL database to Aurora is a straightforward process, often achievable with just a few clicks in the AWS console. This can be an easy way to get a significant performance and reliability boost for your existing applications.

Conclusion

Amazon Aurora is a powerful, cloud-native relational database that offers a compelling combination of performance, availability, and cost-effectiveness. By re-imagining the storage layer for the cloud, AWS has created a database service that can handle the most demanding enterprise workloads while still providing the simplicity of a managed service. If you are running relational databases on AWS, Aurora is a service you need to know about.