AWS Aurora vs RDS: Head to Head
What is AWS Aurora?
What is AWS RDS?
Aurora is an AWS database service that is compatible with MySQL and PostgreSQL, but uses an innovative database engine behind the scenes. Applications that currently use MySQL/PostgreSQL can be migrated to Aurora with minor or no changes.
An Aurora database instance can store between 10 GB—64 TB, with data divided into 10 GB blocks and distributed on different disks.
Aurora offers easy scalability—storage is scaled automatically when the database grows, and to support more read requests, you can create up to 15 Aurora Read Replicas.
Relational Database Service (RDS) is a managed database service that supports several popular database engines, including: PostgreSQL, MySQL, SQL Server, MariaDB, and Oracle.
RDS can help you perform a wide range of database management tasks, including data backup and recovery, patching, and migrations.
RDS automatically backs up database instances, captures daily snapshots of data, preserves transaction logs, and enables point-in-time recovery. Additionally, the service automatically patches database engine software.
To improve the reliability and availability of workloads, RDS enables replication of databases with automated failover across several availability zones.
AWS Aurora vs RDS: Feature Comparison
Here are a few ways Aurora compares to Amazon RDS.
Amazon RDS improves I/O performance by using SSDs for database storage. You can choose between two SSD storage options:
- Optimized OLTP—storage is optimized for high I/O transaction database workloads. Each database instance can support up to 30,000 IOPS.
- General purpose—cost effective hardware offering 3 IOPS per stored GB.
Amazon Aurora improves on the performance of standard MySQL by 5x, and improves on standard PostgreSQL by 2x, with the same hardware configuration. Aurora is a new database engine built to make the most of available compute capacity, memory, and network bandwidth.
Amazon RDS can provision storage up to 6TB, on-demand without downtime.
Amazon Aurora automatically increases storage from a minimum of 10 GB to a maximum of 64 TB, in increments of 10 GB, based on current usage—you do not need to pre-configure storage. Storage scaling does not affect database performance.
However, for MySQL, Aurora only supports the InnoDB storage engine. Tables are automatically converted if they use another storage engine.
Amazon RDS allows up to five live database copies, known as read replicas. RDS failover is done manually, so some data loss may occur.
Amazon Aurora also provides read replicas, which share the same data volume as the original database instance. Up to 15 read replicas are supported. Failover is done fully automatically with no data loss. It also supports creating a highly available database cluster with synchronous replication across multiple availability zones.
Amazon RDS performs a daily snapshot of your database, and saves transaction logs to allow point-in-time recovery. The snapshot occurs during a backup window you can specify. While the snapshot is being taken, storage I/O may be interrupted while data is copied, affecting database performance. Backups are saved to S3 with very high durability.
Amazon Aurora backups are continuous, incremental backups that do not affect database performance. Also, there is no need to take frequent snapshots to enable point in time recovery.
Amazon RDS or Aurora? Factors to Consider Before Choosing
We covered a feature by feature comparison of the two database services. Here are some other important considerations before you select the service that is right for you.
Especially for production databases, data backup is a critical consideration. Aurora offers higher availability and better resilience than RDS, due to its unique storage model, and ability to perform continuous backups and restore with a very low recovery point objective (RPO).
Database engine support
Aurora only supports MySQL and PostgreSQL. If you need to run other database engines, such as SQL Server, you will need to opt for RDS.
Aurora is generally more expensive than RDS for the same workloads. RDS is priced based on type and size of instance and EBS volume. Aurora pricing is mainly based on instance size and storage is billed according to actual usage. Keep in mind read replicas represent an extra cost in both platforms.
AWS Aurora and RDS with Thundra
Thundra provides deep insights into the microservice applications. Todays’ distributed applications are developed and served on the cloud, and modern tools like Thundra enable developers to trace their apps and debug the code easily. Thundra instruments in a plug and play fashion and automatically traces the requests made to Aurora and RDS databases. You can understand what the query is and the duration of the query made to the database. Thundra provides data privacy by enabling the users to mask their sensitive data inside the calls. Check this blog post where we discuss which database to choose for cloud applications.