Nearly all companies I interact with use databases, either on-premises or in the cloud, to store application data. With database technologies constantly improving, I’m often asked whether it is worth migrating to Amazon Aurora. The short answer is that it depends on the use case.
Amazon Aurora is a MySQL and PostgreSQL compatible relational database built and optimized for the AWS cloud. Aurora has been getting a lot attention for its high performance and scalability features along with the proclaimed faster speeds when compared to regular MySQL and PostgreSQL database engines. With such great features, wouldn’t it make sense to always use Aurora? Let’s examine a few factors that you should consider when determining if Aurora is the right solution for your application.
Scale and Cost
Cost is an important factor to consider when choosing a database engine. Aurora is packed with amazing features but there is a cost increase of 20% compared to a similar sized RDS MySQL database. However, before you cross-off Amazon Aurora from your list for being more expensive, let’s examine the functionality that Aurora provides for the extra cost.
Similar to other RDS databases, Aurora handles provisioning, patching, backup, recovery, and other tasks. In addition, with Aurora you can have 10 more read replicas with a maximum of 15 read replicas. In the event of the primary database failing, any of the read replicas can become the primary database, with no data loss. Aurora stores data in 10 GB chunks and scales automatically up to 64 TB. Each chunk of data is replicated six-ways across 3 availability zones (AZ) and encrypted using a KMS key. Data in transit, snapshots, and backups are also encrypted using the KMS key. Aurora provides a way to utilize the power of the AWS cloud to scale databases easily without almost any overhead from the customer.
Most customers understand the benefits of Aurora and proceed to implement it into their applications. However, some customers are more cost conscious. Be sure to test this AWS database engine with your applications to ensure that it fits your business requirements before migrating over.
Usage Pattern
Analyzing database access patterns can also provide insights of whether or not to migrate to Amazon Aurora. In my opinion, if the database is not being utilized frequently then it might make sense to just use non-Aurora RDS engines to save cost, not only on a cheaper hourly rate but also on the effort to migrate it to Aurora. It is also worth mentioning that Aurora Serverless will be released sometime in 2018 which would allow for Aurora databases to start up, shutdown, and scale based on the demand. This is a really cool concept especially for new applications that don’t yet know the database usage demand and also for dev/test databases that are not frequently accessed.
Along with that, any production database that is not frequently accessed can also benefit from this service. Many AWS customers are waiting for this service to be released—including myself—to see how it would help them reduce cost for infrequently accessed data. To register for the Amazon Aurora Serverless preview, click here.
Why and How
Some companies jump into the latest and greatest technology because everyone else is doing it. As if there was some form of “peer pressure” to “keep up with the Joneses.” Companies exhibiting this kind of mentality without proper examination of the services can realize disappointing results and potentially misuse of developers’ time. Sitting down and carefully examining the Aurora service will identify any potential gaps in the service that might not fit your particular use case. Additionally, if data already exists, having a migration plan and strategy will aid in reducing or eliminating downtime, along with preventing potential loss of revenue if the database is mission-critical.
I have worked on a few database migration projects and noticed that companies who first examine the AWS service to ensure that it fits their needs, then create a migration plan and follow it, are the ones that have the most seamless database migration experience. Companies that jump to using the newest service have a rocky ride.
Conclusion
Therefore, to reference to the initial question, is Aurora worth it? With consideration of the factors mentioned above, it may be worth exploring Aurora RDS engine as your database solution.
If you have further questions regarding Aurora or any other AWS services, feel free to schedule a consultation with us or email me directly at pavel@new.1strategy.com.