Skip to content

How do I opt in to Amazon RDS Extended Support for existing DB instances or DB clusters?

6 minute read
Content level: Advanced
0

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 EngineLifecycleSupport on individual Aurora member instances — calling modify-db-instance with this parameter on a cluster member is rejected with InvalidParameterCombination. You must use modify-db-cluster instead.

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_LIFECYCLE to open-source-rds-extended-support-disabled to opt out in bulk instead.
  • Adjust ENGINE and ENGINE_VERSION_PREFIX to 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 EngineLifecycleSupport on individual Aurora member instances (the API rejects it with InvalidParameterCombination).
  • 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

ScenarioEngineLifecycleSupportOutcome after end of standard support
Existing instancesopen-source-rds-extended-support-disabled (disabled)Automatically upgraded to the next major version
Existing instancesopen-source-rds-extended-support (enabled)Remains on the current major version with Extended Support; minor version upgrades still apply
Creating a new instanceopen-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 instanceopen-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 EngineLifecycleSupport policy 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

AWS
EXPERT

published 2 months ago825 views