Skill 62 · Amazon Aurora PostgreSQL
Subchapter 62.15
references/express-create-migration.mdMarkdown7 KBView on GitHub
This file covers moving an Aurora Express Configuration cluster to Full Configuration — for example, when the workload outgrows the public-endpoint connectivity model, or when VPC isolation, customer-managed KMS keys, or customer-owned parameter groups become requirements. There is no in-place modify operation to move an express cluster into a VPC, so migration is a data-movement story. AWS documents snapshot/PITR restore from an express cluster to a full-configuration cluster (see “Restoring a cluster created through express configuration”).
Express Configuration mechanics may evolve. Verify in the AWS User Guide before migrating, especially for production-adjacent clusters.
AWS provides no modify-db-cluster operation that flips an express cluster into a customer VPC — no “convert to VPC-attached Full Configuration” button or call. What AWS does document is restoring out of the express flow: a snapshot or point-in-time restore lands in a full-configuration VPC cluster by default. If AWS later publishes in-place conversion (a modify flag or wizard), update this file.
Pick the path that matches your cluster size, downtime tolerance, and connectivity:
Best for most migrations, especially with a short maintenance window.
KMS: an Express cluster is encrypted at rest with an AWS owned key (SSE-RDS), which customers cannot view or manage. If the target must use a customer-managed KMS key, snapshot-and-restore with a key change is the standard Aurora pattern. Source: Copying an encrypted snapshot to a different KMS key (opens in a new tab). Verify in the AWS User Guide.
Engine version: restore must target a version supported for restore from the source snapshot. The express flow applies the AWS default engine version; if the target needs a different major version, route the user to aurora-upgrade-advisor for post-restore upgrade planning.
Downtime scales with cluster size; the application is unavailable from when writes stop until cutover.
Best for migrations with strict downtime targets, typically production-adjacent workloads.
Prerequisites:
wal_level = logical, max_replication_slots, and max_wal_senders on the source. Whether the Express flow permits these changes is subject to change — verify in the AWS User Guide.Downtime shrinks to the cutover moment (seconds to a few minutes), not the full data copy time.
Best for small datasets where a maintenance window is acceptable. Full steps, commands, and considerations: migration-pgdump.md. Downtime is dump + restore time, scaling roughly linearly with data size; for anything larger than a dev dataset, Path 1 or Path 2 is usually better.
| Factor | Snapshot-and-restore | Logical replication | pg_dump / pg_restore |
|---|---|---|---|
| Cluster size | Any | Any | Small |
| Downtime tolerance | Minutes to hours | Seconds | Minutes to hours |
| Connectivity complexity | Low (AWS-managed) | Higher (orchestrator must reach both) | Medium (client must reach both) |
| KMS-key change | Natively supported via snapshot copy | Possible (target chooses its KMS key) | Possible (target chooses its KMS key) |
| Compliance fit | Good with a maintenance window | Good for production with strict downtime | Best for small/dev datasets |
When in doubt, start with Path 1: most broadly documented and fastest for most Express clusters (which tend to be small and dev-shaped).
Before executing any path, verify in the AWS Aurora User Guide:
restore-db-cluster-from-snapshot or restore-db-cluster-to-point-in-time without EnableVPCNetworking/EnableInternetAccessGateway) lands in a full-configuration VPC cluster; restoring back to express requires VPCNetworkingEnabled=false and InternetAccessGatewayEnabled=true. Verify the restore-target constraints (engine version, KMS, storage type).wal_level = logical, max_replication_slots, max_wal_senders).Do not skip verification for production-adjacent clusters. The AWS User Guide is authoritative; this file is a planning aid.
Links for each step appear inline above. Additional references: