Amazon Aurora is a relational database engine built for the cloud and helps your company save resources, money, time, and downtime. The AWS Aurora MySQL & Postgres SQL compatibility feature eases the pain of migrating your existing applications to the cloud. In this introductory post, we will briefly discuss:
The Relation between Amazon Aurora & RDS
RDS is an Amazon-managed relational database service that scales the storage usage and capacity of CPU and memory in a typical server. It has a number of tools for conducting software patching, creating backups, and setting up automatic failure detection and recovery for databases. As part of database services, Amazon RDS manages Aurora.
Both Aurora and RDS (relational database service) can be accessed via Amazon Web Services but they have a slightly different use. A building block in Amazon RDS is known as the ‘DB instance’. This DB instance is the database environment in the cloud and can house multiple databases.
Each of these DB instances runs on a DB engine. With Amazon RDS, you can select different DB engines including Aurora. Aurora, however, is a customized engine for RDS and is specially optimized for the cloud.
The standard configuration for AWS Aurora:
- Multi-AZ cluster with primary (writer) instance
- Single secondary (read replica) instance
- InnoDB storage engine
Features of AWS Aurora MySQL Compatible Edition
High availability: The biggest advantage of Aurora is it is an ‘open source’ database management system built for the cloud. There are no licensing fees, patches, upgrades to handle, lock-ins, and no hardware provisioning.
Open source databases are preferred because of their low cost, flexibility, community-backed development & support and different tools & extensions. But they are often difficult to manage in a production environment. Amazon RDS for MySQL including Aurora manages these workloads effortlessly, making them scalable and flexible.
Compared to any unmanaged database solution, Amazon Aurora guarantees 99.99% durability and greater availability of data. The data is spread across 3 availability zones. 6 copies are created to ensure that data doesn’t get lost or corrupted. All these are ensured at the launch of your RDS DB instance.
Self-healing storage system: The storage system in Aurora is self-healing. Discs and data blocks are continuously checked for errors and errors are rectified automatically. The storage system is better equipped to handle data management.
Ease of migration:
Moving workloads from expensive commercial databases to AWS can be accomplished without difficulty. AWS Aurora MySQL compatibility ensures that it can handle varied database workloads. From simple transactional applications to complex OLAP and OLTP workloads, you can now automate migration from MySQL to Aurora.
You will find more technical details in the section below.
What does it mean when we say that Aurora is MySQL or PostgresSQL compatible?
This means that most of the tools, applications, drivers, and code that are used in MySQL can be used in Amazon Aurora. It’s wire compatible with MySQL 5.6 and 5.7 and uses InnoDB storage engine.
Similarly, the Amazon Aurora Postgres compatible edition ensures that it supports the same extensions as RDS for Postgres SQL 9.6 and 10. Moving applications between two engines becomes easier.
Automatic backups: Data is continuously backed up in S3. With these auto backups different versions are created and stored. It’s possible for the database manager to access the previous version of uncorrupted data if data gets corrupted at any point in time.
This is how we reduced IT costs and customer delays for our client after implementing Amazon Aurora.
Unique read replica infrastructure:
With Amazon Aurora, users can create 15 low latency replicas in each DB instance. This ensures a quick response time for your application. During migration, if the user experiences a failover in a particular replica, the next read replica will take over. The application will automatically update with the changes.
[Image Courtesy: DynamoDB]
Aurora uses the RDS Multi-AZ technology for accessing the replicas during failover. If the user fails to find any provisioned Aurora Replica, RDS will try creating a new Amazon Aurora DB instance.
With multiple layers of security, it’s impossible to have a data breach in Amazon Aurora. The database instances are isolated in a private network like Amazon VPC. This is your own virtual network that is connected to your on-premise IT infrastructure. Security is ensured through an encrypted passcode, proper firewall settings, and a control system.
Cost-effective solution: There is no upfront investment for Aurora. For each DB instance which you launch, you pay an hourly charge. Once you are done with the DB instance, you can delete it, saving money on storage. You only pay for the storage you use.
AWS Aurora versus MySQL
When you look at Aurora versus MySQL, it’s evident that MySQL is more apt for physical machines while Aurora performs best in cloud servers. MySQL is not optimized for virtual machine performance. Here is a clear comparison between the two to help you make an informed decision.
|Features||RDS Aurora||RDS MySQL|
|Number of replicas||Up to 15||Up to 5|
|Replication Type||Asynchronous, done within milliseconds||Asynchronous, done within seconds|
|Replication Performance Impact on Primary source||Low||High|
|Replica can act as a failover target||Yes (no data loss)||Yes (potentially minutes of loss)|
|Storage||Up to 64 TB, auto growth||Up to 6 TB with specific storage limit|
|Automated Failover||Yes, to replica||Yes, to standby|
|User-refined replication delay||No||Yes|
|Replica support for different schema or data versus primary source||No||Yes|
|Survival cache warming||Yes||No|
AWS Aurora MySQL Compatibility & Enhanced CMS Capabilities
Magento sites with high traffic have always found MySQL performance to be inadequate. If you want to apply a new promo or run the reindex from Admin for a high-traffic site, the DB blocks would give up.
Till now developers and system administrators have dealt with these constraints by
- upgrading servers,
- using disks with high IOPS performance,
- or adding plenty of memory
But not anymore!
Before switching to Aurora, there are a couple things you need to prepare to make your data and system compatible with the change.
- Aurora is compatible with MySQL 5.6 and 5.7. The latest versions of Magento i.e. Magento CE 1.9.1 and Magento EE 126.96.36.199 support MySQL 5.6 & 5.7. Upgrade your site to the updated versions of EE or CE.
- Aurora supports InnoDB storage engine and not MyISAM. Magento has a few tables using MyISAM like “catalogsearch_fulltext”. You need to migrate the tables using MyISAM to InnoDB.
Whether it’s a single-server deployment or multi-server deployment, it’s been proven that Amazon Aurora can improve various aspects of a WordPress site’s performance and scalability.
Congratulations on making it to the end of this post about AWS MySQL compatibility! See you in the next chapter where we will discuss some of the best practices for migrating MySQL databases to Aurora.
A banking client was happy with the flexibility and scalability of operations offered by Amazon Aurora. Let us tell you how!