Introducing Amazon RDS Extended Support for MySQL databases on Amazon Aurora and Amazon RDS
With the upcoming end-of-life of MySQL Community Version v5.7 in October 2023 (Page 24), Amazon Web Services (AWS) is actively preparing for this important transition. When MySQL 5.7 reaches community end of life, no further updates, bug fixes, or security patches will be released by the community. We understand that Amazon Relational Database Service (Amazon Aurora and Amazon RDS) customers may have reservations about upgrading from MySQL 5.7 before it reaches its end-of-life. Upgrading to a new major version can be disruptive, especially if you have a large production environment or legacy applications that are dependent on specific major versions. However, continuing to use an unsupported version of MySQL after its end of life could leave your data vulnerable to known Common Vulnerabilities and Exposures (CVEs).
AWS has announced Amazon RDS Extended Support so that you can upgrade to a new major version at a pace that meets your business requirements. We strongly encourage customers to upgrade their MySQL 5.7 clusters or instances to MySQL 8.0 as soon as possible, ahead of Amazon Aurora and Amazon RDS end of standard support dates. Upgrading to MySQL 8.0 presents numerous advantages, including enhanced performance, advanced features, and continued community support over the life of MySQL 8.0. In this post, we discuss what Amazon RDS Extended Support entails, its key benefits, and the upgrade options to Amazon Aurora and Amazon RDS for MySQL 8.0.
What is Amazon RDS Extended Support?
Now that we’ve reviewed the community MySQL 5.7 end-of-life timeline, let’s explore Amazon RDS Extended Support for MySQL 5.7 in more detail. RDS Extended Support is a paid offering where RDS provides critical security and bug fixes for an Amazon Aurora MySQL or RDS for MySQL major version for up to three years past the end of support from the community. Understanding this option will help you make informed decisions about maintaining legacy systems. Although the RDS Extended Support period provides you extra time to plan and test upgrades on their own timelines, you should treat Amazon Aurora and Amazon RDS end of standard support dates as the recommended migration milestones for production systems. Use the RDS Extended Support window wisely to find the right upgrade path for your databases and applications. Testing early allows time to fix compatibility issues before they impact customers.
The following images summarize the Amazon Aurora and RDS for MySQL end of standard support (EoS) date and RDS Extended Support (ES) dates:
Amazon Aurora MySQL-Compatible Edition:
Note: RDS Extended Support for Aurora MySQL 2 starts on November 1, 2024, but will not be charged until December 1, 2024. Between November 1 and November 30, all Aurora MySQL 2 clusters are covered under RDS Extended Support.
Amazon RDS for MySQL:
Amazon RDS Extended Support for Amazon Aurora MySQL 2 and Amazon RDS for MySQL 5.7 will offer:
- Continued security updates for critical and high CVEs.
- Bug fixes and patches for critical issues.
- Ability to open support cases and get troubleshooting help within standard Amazon RDS SLA.
This allows you to keep running mature, stable MySQL 5.7 releases with confidence until the Extended Support period ends. RDS Extended Support is available for up to 3 years after Aurora or RDS end of standard support date. RDS Extended Support charges depend on how many years have passed since RDS standard support expired. For more information, see Amazon Aurora pricing and Amazon RDS pricing.
If you don’t opt in to RDS Extended Support for Amazon Aurora 2 or Amazon RDS for MySQL 5.7 before the RDS EoS date, your clusters or instances will automatically be upgraded to the latest supported minor release of Aurora MySQL 3 or RDS for MySQL 8.0. This ensures your databases remain secure and supported. However, an unplanned major version upgrade could introduce compatibility issues or downtime if applications are not ready for MySQL 8.0. Opting in to RDS Extended Support gives you more control to plan, and test upgrades on your own timeline. RDS Extended Support is only available on the last minor version released before the RDS end of standard support date.
RDS Extended Support is available for latest minor version of RDS for MySQL 5.7 and certain minor versions on Aurora MySQL. To see a list of supported versions, Supported MySQL major versions on Amazon RDS and Amazon Aurora major versions.
When do you need Extended Support?
RDS Extended Support allows organizations to plan upgrades on their own timeline, giving flexibility on when to transition to new major versions while continuing to receive critical security and bug fixes from AWS. Applications that take advantage of the latest features and capabilities may want to consider upgrading to MySQL 8.0 before Aurora or RDS end of standard support dates. Before we highlight key MySQL 8.0 advantages, let’s discuss scenarios where RDS Extended Support may be useful for you.
Application dependencies – Certain applications may have specific dependencies on MySQL major version 5.7, such as compatibility with certain plugins or custom features. Migrating these applications to a newer version can be a complex and time-consuming process. By taking advantage of Amazon RDS Extended Support for MySQL 5.7, businesses can continue using their current database version without interrupting application workflows while they plan and test for compatibility with MySQL 8.0.
Self-managed MySQL: For customers running self-managed MySQL 5.7 on-premises or on EC2, maintaining community versions past end-of-life poses operational burdens and exposes them to CVEs. Instead, you can migrate to Aurora MySQL 2 or RDS for MySQL 5.7 with RDS Extended Support enabled. By migrating to a managed service with RDS Extended Support rather than operating unsupported versions, you can benefit from scalability, manageability as well as security in the cloud.
Large Fleet Requirements – In large-scale environments, migrating a significant number of databases to a new version can be logistically challenging. Extended Support for MySQL 5.7 allows businesses to phase the migration process, ensuring a smooth transition without overwhelming IT resources. This phased approach enables organizations to test and validate the impact of upgrades on subsets of their fleet before completing the entire migration.
If these situations apply to you, or you can’t complete upgrades by Amazon Aurora or Amazon RDS EoS date (see the preceding images), we recommend opting in to Amazon RDS Extended Support. Starting in December, 2023, RDS Extended Support can be enabled per cluster or instance through the Amazon RDS Management Console or using the AWS CLI, or Amazon RDS APIs.
Although RDS Extended Support helps you schedule your upgrade on your own timelines, sticking with older versions indefinitely means missing out on the best price-performance for your workload. Next, we’ll highlight reasons to upgrade to MySQL 8.0.
Key benefits of upgrading to Amazon Aurora MySQL-Compatible Edition 3
MySQL 8.0 on Aurora MySQL-Compatible Edition, also known as Aurora MySQL 3, supports popular Aurora features including, Global Database, Amazon RDS Proxy, Performance Insights, Parallel Query, and Serverless v2 deployments.
Community enhancements – MySQL 8.0 includes improved performance functionality from enhancements such as instant DDL to speed up the overall process of creating and loading a table and its associated indexes and SKIP LOCKED and NOWAIT options to avoid waiting for other transactions to release row locks. MySQL 8.0 adds developer productivity features such as window functions to more easily solve query problems and common table expressions to enable use of named temporary result sets. It also includes JSON functionality additions, new security capabilities, and more. For more information, see Features from MySQL 8.0 Community Edition.
Aurora Serverless v2 – Amazon Aurora MySQL 3 (compatible with MySQL 8.0) supports Aurora Serverless v2 that scales instantly, automatically and on-demand to support the most demanding applications and delivering up to 90% cost savings compared to provisioning for peak capacity. Aurora Serverless v2 provides the full breadth of Amazon Aurora capabilities, including Multi-AZ support, Global Database, RDS Proxy, and read replicas. Amazon Aurora Serverless v2 is ideal for a broad set of applications. For example, enterprises that have hundreds of thousands of applications, or software as a service (SaaS) vendors that have multi-tenant environments with hundreds or thousands of databases, can use Aurora Serverless v2 to manage database capacity across the entire fleet.
Amazon Aurora Zero-ETL – Amazon Aurora MySQL 3 now supports zero-ETL integration with Amazon Redshift, This feature enables near real-time analytics and machine learning (ML) on petabytes of transactional data stored in Amazon Aurora. Data written into Aurora is available in Amazon Redshift within seconds, so you can quickly act on it without having to build and maintain complex data pipelines.
Amazon Aurora I/O Optimized – Amazon Aurora MySQL 3 supports Aurora I/O optimized configuration that offers improved price performance and predictable pricing and up to 40% costs savings for customers with I/O-intensive applications where I/O charges exceed 25% of the total Aurora database spend. Thus, increasing throughput and reducing latency for customers’ most demanding workloads.
AWS Graviton3 support – Amazon Aurora MySQL 3 supports AWS Graviton3-based R7g instances. These instances provide up to 30 % performance improvement and up to 20% price-performance improvement over Graviton2 instances for Aurora depending on workload, database engine and version.
Enhanced binary log (binlog) – With Aurora MySQL 3.03 version (compatible with MySQL 8.0.26) and higher, Aurora introduced an additional, more fundamental change to how binlog is written and stored. The enhanced binlog reduces the compute performance overhead caused by enabling binlog, which, in certain cases, can reach up to 50%, down to 13%. This in turn allows additional transaction processing throughput on the same hardware. The enhanced binlog also improves database recovery time by up to 99% after restarts and failovers, as compared to when native MySQL binlog is enabled.
Key benefits of upgrading to Amazon RDS for MySQL 8.0
Upgrading to Amazon RDS for MySQL 8.0 provides several advantages over sticking with MySQL 5.7, including:
Community enhancements – Allows access to new 8.0 features like atomic DDL, descendant temporary tables, new JSON functions, common table expressions (CTEs), and more. For more information, see What’s new in MySQL 8.
Better performance – 2x higher performance versus MySQL 5.7; InnoDB performance optimizations for read-write, IO-bound, and high-contention “hot spot” workloads; replication performance improvements; descending indexes; invisible indexes; cost model improvements to account for contents of the buffer pool; and Resource Groups to allow users to control and prioritize resource usage by workload.
Amazon RDS Multi-AZ with two readable standbys – Amazon RDS MySQL 8.0 supports the Multi-AZ cluster deployments. This provides automatic failover typically in under 35 seconds, up to 2x faster transaction commit latency compared to Multi-AZ with one standby, additional read capacity, and a choice of AWS Graviton2- or Intel-based instances for compute. The Amazon RDS Multi-AZ cluster deployments offers enhanced availability and durability, making it well-suited for production MySQL database workloads.
Amazon RDS Optimized Writes – RDS Optimized Writes uses faster sequential I/O for buffer flush and commit operations. Can deliver an improvement of up to 2x in write transaction throughput at no extra charge and with the same level of provisioned IOPS. Optimized Writes are a great fit for write-heavy workloads that generate lots of concurrent transactions. This includes digital payments, financial trading platforms, and online games.
Amazon RDS Optimized Reads – RDS Optimized Reads can achieve faster query processing by placing temporary tables generated by MySQL on NVMe-based SSD block storage that is physically connected to the host server. Queries that use temporary tables, such as those involving sorts, hash aggregations, high-load joins, and CTEs, can execute up to 2x faster with Optimized Reads.
AWS Graviton2 & Graviton3 support – Amazon RDS MySQL 8.0 supports Graviton2 and new Graviton3 EC2 instances. Graviton processors are custom built by AWS using 64-bit Arm Neoverse cores, and deliver several optimizations over first-generation AWS Graviton processors.
By upgrading to Amazon Aurora MySQL 3 or Amazon RDS for MySQL 8.0, you can take advantage of these optimizations and features to improve database performance, reduce costs, and enable new use cases. The community release also brings regular security and bug fixes over the life of MySQL 8.0.
Upgrade options from Amazon Aurora and Amazon RDS for MySQL 5.7 to 8.0
Upgrading from Amazon Aurora or Amazon RDS for MySQL 5.7 to MySQL 8.0 involves a major version upgrade that can contain database changes not backward-compatible with existing applications. You must manually modify your database instance to upgrade the major version. It is strongly recommended that you thoroughly test any major version upgrade on nonproduction instances before applying it to production to ensure compatibility with your applications.
You can perform an in-place upgrade of your cluster or instance from MySQL 5.7 to MySQL 8.0. This upgrade method is more straightforward since you don’t have to modify application connection strings. The in-place upgrade method is convenient. However, this process requires downtime during which applications won’t be able to establish a connection with the database. This downtime can vary depending on the properties of your schema and how busy the cluster or instance is. It’s important to be aware that upgrading from MySQL 5.7 to MySQL 8.0 through an in-place upgrade might encounter challenges due to certain incompatibilities between the two versions. For more information, see: Amazon Aurora MySQL in-place major version upgrade and Amazon RDS for MySQL upgrades.
Since database engine upgrades require downtime, using Amazon RDS Managed Blue/Green deployment is the recommended way to minimize downtime when upgrading a MySQL database instance. This involves launching a parallel ‘green’ environment with Amazon Aurora or Amazon RDS for MySQL 8.0 replicas of your MySQL 5.7 production databases. After validating the green environment, you can shift traffic over to it. Then the ‘blue’ MySQL 5.7 environment can be decommissioned. Staging the upgrade rollout in this way eliminates downtime.
In most cases, a blue/green deployment is the best option to reduce downtime when upgrading a MySQL DB cluster or instance. If you can’t use a blue/green deployment due to Aurora MySQL limitations or RDS MySQL limitations, you can use Amazon Aurora clone or Amazon RDS for MySQL read replica. This will help minimize upgrade downtime by perform upgrades and testing ahead of time.
To upgrade an Aurora cluster, create an Aurora clone with identical major and minor versions. Configure binary log replication between the original and clone clusters. After upgrading the clone to the new major version, thoroughly test all application functionality. In case of Amazon RDS instances, this involves creating a managed read replica with the same major and minor version as the primary instance, upgrading the replica to the new major version (that is, MySQL 8.0), and validating full application functionality.
Once testing is complete and you’re ready to cut over, you must stop the application’s workload (an outage) to allow replication to catch up. Then, promote the Aurora clone or RDS read replica to a standalone cluster/instance, and redirect the application to the upgraded system. For more details steps see, Performing major version upgrades for Amazon Aurora MySQL with minimum downtime and, Best practices for using a MySQL read replica to upgrade an Amazon RDS for MySQL database.
Amazon RDS Extended Support for MySQL 5.7 provides businesses the flexibility to maintain a secure and reliable database environment while they plan for future upgrades. This approach is particularly beneficial for addressing application dependencies and large fleet requirements, where migrating to MySQL 8.0 may involve complexities and logistical challenges. Upgrading to MySQL 8.0 on Amazon Aurora or Amazon RDS offers numerous advantages, including enhanced performance, advanced features, and long-term support. Considering the impact on their applications and fleet, businesses should carefully evaluate the benefits and plan a comprehensive migration strategy. Whether continuing with MySQL 5.7 or upgrading to MySQL 8.0, Amazon Aurora and Amazon RDS offer a secure and scalable cloud database environment for businesses of all sizes.
For next steps, first review the timelines (see the preceding images in section What is Amazon RDS Extended Support?) for Amazon Aurora and RDS end of standard support for MySQL 5.7. Verify that you can migrate to MySQL 8.0 by the end of standard support date for MySQL 5.7 on Amazon Aurora or Amazon RDS (see the preceding images). If migration will not finish by the respective end-of-support date, opt in to Amazon RDS Extended Support starting in December, 2023 to avoid auto-upgrade of your clusters or instances.
About the authors
Vijay Karumajji is a Principal Database Solutions Architect with Amazon Web Services. He works with our customers to provide guidance and technical assistance on database projects, helping them improve the value of their solutions when using AWS.