Skip to content

Why did I get an error when I changed or scaled the instance class of my Amazon Aurora MySQL DB instance?

5 minute read
0

When I try to scale my Amazon Aurora MySQL-Compatible Edition DB instance or change the instance class, I receive an error.

Short description

When you change the instance class of an Aurora MySQL-Compatible DB instance, you might receive one of the following errors:

  • "Cannot modify the instance class because there are no instances of the requested class available in the current instance's availability zone. Please try your request again at a later time"
  • "Cannot find version abc for aurora-mysql"
  • "RDS does not support creating a DB instance with the following combination"

To troubleshoot this issue, take the following actions based on the error that you receive.

Resolution

Note: If you receive errors when you run AWS Command Line Interface (AWS CLI) commands, then see Troubleshooting errors for the AWS CLI. Also, make sure that you're using the most recent AWS CLI version.

Before you troubleshoot the error, it's a best practice to run your DB clusters on the latest engine version, or use long-term support (LTS) versions. Newer engine versions provide fixes to improve security, stability, and instance availability.

To check your DB cluster version, open the Amazon Relational Database Service (Amazon RDS) console and check the value under Engine version. If your DB cluster runs on Aurora MySQL version 3, then use the default version 3.05.2 or the LTS version 3.04.1.

Note: If your DB cluster runs on Aurora MySQL version 2, then you can only use Amazon RDS Extended Support for 2.11 and 2.12 minor versions. Version 2.11.5 is the default.

After you upgrade the engine version, install the operating system (OS) upgrades on the instances in your DB cluster. Create an Aurora clone to test the database upgrades. Some AWS Regions or Availability Zones might not be available in previous instance classes such as T2 or R3. It's a best practice to use newer instance classes such as T3 and R5.

Cannot modify the instance class

The Cannot modify the instance class error occurs when the Availability Zone doesn't have enough on-demand capacity for the instance class that you chose. To resolve this issue, wait a few minutes, and then modify the instance class again. This error also occurs if the instance class isn't available for your Aurora engine and version in the Availability Zone that the instance runs on.

To identify the Availability Zones that allow your engine, engine version, and instance class, run the following describe-orderable-db-instance-options AWS CLI command:

aws rds describe-orderable-db-instance-options --engine engine_name --engine-version engine_version --db-instance-class instance-class --query 'OrderableDBInstanceOptions[].AvailabilityZones'

Note: Replace engine-name with your Aurora engine, engine-version with the engine version, and instance-class with the instance class.

Cannot find version

The Cannot find version error occurs when you use the AWS CLI to modify the instance class with a deprecated or incorrect version.

To get the version number for the DB instance in your Aurora MySQL DB cluster, run the following query:

SELECT @@AURORA_VERSION;

To check your DB cluster engine version, log in to the cluster, and then run the following describe-db-clusters command:

aws rds describe-db-clusters \
--db-cluster-identifier example-cluster-identifier \
--query 'DBClusters[].EngineVersion' \
--output text \
--region Region-example

Note: Replace example-cluster-identifier with your cluster identifier or ARN, and replace Region-example with your Region.

To upgrade the DB cluster engine, run the following apply-pending-maintenance-action command:

aws rds apply-pending-maintenance-action --resource-identifier example-ARN --apply-action system-update --opt-in-type immediate

Note: Replace example-ARN with the DB cluster ARN.

RDS does not support creating a DB instance with the following combination

If you upgrade to the db.r4 instance family, but the DB cluster runs a previous version of Aurora, then you receive the following error code:

"DBInstanceClass=db.r4.large, Engine=aurora-mysql, EngineVersion=8.0.mysql_aurora.3.05.2, LicenseModel=general-public-license."

You can use the db.r4 instance family only in 2.x versions, not in 3.x versions. You also can't run Optimized Reads instance classes on Aurora MySQL-Compatible. If you try to upgrade to the r6gd or db.r6id instance class family, then you receive the following error code:

"DBInstanceClass=db.r6gd.xlarge, Engine=aurora-mysql, EngineVersion=8.0.mysql_aurora.3.07.1, LicenseModel=general-public-license."

If you upgrade to the db.r8 instance family, but the DB instance runs on a previous version of Aurora, then you receive the following error code:

"DBInstanceClass=db.r8g.large, Engine=aurora-mysql, EngineVersion=8.0.mysql_aurora.3.05.2, LicenseModel=general-public-license."

The db.r8 instance family isn't available in all Aurora versions. For example, you can use the db.r5.8xlarge instance class only in Aurora version 3.08.0 and higher. Or, you can use db.r7i only on version 3.08.0 and higher. However, you can use db.r7g on version 2.12.0 and higher, and version 3.03.1 and higher.

To identify the engine version that allows your engine and instance class combination, run the following describe-orderable-db-instance-options command:

aws rds describe-orderable-db-instance-options --engine example-engine --db-instance-class example-instance-class --query 'OrderableDBInstanceOptions[].EngineVersion'

Note: Replace example-engine with your engine and example-instance-class with your instance class.

Related information

DB instance class types

AWS OFFICIALUpdated 3 months ago