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:

Features of AWS Aurora

 

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.

Amazon RDS Supports Relational Database

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.

Better performance:

Amazon Aurora SpeedCompared 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.
Unique read replica infrastructure

[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.

Enhanced security:
Enhanced security

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.

AWS Aurora versus MySQL

 

 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
 Cross-region replication  Yes  Yes
 Survival cache warming  Yes  No

 

AWS Aurora MySQL Compatibility & Enhanced CMS Capabilities

Magento

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!

Advantages of Magento
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 1.14.1.0 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.

WordPress

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.

Advantages of WordPress
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!