With Wednesday's preview release of a new database service called Aurora, Amazon Web Services claims to have supercharged the open source MySQL with the high performance, reliability, and scalability characteristics typically associated with commercial database systems--at the fraction of the cost for these products.
"Lots of enterprises are using MySQL, and they would like to put more workloads on MySQL, but it is very challenging to get the kind of performance they want from these sorts of open source database engines," said Andy Jassy, senior vice president overseeing the Amazon Web Services, during a press conference at the company's Re:Invent conference, being held this week in Las Vegas.
Aurora was designed to offer the high performance of a commercial relational database management system (RDBMS), while offering the familiarity of an open source RDBMS that many administrators are already used to working with, Jassy said.
For database administrators, Aurora could also eliminate many of the thorny setup and maintenance issues that come with running a RDBMS, no small feat given how fussy database systems can be. Aurora can offer five times the performance of a standard deployment of a MySQL instance, Amazon claimed: It can ingest 6 million inserts (or writes) per minute, and serve up to 30 million queries (or reads) per minute.
"Amazon has gotten considerable traction with its low-end analytic RDBMS offering Redshift, so there's certainly potential for its latest low-end RDBMS offering as well," wrote Curt Monash, of IT research firm Monash Research, in an e-mail. "A large fraction of MySQL usage is already in the cloud, so this seems like an extension of what's already been going on."
In technical terms, Aurora offers an exact replica of the MySQL interface, though it is actually powered by a new proprietary database engine developed by Amazon that runs on top of Amazon's Relational Database Service (RDS).
"If you have a MySQL workload, Aurora would absolutely be a target for your application," said Matt Tavis, an Amazon principal solutions architect, in a follow-up interview. "The intent is to be entirely compatible with the MySQL interaction model, in terms of table structures, SQL calls, connectors, all those things."
Aurora, which AWS has been developing for the past three years, was designed as "cloud-first" database system, Tavis said, meaning that it takes advantage of cloud features of RDS and other AWS services. Running a database as a cloud service offers a number of advantages over installing a database system on premise.
For instance, the data is automatically replicated across different Availability Zones, meaning the user doesn't have to worry about setting up and maintaining a data replication system for high reliability. The data is backed up to the highly redundant Amazon Simple Storage Service (S3), all but eliminating any potential loss due to hardware failure. Also, the user doesn't need to know how much storage to allocate to Aurora--storage sizing is done automatically.
"With MySQL you might be doing a nightly snapshot [of data]. Now, with Aurora, it is happening all the time, automatically," Tavis said.
In terms of resilience, Aurora can detect a database failure and recover in less than a minute, without the need to rebuild (or "warm") the database caches that are needed to speed response times. In the case of a permanent failure, Aurora can automatically failover to a replica without losing any data.
The company also designed Aurora to scale easily to large workloads: Each database instance can hold up to 64 terabytes of data.
This is not Amazon's first relational database service. RDS already serves as a backend for MySQL, Oracle, Microsoft SQL Server, and PostgreSQL databases, automating capabilities such as disk allocation, point-in-time recovery and performing snapshots of the data.
Aurora adds some additional capabilities on top of RDS, in terms of automating backups, scaling and pre-setting the tuning for high scalability usage, Tavis said. Amazon engineers found ways to minimize delays created by database process threads and lock contentions. In addition, Aurora is designed to run on speedy solid-state disks (SSDs).
Amazon is also pitching Aurora as a way for enterprises to escape the lock-in from commercial database vendors, such as Oracle (which now manages the open source MySQL, inherited from Oracle's 2010 purchase of Sun Microsystems). When the service goes live, it will cost US$0.29 per hour for each large instance, with no upfront costs.
With traditional enterprise database vendors, "there is a high amount of lock-in and they have punitive licensing terms--not just allowing very little flexibility in moving to the cloud, but also in the auditing and fining of their customers," Jassy said during a Wednesday keynote at which Aurora was announced. "That is why you see so many enterprises and companies trying to figure out how to move as many workloads as possible to the more customer-friendly open source database engines."