Benchmarking Aurora vs MySQL: Is Amazonās New DB Really 5x Faster?
Amazon Aurora: The next generation of hosted database services put to the test
In this post weāre taking a closer look at Amazon Aurora to see how it fares against MySQL andĀ if it delivers on the promise of a 5x performance boost. Recently reaching general availability, Aurora is Amazonās home grown MySQL compatible database. Currently available on three AWS regions (Virginia, Oregon and Ireland) on top of RDS, Amazonās Relational Database Service.
Aurora is basically the next stage in the evolution of Amazonās hosted services. If now weāre used to using EC2 for our servers, and RDS was introduced for optimized database instances, Aurora is the next step in this offering. Fully compatible with any operation youād run through MySQL so no code changes are needed.
To see a previous speed test we ran and discoverĀ how each of the regions compare to each other, you can check out this blog post right here.
Why Amazon is building a new MySQL compliant database?
Unlike hosting a database on RDS, where we haveĀ additional performance benefits over EC2, monitoring, and quick installation features, Aurora even has some newer tricks up its sleeve. Seems like a new database was required to make it easier for Amazon to further optimize performance and add features like backups and autoscaling database storage ā Which isĀ not available on the basic MySQL instances. In that sense, weāre promised that Aurora would act like MySQL if it was optimized to run on AWS from day 1.
A side effect of this makes Aurora available only onĀ AWS. So for example, youād not be able to use a local version for testing and would have to completely rely on AWS instances. On the bright side, migrating to Aurora from an existing database instance is just a matter of a few clicks.
Benchmark Results
To have more of a hands on feel of how Aurora stands up to MySQL performance-wise weāve set up a simple benchmark covering a write-heavy scenario using sysbench. To do this, weāve used a similar configuration from a previous Aurora performance assessment ran by Amazon. In this version of the benchmark, we ran 4 different instances: The latest MySQL 5.6 on EC2 and on RDS, Aurora on RDS, and the release candidate version of the upcoming MySQL 5.7 on EC2. The exact setup we used and the raw results are available on the next section of this post. Letās jump straight ahead and have a look at the findings:
Operations Per Second

- MySQL 5.6 was 8% than Aurora ā Aurora provided the best results on this test, although far off from the 5x promise weāre used to hear from Amazon. Perhaps the biggest differences kick in on different setups with bigger DB sizes, but this just comes to show us the importance of trying it out with your specific use case.
- RDS provides up to a 60% performance benefit over EC2 ā A more significant difference is seen when we compare performance of databases on EC2 vs RDS. Using RDS provided considerable improvement over deploying the same database on EC2.
- MySQL 5.7 RC provided slightly better results than MySQL 5.6 ā The next version of MySQL shows some progress, even though the RC benchmark run contained a considerable amount of ignored errors (full results are available through the link below).
- When taking 95th percentile response times into account, the differences become even bigger ā Aurora was 20% better than MySQL 5.6 on RDS, and MySQL 5.7 was 20% better than MySQL 5.6 on EC2. RDS performed about 3x better than EC2.
Response times

The Groundwork
The benchmark included setting up 5 r3.large instances on AWS: An EC2 machine which will run the benchmark, and machines with the databases themselves. MySQL 5.6 on EC2, MySQL 5.7 RC on EC2, MySQL 5.6 on RDS and Aurora which is only available on RDS. Then, weāve created a test database with 250 tables and a 25,000 table size on each of the tested machines:
./sysbench ātest=tests/db/oltp.lua āmysql-host= āmysql-port=3306 āmysql-user= āmysqlpassword= āmysql-db= āmysql-table-engine=innodb ā oltp-table-size=25000 āoltp-tables-count=250 ādb-driver=mysql prepare
Afterwards weāve ran a variation of Amazonās write-heavy benchmark described here (300 sec instead of 600 and 125 threads instead of 1000):
./sysbench ātest=tests/db/oltp.lua āmysql-host= āoltp-tables-count=250 āmysql-user= āmysqlpassword= āmysql-port=3306 ādb-driver=mysql āoltp-tablesize=25000 āmysql-db= āmax-requests=0 āmax-time=300 ā oltp_simple_ranges=0 āoltp-distinct-ranges=0 āoltp-sum-ranges=0 āoltporder-ranges=0 āoltp-point-selects=0 ānum-threads=125 ārandtype=uniform run
So basically, the benchmark had 5 minutes to throw all itās got at each of the database instances, and report back on the results. The raw sysbench output is available right here:
Final Thoughts
As far as managed services go, Aurora is definitely a step in the right direction. Taking on hosted solutions for databases to the next level. But is this the right moment to migrate with your database to RDS with Aurora? We feel that RDS proved that itās the right way to go as far as hosted MySQL goes and itās a good time to experiment with Aurora if youāre containing it to specific cases for testing in production. Like with any new technology that gets so close to the data at the core of your business, youāll need to proceed with caution. With that said, a main pain point we didnāt address here is pricing and this is where Aurora holds the greatest promise against traditional full blown commercial databases.
| Reference: | Benchmarking Aurora vs MySQL: Is Amazonās New DB Really 5x Faster? from our JCG partner Alex Zhitnitsky at the Takipi blog. |



