Amazon Aurora MySQL Migration Handbook - Amazon Aurora MySQL Migration Handbook

Amazon Aurora MySQL Migration Handbook

Publication date: April 29, 2022 (Document history)

This paper provides best practices for planning, implementing, and troubleshooting database migrations from MySQL-compatible and non- MySQL-compatible database products to Amazon Aurora. It also teaches Amazon Aurora database administrators how to diagnose and troubleshoot common migration and replication errors.

Are you Well-Architected?

The AWS Well-Architected Framework helps you understand the pros and cons of the decisions you make when building systems in the cloud. The six pillars of the Framework allow you to learn architectural best practices for designing and operating reliable, secure, efficient, cost-effective, and sustainable systems. Using the AWS Well-Architected Tool, available at no charge in the AWS Management Console, you can review your workloads against these best practices by answering a set of questions for each pillar.

For more expert guidance and best practices for your cloud architecture—reference architecture deployments, diagrams, and whitepapers—refer to the AWS Architecture Center.

Introduction

For decades, traditional relational databases have been the primary choice for data storage and persistence. These database systems continue to rely on monolithic architectures and were not designed to take advantage of cloud infrastructure. These monolithic architectures present many challenges, particularly in areas such as cost, flexibility, and availability. To address these challenges, AWS redesigned relational database for the cloud infrastructure and introduced Amazon Aurora.

Amazon Aurora is a MySQL-compatible relational database engine that combines the speed, availability, and security of high-end commercial databases with the simplicity and cost-effectiveness of open-source databases. Aurora provides up to five times the throughput of a standard MySQL and comparable performance to high-end commercial databases. Amazon Aurora is priced at one-tenth the cost of commercial engines.

Amazon Aurora is available through the Amazon Relational Database Service (Amazon RDS) platform. Like other Amazon RDS databases, Aurora is a fully managed database service. With the Amazon RDS platform, most database management tasks such as hardware provisioning, software patching, setup, configuration, monitoring, and backup are completely automated.

Amazon Aurora is built for mission-critical workloads and is highly available by default. An Aurora database cluster spans multiple Availability Zones (AZs) in a Region, providing out-of-the-box durability and fault tolerance to your data across physical data centers. An Availability Zone is composed of one or more highly available data centers operated by Amazon. AZs are isolated from each other and are connected through low-latency links. Each segment of your database volume is replicated six times across these AZs.

Aurora cluster volumes automatically grow as the amount of data in your database increases and it dynamically shrinks the storage when the data is deleted from the cluster with no performance or availability impact, so there is no need for estimating and provisioning large amount of database storage ahead of time. An Aurora cluster volume can grow to a maximum size of 128 tebibytes (TiB). You are only charged for the space that you use in an Aurora cluster volume.

The automated backup capability in Aurora supports point-in-time recovery of your data, enabling you to restore your database to any point within the backup retention period, up to the last five minutes. Automated backups are stored in Amazon Simple Storage Service (Amazon S3), which is designed for 99.999999999% durability. Amazon Aurora backups are automatic, incremental, and continuous and have no impact on database performance.

For applications that need read-only replicas, you can create up to 15 Aurora Replicas per Aurora database with very low replica lag. These replicas share the same underlying storage as the primary instance, lowering costs and avoiding the need to perform writes at the replica nodes.

Amazon Aurora is highly secure and allows you to encrypt your databases using keys that you create and control through AWS Key Management Service (AWS KMS). On a database instance running with Amazon Aurora encryption, data stored at rest in the underlying storage is encrypted, as are the automated backups, snapshots, and replicas in the same cluster. Amazon Aurora uses SSL (AES-256) to secure data in transit.

For a complete list of Aurora features, refer to Amazon Aurora. Given the rich feature set and cost effectiveness of Amazon Aurora, it is designed to be as the go-to database for mission-critical applications.