Amazon RDS for MySQL supports Community MySQL major versions including 5.7, 8.0, and 8.4. Major version upgrades require careful consideration and planning, but Amazon has announced long-term support for MySQL major version 8.4 on RDS for MySQL.
Amazon Elastic Compute Cloud (Amazon EC2) can be used to run the MySQL Shell upgrade checker utility on Amazon RDS for MySQL instances within the same virtual private cloud (VPC) to determine if your MySQL instances are ready to be upgraded.
The MySQL Shell upgrade checker utility runs automated checks to look for any incompatibilities or issues that would prevent an upgrade from succeeding to the specified target version of MySQL.
The precheck log files generated by the upgrade checker utility are sent to an Amazon Simple Storage Service (Amazon S3) bucket for review. This solution allows you to perform the MySQL pre-upgrade checks on multiple instances at once.
The solution requires that the RDS for MySQL instances reside within the same VPC as the EC2 instance running the MySQL Shell upgrade checker utility.
The MySQL Shell upgrade checker utility performs standard checks defined by the community but RDS runs additional checks to ensure an error-free upgrade. It is recommended to follow RDS for MySQL upgrade best practices to prevent errors during upgrading.
To use the prechecker, you will need to create an IAM role to allow the EC2 instance to connect to Amazon S3, an S3 bucket to store the precheck log files, and an EC2 instance to download MySQL Shell 8.4.
The prechecker bash script downloads the MySQL repository for Community MySQL 8.4 and installs the MySQL Shell and MySQL command line client, verifies that the EC2 instance can connect to the RDS for MySQL databases, and runs the prechecks on all databases specified by the user.
After the prechecks are completed, the results are uploaded to the specified S3 bucket for review and any errors can be resolved before attempting to upgrade the RDS for MySQL instances.
To avoid additional charges, it is important to delete the VPC endpoint, IAM roles, S3 bucket, and EC2 instance after the automatic process has concluded.