If you have a Web application that’s outgrowing MySQL, an open-source relational database management system, Amazon Aurora is an impressive option for migration that’s worth exploring. Aurora is a plug-in replacement for MySQL and PostgreSQL that offers better performance and scalability than the base offerings. Read on to learn about Aurora’s functionality and its pros and cons to gain some insight into a potential solution beyond MySQL.
Introduced in 2014, Amazon Aurora is a cloud-hosted relational database. Though it is proprietary technology, it is compatible with open-source versions of MySQL and added support for PostgreSQL in 2017. With open-source simplicity and economy, it claims commercial-grade performance and availability.
Aurora tends to be five times faster than MySQL and three times faster than PostgreSQL, but only on particular combinations of workload and instance types. Most of this added performance comes from a tight coupling between the database engine and an SSD-based virtualized storage layer. This reduces writes to the storage system, meaning fewer database process threads, and a lower chance of lock contention and delays.
Amazon Aurora is basically the managed version of Amazon RDS. It automatically handles provisioning, patching, backup, recovery, failure detection and repair. Billing consists of a monthly charge for each database instance you use. There is no upfront cost or long-term commitment required.
Aurora automatically allocates 10-gigabyte blocks of storage as needed and scales to a maximum of 64 terabytes of storage per instance. It also automatically replicates these 10 gigabyte blocks of storage six times across three availability zones in order to provide 99.99% availability and fault tolerance.
Aurora offers better monitoring options that aren’t available for vanilla RDS, providing users with performance metrics such as query throughput and latency.
Aurora stacks up well against all of the important criteria for a fully-managed database service:
As mentioned above, Aurora is available as part of Amazon RDS. Though it has fewer database options, RDS manages provisioning, patching, backup, recovery, and failure detection for you. Not all MySQL options and features are available, since Aurora is compatible only with MySQL versions 5.6 and 5.7, and supports only the InnoDB as a storage engine.
Aurora has a minimum storage of 10 GB and will automatically scale up to 64 TB in 10 GB increments without affecting performance, so there is no need to provision storage in advance.
Right now Amazon Aurora supports only MySQL and PostgreSQL. This makes migrating easier for customers who already run workloads on these databases. If, however, you want to migrate from another database, Amazon provides a Database Migration Server that is free for Aurora customers for the first six months.
By tightly integrating the database engine with an SSD-based storage layer, Aurora is significantly faster than MySQL and PostgreSQL. Aurora is optimized for applications that drive a lot of concurrent queries and transactions.
Backups happen automatically, and don’t impact performance. Snapshot instances are also possible and don’t impact performance, but they do require a new DB instance. Aurora is self healing. It can do this by keeping six copies of data across three availability zones.
Aurora uses a pay-as-you-go model without any upfront charges or minimum fees. You pay monthly for database storage and backup storage, with IOs charged per million requests. Data transfer in and out of RDS is charged per GB. Check the Amazon website for current rates.
Aurora exists in Amazon VPC by default, and gives you the ability to design your own network topology. All data is encrypted in transit and at rest. The MySQL and PostgreSQL editions of Aurora are both HIPAA-eligible, so you can use them to build HIPAA-compliant applications.
Summing Up the Pros & Cons
Aurora’s benefits outweigh its disadvantages in most cases:
High throughput compared to MySQL and PostgreSQL
Low read replication lag time
Fast crash recovery compared to MySQL
Inexpensive compared to high-performance proprietary databases
Can’t be moved to other clouds, though MySQL is portable and compatible
Write performance can’t expand beyond the abilities of the most powerful available instance, though read performance can improve by adding replicas
Amazon Aurora is certainly a more manageable solution than sharding your MySQL data. It could also be an alternative to Microsoft SQL Server or Oracle in cases where applications don’t use the special features of those databases, and you haven’t made a large investment in stored procedures. As an option that can improve relational database reliability and availability while lowering costs, Aurora is a smart move from MySQL.