The new Aurora, MySQL compatible database from AWS will be a game changer. It will provide a great opportunity to Online Retailers using Magento and Amazon Cloud to scale their businesses like never before, at a fraction of the cost.
Akoova was invited recently by Amazon Web Services (AWS) to participate in the “AWS re:Invent 2014” conference in Las Vegas, to talk specifically about “Running and Scaling Magento on AWS”. This was the most exciting “re:Invent” conference ever, not just because 13,500 people attended, but because the main focus of the conference was totally about new cloud solutions, rather than competing with Google Cloud, Microsoft Azure etc… on price-cutting.
There were several interesting announcements, such as the new Container Service that supports Docker, the compute-optimised EC2 C4 instance (Magento loves CPU), and AWS CodeDeploy. The most exciting news, though, for us at Akoova was the announcement of Amazon Aurora, a MySQL-compatible, database engine built for high performance and availability.
Before Amazon Aurora
High traffic Magento sites have always struggled with the performance of a MySQL database. If you would try to run a reindex or apply a new promo from Admin on a high-traffic live site, you would hear those DB locks rattling from far away. Until now developers, system administrators and devops tried to deal with these constraints in different ways: upgrading servers by improving hardware, adding plenty of memory, and using disks with high IOPS performance; setting up Master-Slave replicas to scale read operations horizontally; replacing MySQL with a fork like the Percona server.
Amazon Aurora will make all of this unnecessary. It will change the database landscape. In so doing, AWS is challenging Oracle and Microsoft for the position as the dominant player in the relational database market.
Introducing Amazon Aurora
Aurora will be one-tenth the cost of Oracle Enterprise (i.e., $5K vs $50K), assuming two servers runs an Aurora cluster all year–without counting charges for support and maintenance from enterprise players and staff.
Amazon says that Aurora is five times faster than MySQL 5.6, capable of 6 million inserts per minute. That in itself is very compelling, but it doesn’t stop there. Aurora will have superior high availability and scaling capabilities, thanks to the low-lag replication, in the tens of milliseconds.
The section below describes some of these advantages in more detail. It’s a bit technical. So you may want to skip to the section after it.
Technical Aspects of Aurora
Until now, the lag inherent in MySQL Replication for Read Replicas could vary significantly, making it not a good fit for certain applications. For this reason, Akoova does not currently provide Read Replica as a default option to Magento Online Retailers. It requires careful testing of each site and verification of the level of tolerance with replication lags. MySQL Read Replicas must replay, on a single thread, all write operations from the master database instance to their local data store.
A further benefit with Aurora is that scaling and high availability can be achieved with less resources. Currently, with AWS RDS–the AWSome MySQL managed service provided by AWS–high availability and failover support is achieved using Multi-AZ deployments, a standby replica in a different Availability Zone. However, the standby replica cannot serve read traffic. Horizontal scalability instead is achieved through Read Replicas. This is a MySQL built-in asynchronous replication functionality. If you were to have one instance for the master database, another instance for high availability, and another for a Read Replica, you would triple the cost of an RDS instance. However, with Aurora, the Read Replica can also be used as a failover due to the low-lag. For increased availability, the Read Replica should be on a different AWS Zone. So high availability and scalability can be achieved with one less instance using Aurora. More than that, Aurora can have up to fifteen replicas.
Aurora is designed from the outset to be reliable, durable, and fault tolerant. For instance it maintains multiple copies of the data in three Availability Zones. In general, Aurora reduces the need to perform a point-in-time restore to recover from a disk failure or a crash. Even if a point-in-time restore is needed, it will take much less time due to the superior performance. Crash recovery will take seconds, no cache warming required. Some of those features are not even available on the highest-end commercial engines.
Preparing for Aurora
If you think you might like to switch to Aurora when it’s made available to the public, there are a couple of things you may need to do to prepare, to make your system and data compatible with Aurora. They involve upgrading software and migrating tables. You should consider doing these things in advance to resolve any problems long before you migrate to Aurora. Even if you later decide not to use Aurora, there are advantages to these changes independent of Aurora.
First, Aurora is compatible with MySQL 5.6. Only the latest versions of Magento officially support MySQL 5.6 (i.e., Magento CE 1.9.1 and Magento EE 184.108.40.206). So before switching to Aurora, upgrade your site to the latest version of Magento CE or EE. Again, even if you don’t use Aurora, it’s a good idea to stay current.
The second thing to do to prepare to switch to Aurora relates to storage engines. Aurora supports the InnoDB storage engine and not MyISAM. Magento typically has a few tables which use MyISAM, such as “catalogsearch_fulltext”. You will need to migrate any tables which use MyISAM to InnoDB. Even if you don’t use Aurora, InnoDB is generally a better alternative. Akoova will handle migrating these tables for their clients, so they don’t have to worry about the technical aspects of this.
Magento on Aurora
Once Aurora is released and you’ve migrated your systems to it, you should find that there are many benefits in using Aurora with Magento:
- In Magento, the checkout is heavily transactional. It will benefit greatly from the fast response time that Aurora offers when updating quotes and creating orders.
- The back-end activities of Magento will take less time to execute on Aurora. You will see improvements when applying promotions, indexing, run reporting, and recovering from cache clears.
- Aurora will reduce DB locks. This is especially important for sites with a high volume of orders.
- With Aurora, there will be no performance impact when taking snapshots. This will allow Akoova’s clients to have a brand new stage infrastructure and environment from scratch within thirty minutes using a very recent copy of the live database.
These are just a few of the benefits in using Aurora with Magento. And we expect more to come, as Amazon continues to improve Aurora.
Since Aurora is MySQL compatible, there is no lock-in. You can move-in and move-out with ease.
Gone are the days of lock-ins, long-term contracts, high capital expenditures, professional service, licenses, maintenance fee, certifications etc…
An Excellent Combination
Amazon’s ability to deliver a constant flow of client driven innovation fits very well with Akoova’s obsession to keep building a highly tuned machine. We like being in sync with Online Retailers, providing them value, making them successful by giving them access to the latest Cloud innovations.
Aurora is only available on AWS. Akoova platform is built from the outset to gain the best of Magento running on Amazon. Online Retailers who want to leverage Aurora and Amazon Cloud for their Magento online store, should look no further than Akoova. Akoova is the high-performing retailers’ best secret.