Amazon Aurora vs RDS: Head to Head
|What is Amazon Aurora?||What is Amazon 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.
It offers easy scalability—storage is scaled automatically when the database grows, and to support more read requests, you can create up to 15 Read Replicas.
|Amazon Relational Database Service 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.
It 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, it enables the replication of databases with automated failover across several availability zones.
Here are a few ways to compare the features of these competitive services.
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. It 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, MySQL 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 reading 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.
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. It is priced based on the type and size of the instance and EBS volume. Aurora pricing is mainly based on instance size and storage is billed according to actual usage. Keep in mind that read replicas represent an extra cost on both platforms.
How Thundra Works With Them
Thundra provides deep insights into 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.