AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
How do I opt in to Amazon RDS Extended Support for existing DB instances or DB clusters?
You can now modify the Extended Support enrollment on your existing Amazon RDS DB instances and Amazon Aurora DB clusters directly using the AWS CLI or API. This article explains how to enable (opt in) or disable (opt out) Extended Support for existing resources.
Description
Amazon RDS Extended Support provides up to 3 years of additional critical security and bug fixes after a major engine version reaches its RDS end of standard support date. Previously, the --engine-lifecycle-support parameter was only available at instance creation or restore time. To change the Extended Support enrollment on an existing database, customers had to:
- Upgrade to a newer major engine version still under standard support
- Delete the instance and recreate it with the desired setting
- Restore from a snapshot with the desired setting
With the new modify-db-instance and modify-db-cluster API support, you can now change the EngineLifecycleSupport setting directly on running databases — no downtime, no recreation required. This applies to RDS for MySQL, RDS for PostgreSQL, Aurora MySQL, and Aurora PostgreSQL.
Resolution
Prerequisites
Upgrade to AWS CLI version 2.35.24 or later. For installation instructions, see Installing or updating to the latest version of the AWS CLI.
Understanding the default behavior for existing instances
The default value of EngineLifecycleSupport depends on how the resource was created:
- AWS Management Console: Extended Support is not selected by default (
open-source-rds-extended-support-disabled). - AWS CLI, RDS API, and CloudFormation: The default is
open-source-rds-extended-support(enabled) when the parameter is not explicitly specified.
For more details, see Creating a DB instance with RDS Extended Support settings.
You can check the current enrollment status of an existing instance by running:
aws rds describe-db-instances \ --db-instance-identifier <your-instance-identifier> \ --query "DBInstances[0].EngineLifecycleSupport" \ --output text
This returns either open-source-rds-extended-support (enrolled) or open-source-rds-extended-support-disabled (not enrolled).
Opt in to Extended Support
To enroll an existing DB instance in Extended Support, run:
aws rds modify-db-instance \ --db-instance-identifier my-instance \ --engine-lifecycle-support open-source-rds-extended-support
For Amazon Aurora DB clusters, run:
aws rds modify-db-cluster \ --db-cluster-identifier my-cluster \ --engine-lifecycle-support open-source-rds-extended-support
Note: For DB clusters, modifying the cluster automatically updates all instances in that cluster. You cannot modify
EngineLifecycleSupporton individual Aurora member instances — callingmodify-db-instancewith this parameter on a cluster member is rejected withInvalidParameterCombination. You must usemodify-db-clusterinstead.
The change takes effect immediately and is reflected in the EngineLifecycleSupport field of your DB instance or DB cluster.
Opt out of Extended Support
To disable Extended Support enrollment on an existing instance:
aws rds modify-db-instance \ --db-instance-identifier my-instance \ --engine-lifecycle-support open-source-rds-extended-support-disabled
This is a non-disruptive, metadata-only change that does not require a restart.
⚠️ Important: If your database is running a major engine version that has already passed its end of standard support date and you opt out of Extended Support, RDS will automatically upgrade your database to the next supported major version. Ensure your application is compatible with the target major version before opting out.
Check enrollment status across your fleet
To view the Extended Support enrollment status for all your DB instances:
aws rds describe-db-instances \ --query "DBInstances[*].[DBInstanceIdentifier,Engine,EngineVersion,EngineLifecycleSupport]" \ --output table
For Aurora DB clusters:
aws rds describe-db-clusters \ --query "DBClusters[*].[DBClusterIdentifier,Engine,EngineVersion,EngineLifecycleSupport]" \ --output table
Bulk modify Extended Support for a large number of instances
If you have many DB instances to modify, use the following script to apply the change in bulk.
Opt in all instances running a specific engine and major version:
#!/bin/bash # Opt in all MySQL 8.0 instances to Extended Support ENGINE="mysql" ENGINE_VERSION_PREFIX="8.0" TARGET_LIFECYCLE="open-source-rds-extended-support" INSTANCES=$(aws rds describe-db-instances \ --query "DBInstances[?Engine=='${ENGINE}' && starts_with(EngineVersion, '${ENGINE_VERSION_PREFIX}') && EngineLifecycleSupport!='${TARGET_LIFECYCLE}'].DBInstanceIdentifier" \ --output text) for INSTANCE in $INSTANCES; do echo "Modifying instance: $INSTANCE" aws rds modify-db-instance \ --db-instance-identifier "$INSTANCE" \ --engine-lifecycle-support "$TARGET_LIFECYCLE" done echo "Done. Modified $(echo $INSTANCES | wc -w) instance(s)."
Opt in all Aurora clusters running a specific engine and major version:
#!/bin/bash # Opt in all Aurora PostgreSQL 16.x clusters to Extended Support ENGINE="aurora-postgresql" ENGINE_VERSION_PREFIX="16" TARGET_LIFECYCLE="open-source-rds-extended-support" CLUSTERS=$(aws rds describe-db-clusters \ --query "DBClusters[?Engine=='${ENGINE}' && starts_with(EngineVersion, '${ENGINE_VERSION_PREFIX}') && EngineLifecycleSupport!='${TARGET_LIFECYCLE}'].DBClusterIdentifier" \ --output text) for CLUSTER in $CLUSTERS; do echo "Modifying cluster: $CLUSTER" aws rds modify-db-cluster \ --db-cluster-identifier "$CLUSTER" \ --engine-lifecycle-support "$TARGET_LIFECYCLE" done echo "Done. Modified $(echo $CLUSTERS | wc -w) cluster(s)."
Tips:
- Change
TARGET_LIFECYCLEtoopen-source-rds-extended-support-disabledto opt out in bulk instead.- Adjust
ENGINEandENGINE_VERSION_PREFIXto match your target engine (e.g.,postgres/15,mysql/8.0).- For Aurora clusters, modifying the cluster applies the setting to all instances in that cluster — you cannot modify
EngineLifecycleSupporton individual Aurora member instances (the API rejects it withInvalidParameterCombination).- These modifications are metadata-only and non-disruptive (no restart or failover).
- To run across multiple AWS accounts or regions, wrap the script in additional loops or use AWS Organizations with a StackSet/Config rule.
What happens after the end of standard support date
| Scenario | EngineLifecycleSupport | Outcome after end of standard support |
|---|---|---|
| Existing instances | open-source-rds-extended-support-disabled (disabled) | Automatically upgraded to the next major version |
| Existing instances | open-source-rds-extended-support (enabled) | Remains on the current major version with Extended Support; minor version upgrades still apply |
| Creating a new instance | open-source-rds-extended-support-disabled (disabled) | Creation fails with InvalidParameterCombination — you must use open-source-rds-extended-support to create on a version past its end of standard support |
| Creating a new instance | open-source-rds-extended-support (enabled, default for CLI/API/CFn) | Enrolled in Extended Support (additional charges apply) |
Important considerations
- Additional charges apply when Extended Support is active and you are running a database on a major engine version past the end of standard support date. However, enrolling in Extended Support before the end of standard support date incurs no extra cost. For pricing details, see Amazon RDS Extended Support pricing.
- Supported engines: RDS for MySQL, RDS for PostgreSQL, Aurora MySQL, and Aurora PostgreSQL.
- To enforce a consistent
EngineLifecycleSupportpolicy across your fleet, consider using an AWS Config rule to check and remediate the setting across all instances. - You can script bulk modifications using the AWS CLI to apply the change across multiple instances.
Related information
- Topics
- Database
- Language
- English
Relevant content
asked 3 years ago
