chore(aws/rds): upgrade engines to new versions

This commit is contained in:
Michele Cereda
2026-01-10 13:48:14 +01:00
parent 993c36a58e
commit 50873df617
3 changed files with 99 additions and 1 deletions

View File

@@ -817,6 +817,8 @@ Available discount options:
Order of application: reserved instances -> Savings plans (EC2 instances -> Compute)
Also check [Branko Petric's X posts] for further suggestions.
### Free Tier
**New** AWS customers get **1 year** of free tier access to **selected** services only.
@@ -1248,6 +1250,7 @@ If one can, prefer just build the image from an EC2 instance.
[aws config tutorial by stephane maarek]: https://www.youtube.com/watch?v=qHdFoYSrUvk
[AWS Fundamentals Blog]: https://awsfundamentals.com/blog
[aws savings plans vs. reserved instances: when to use each]: https://www.cloudzero.com/blog/savings-plans-vs-reserved-instances/
[Branko Petric's X posts]: https://x.com/brankopetric00
[date & time policy conditions at aws - 1-minute iam lesson]: https://www.youtube.com/watch?v=4wpKP1HLEXg
[difference in boto3 between resource, client, and session?]: https://stackoverflow.com/questions/42809096/difference-in-boto3-between-resource-client-and-session
[Gateway Endpoints vs Internet Routing for S3]: https://awsfundamentals.com/blog/gateway-endpoints-vs-internet-routing-s3
@@ -1255,7 +1258,7 @@ If one can, prefer just build the image from an EC2 instance.
[Introduction to the AWS Virtual Private Cloud (VPC) - Part 2]: https://awsfundamentals.com/blog/introduction-to-the-aws-virtual-private-cloud-vpc-part-2
[Introduction to the AWS Virtual Private Cloud (VPC) - Part 3]: https://awsfundamentals.com/blog/amazon-vpc-introduction-part-3
[Learn AWS]: https://www.learnaws.org/
[The $1,000 AWS mistake]: https://www.geocod.io/code-and-coordinates/2025-11-18-the-1000-aws-mistake/
[using aws kms via the cli with a symmetric key]: https://nsmith.net/aws-kms-cli
[VPC Endpoints: Secure and Direct Access to AWS Services]: https://awsfundamentals.com/blog/vpc-endpoints
[What Is OIDC and Why Do We Need It?]: https://awsfundamentals.com/blog/oidc-introduction
[The $1,000 AWS mistake]: https://www.geocod.io/code-and-coordinates/2025-11-18-the-1000-aws-mistake/

View File

@@ -17,6 +17,9 @@
1. [Multi-AZ instances](#multi-az-instances)
1. [Converting instances between Multi-AZ and Single-AZ](#converting-instances-between-multi-az-and-single-az)
1. [Operations](#operations)
1. [Upgrade the engine version](#upgrade-the-engine-version)
1. [Upgrade to a new major version](#upgrade-to-a-new-major-version)
1. [Upgrade to a new minor version](#upgrade-to-a-new-minor-version)
1. [PostgreSQL: reduce allocated storage by migrating using transportable databases](#postgresql-reduce-allocated-storage-by-migrating-using-transportable-databases)
1. [Stop instances](#stop-instances)
1. [Cancel pending modifications](#cancel-pending-modifications)
@@ -151,6 +154,20 @@ aws rds cancel-export-task --export-task-identifier 'my_export'
# Change the storage type.
aws rds modify-db-instance --db-instance-identifier 'instance-name' --storage-type 'gp3' --apply-immediately
# Show available upgrade target versions for a given DB engine version.
aws rds describe-db-engine-versions --engine 'postgres' --engine-version '13' \
--query 'DBEngineVersions[*].ValidUpgradeTarget[*]'
aws rds describe-db-engine-versions --engine 'postgres' --engine-version '13.12' \
--query 'DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}[?AutoUpgrade==`true`][]'
# Start upgrading.
# Requires downtime.
aws rds modify-db-instance --db-instance-identifier 'my-db-instance' \
--engine-version '14.15' --allow-major-version-upgrade --no-apply-immediately
aws rds modify-db-instance --db-instance-identifier 'my-db-instance' \
--engine-version '14.20' --apply-immediately
```
</details>
@@ -600,6 +617,72 @@ deletes only the secondary instance and volumes. The change does **not** typical
## Operations
### Upgrade the engine version
> [!caution]
> Database engine upgrades require downtime.<br/>
> Minimize the downtime by using a blue/green deployment.
In general, **major** engine version upgrades can introduce breaking changes.<br/>
**Minor** version upgrades usually only include changes that are backward-compatible with existing applications.
At the time of writing, multi-AZ DB clusters only support major version upgrades of PostgreSQL.<br/>
Minor version upgrades are supported for **all** engines.
> [!important]
> One **cannot** modify a DB instance when it is being upgraded.
>
> During an engine upgrade, the DB instance status changes to `upgrading`.<br/>
> This prevents further changes to the instance while the process is being carried out.
#### Upgrade to a new major version
Manually modify a DB engine version through the Console, CLI, or RDS API:
```sh
# Show available upgrade target versions for a given DB engine version.
aws rds describe-db-engine-versions \
--engine 'postgres' --engine-version '13' \
--query 'DBEngineVersions[*].ValidUpgradeTarget[*]'
# Start upgrading.
aws rds modify-db-instance --db-instance-identifier 'my-db-instance' \
--engine-version '14.15' --allow-major-version-upgrade --no-apply-immediately
aws rds modify-db-instance … --apply-immediately
```
#### Upgrade to a new minor version
Either:
- Manually modify a DB engine version through the Console, CLI, or RDS API:
```sh
# Show available automatic minor upgrade target versions for a given DB engine version.
aws rds describe-db-engine-versions \
--engine 'postgres' --engine-version '13' \
--query 'DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}[?AutoUpgrade==`true`][]'
# Start upgrading.
aws rds modify-db-instance --db-instance-identifier 'my-db-instance' --engine-version '14.20' --no-apply-immediately
aws rds modify-db-instance … --apply-immediately
```
- Enable automatic updates for the instance.
Unless changes are applied immediately, RDS schedules the upgrade to run automatically in the preferred maintenance
window.
Automatic upgrades incur downtime too.<br/>
The length of the downtime depends on various factors, including the DB engine type and the size of the database.
During the upgrade, RDS:
1. Runs a system pre-check to make sure the database can be upgraded.
1. Upgrades the DB engine to the target minor engine version.
1. Runs post-upgrade checks.
1. Marks the database upgrade as complete.
### PostgreSQL: reduce allocated storage by migrating using transportable databases
Refer [Migrating databases using RDS PostgreSQL Transportable Databases],