All skills

Advises on Amazon RDS open-source engines (MySQL, MariaDB, PostgreSQL) for instance creation, upgrade planning, commitment pricing, proxy evaluation, and Blue/Green deployments. Handles any RDS MySQL, MariaDB, or PostgreSQL question, including create a production-ready RDS MySQL instance, provision an RDS PostgreSQL database, run the RDS upgrade advisor for my RDS MySQL instance, what are my upgrade options, upgrade RDS MariaDB from 10.6 to the latest version, should I buy reserved instances or a savings plan for db.r7g.2xlarge RDS MySQL, change a VARCHAR to INT column on RDS MySQL 8.0 with Blue/Green, and does RDS Proxy help when PgBouncer already runs in transaction mode. Covers instance creation with production best practices, describe-db-instances and describe-db-engine-versions upgrade-target workflow, live prechecks via SSM or direct connection, RI versus DSP commitment pricing, RDS Proxy versus PgBouncer, and Blue/Green lifecycle with binlog replay compatibility.

Use this Skill: https://skilld.dev/gh/aws/agent-toolkit-for-aws/rds-oss

This session only. Nothing lands on disk.

referencesupgrade-post-checklist.md

≈1.5k tokens on demand. Your agent reads this file only when SKILL.md points to it.

RDS Post-Upgrade Checklist — MySQL, MariaDB, PostgreSQL

Step 1: Verify the Upgrade Completed Successfully

aws rds describe-db-instances \
  --db-instance-identifier <instance-id> \
  --query "DBInstances[0].{EngineVersion:EngineVersion,DBInstanceStatus:DBInstanceStatus,DBParameterGroups:DBParameterGroups[0].{Name:DBParameterGroupName,Status:ParameterApplyStatus}}" \
  --region <region>

Confirm:

  • EngineVersion matches the target version
  • DBInstanceStatus is available
  • Parameter group status is in-sync (if pending-reboot, reboot the instance)

Step 2: Verify Application Connectivity and Query Performance

Connect to the instance and confirm basic operations work:

MySQL/MariaDB:

SELECT VERSION();
SHOW DATABASES;
SELECT 1;

PostgreSQL:

SELECT version();
\l
SELECT 1;

Check that:

  • Connection succeeds (for MySQL 8.0: auth plugin may have changed to caching_sha2_password — older clients may need --default-auth=mysql_native_password)
  • All expected databases are present
  • Key application queries return expected results

If you observe query performance regressions at this step, table statistics may be stale. The new optimizer in the target version relies more heavily on accurate statistics. You can refresh statistics for the affected tables:

MySQL/MariaDB:

ANALYZE TABLE schema_name.table_name;

PostgreSQL:

ANALYZE schema_name.table_name;

Note: ANALYZE TABLE and OPTIMIZE TABLE are expensive operations. Do NOT run them blanket across all tables while production traffic is active. Target only the tables where you observe performance issues, and run during a low-traffic window.

Step 3: Verify Application Connectivity

Beyond basic database connectivity, verify that your actual application connects and operates correctly against the upgraded instance:

  • Point your application (or a staging/canary instance) at the upgraded database
  • Confirm the application driver is compatible with the new engine version — auth plugin changes (MySQL 8.0: caching_sha2_password), TLS negotiation, and connection pooling behavior may differ
  • Run key application workflows end-to-end (reads, writes, transactions)
  • Check application logs for connection errors, query failures, or unexpected behavior
  • If using connection pooling (HikariCP, PgBouncer, ProxySQL), verify pools reconnected and are healthy

Step 4: Verify Parameter Group Settings

If you created a custom parameter group to preserve previous behavior, confirm the key settings took effect:

MySQL (5.7 → 8.0):

SELECT @@character_set_server, @@collation_server, @@sql_mode, @@innodb_strict_mode;

PostgreSQL:

SHOW server_encoding;
SHOW lc_collate;
SHOW work_mem;
SHOW shared_buffers;

If you used the default parameter group for the target family, these will be the new version's defaults — verify your application handles them correctly.

Step 5: Check for Query Plan Changes

The optimizer in the target version may choose different execution plans. Run EXPLAIN on your most critical queries and compare with pre-upgrade behavior:

MySQL/MariaDB:

EXPLAIN FORMAT=JSON SELECT ... ;

Watch for (MySQL 8.0):

  • Hash joins replacing nested loop joins (new in 8.0 — usually faster, but verify)
  • GROUP BY results no longer implicitly sorted — add explicit ORDER BY if your app relied on this
  • Index choices may differ due to updated cost model

PostgreSQL:

EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) SELECT ... ;

Watch for (PG 15+):

  • work_mem per-operation accounting changes
  • Memoize nodes on nested loops (PG 14+)
  • Parallel query threshold changes

Step 6: Verify Audit and Access Logging

Parameter group changes during an upgrade can reset logging settings. After the upgrade, confirm logging is still enabled:

  • MySQL/MariaDB: audit plugin still active; general_log and slow_query_log settings preserved
  • PostgreSQL: pgaudit extension settings, log_connections, log_disconnections preserved
  • All engines: CloudTrail is still capturing RDS API calls for the account/region

Step 7: Monitor CloudWatch Metrics

Monitor these CloudWatch metrics for the first 24-48 hours post-upgrade. These apply to all RDS engines (MySQL, MariaDB, PostgreSQL):

  • CPUUtilization — should be comparable to pre-upgrade baseline
  • DatabaseConnections — confirm apps reconnected successfully
  • ReadIOPS — watch for unexpected spikes indicating plan regressions
  • WriteIOPS — watch for unexpected spikes
  • FreeableMemory — the new version may use memory differently
  • FreeStorageSpace — upgrade process may temporarily consume extra storage
aws cloudwatch get-metric-statistics \
  --namespace AWS/RDS \
  --metric-name CPUUtilization \
  --dimensions Name=DBInstanceIdentifier,Value=<instance-id> \
  --start-time <start> --end-time <end> \
  --period 300 --statistics Average \
  --region <region>

If any metric shows a significant regression compared to pre-upgrade baseline, investigate before considering the upgrade successful.

Step 8: Clean Up

Only proceed with cleanup after you have confirmed the upgrade was successful and you do not observe any performance or operational regressions. Keep the pre-upgrade snapshot and old Blue/Green environment available as a rollback option until you are fully confident.

Once confirmed:

  • Delete the pre-upgrade snapshot (it incurs storage charges)
  • Delete any test instances created during pre-upgrade validation
  • If Blue/Green was used: delete the old blue environment and the Blue/Green deployment
# Delete old snapshot (only after confirming upgrade success)
aws rds delete-db-snapshot \
  --db-snapshot-identifier <instance-id>-pre-upgrade-snapshot \
  --region <region>

Source: SKILL.md on GitHub

No alerts3mo3 checks · Risk SAFE
  • Gen Agent Trust Hub3mo

    This skill is a specialized advisor for Amazon RDS open-source engines, providing workflows for resource provisioning, upgrades, and cost optimization. It adheres to security best practices by enforcing encryption, multi-factor availability, and secure credential management via AWS Secrets Manager. No malicious patterns were identified.

  • Socket3mo

    No alerts

  • Snyk3mo

    Risk: LOW · No issues

Signed by skilld at aea59f3. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 3 months ago
version
1

README badge

README badge for aws/agent-toolkit-for-aws/rds-oss