A few months back we published a blog article titled Introducing Amazon Aurora, which described Amazon’s la RDS RDBMS engine offering Aurora. AWS Aurora is Amazon’s own internally developed MySQL 5.6 compatible DBMS.
Let’s review what we learned from the last article:
- MySQL “drop-in” compatibility
- Roughly 5x performance increase over traditional MySQL
- Moves from a monolithic to service-oriented approach
- Dynamically expandable storage (up to 64T) with zero downtime or performance degradation
- Data storage and IO utilization is “only pay for what you use” ($0.10/GB/mo., $0.20/million IO)
- High performance SSD backed storage
- Data is automatically replicated (two copies) across three availability zones
- Uses quorum writes (4 of 6) to increase write performance
- Self-healing instant recovery through new parallel, distributed, and asynchronous redo logs
- Cache remains warmed across DB restarts by decoupling the cache from the DB process
- Up to 15 read replicas for scaling reads horizontally
- Any read replica can be promoted to the DB master nearly instantly
- Simulation of node, disk, or networking failure for ing/HA
In addition to those, I’d like to point out a few more features of Aurora:
- Designed for 99.99% availability
- Automatic recovery from instance and storage failures
- On-volume instant snapshots
- Continuous incremental off-volume snapshots to S3
- Automatic restriping, mirror repair, hot spot management, and encryption
- Backups introduce zero load on the DB
- 400x (yes TIMES, NOT PERCENT!) lowered read replica lag over MySQL
- Much improved concurrency handling
That is a pretty impressive list of features/improvements that Aurora buys us over standard MySQL! Even at the slight increase in Aurora’s RDS run rate, the performance gains more than offset the added run costs in typical use-cases.
So what does that list of features and enhancements translate to in the real world? What does it ACTUALLY MEAN for the typical AWS customer? Having worked with a fair number of DBMS platforms over the past 15+ years, I can tell you that this is a pretty significant leap forward. The small cost increase over MySQL is nominal in light of the performance gains and added benefits. In fact, the price-to-performance ratio (akin to horsepower-to-weight ratio for any gear heads out there) is advertised as being 4x that of standard MySQL RDS. This means you will be able to gain similar performance on a significantly smaller instance size. Combine that with only having to pay for the storage your database is actually consuming (not a pre-allocated chunk) and all of the new features, and choosing Aurora is nearly always going to be your best option.
You should definitely consider using Aurora to replace any of your MySQL or MySQL derivative databases (Oracle MySQL, Percona, Maria). It’s designed using modern architectural principals, for the Cloud, and with high scalability and fault-tolerance in mind. Whether you are currently running, or are considering running, your own MySQL DBMS solution on EC2 instances or are using RDS to manage it, you should strongly consider Aurora. The only exception to this may be if you are using MySQL on a lower-end RDS, EC2, Docker, etc. instance due to lower performance needs and cost considerations.
Because Aurora has some specific performance requirements, it requires db.r3.large, or faster, instances. In some cases people choose to run smaller instances for their MySQL as they have lower performance and availability needs than what Aurora provides and would prefer the cost savings. Also, there is no way to run “Aurora” outside of RDS (as it is a platform and not simply an overhauled DBMS), which could be a consideration for those wanting to run it in a dev/ context on micro instances or containers. However, running a 5.6 compatible version of MySQL would provide application congruency between the RDS Aurora instance and the one-off (e.g. a developer’s MySQL 5.6 DB running on a Docker container).
In addition to being an instantly pluggable MySQL replacement, Aurora can be a great option for replacing high-end, expensive commercial DBMS solutions like Oracle. Switching to Aurora could provide massive cost savings while delivering a simplified, powerful, and highly scalable solution. The price-to-performance ratio of Aurora is really in a class by itself, and it provides all of the features and performance today’s critical business applications demand from a relational database. Aurora gives you on-par, or even better, performance, manageability, reliability, and security for around 1/10th of the cost!
To learn how the experts at 2nd Watch can help you get the most out of your cloud database architecture, contact us today.
-Ryan Kennedy, Senior Cloud Architect