What is RDS PostgreSQL → Aurora PostgreSQL Migration
RDS PostgreSQL → Aurora PostgreSQL migration is the process of transitioning a PostgreSQL database that is hosted as an Amazon RDS instance to an Amazon Aurora PostgreSQL cluster. The migration preserves the schema, data, and most configuration‑related properties while replacing the underlying engine with Aurora’s cloud‑native, distributed engine.
Why migrate to Aurora PostgreSQL
- Scalability & elasticity – Aurora automatically scales storage and compute, handling spikes without manual intervention.
- High‑availability – Built‑in multi‑AZ replication provides faster fail‑over and higher fault tolerance than single‑node RDS.
- Performance – Aurora offers lower latency and higher throughput for the same instance class, often delivering 2‑5× performance gains.
- Operational efficiency – A unified platform reduces the operational surface area, simplifies patching, and lowers total cost of ownership.
- Future‑proofing – Aurora’s roadmap aligns with modern data‑platform needs, ensuring continued feature parity with PostgreSQL.
How to perform an automated migration
The automated workflow used by Netflix follows a phased approach that can be applied to any organization with similar scale and requirements.
- Phase 1 – Preparation
- Enable automated backups on the source RDS instance to provide a consistent base snapshot.
- Export the source parameter group and create an equivalent Aurora parameter group, adjusting only unsupported parameters.
- Phase 2 – Data Replication (Read‑Replica Approach)
- Create an Aurora PostgreSQL read‑replica of the RDS instance. AWS starts asynchronous WAL streaming from RDS to the replica.
- Validate that the replica is operational, can be queried, and is within an acceptable replication‑lag threshold.
- Phase 3 – Quiescence
- Stop write traffic to the source RDS instance. Netflix achieves this by detaching the instance’s security groups and rebooting the instance, guaranteeing that no new sessions can be opened.
- Monitor the
OldestReplicationSlotLagmetric. When it drops to 0 and then oscillates between 0 → 64 MiB, the replica has caught up with all meaningful WAL.
- Phase 4 – Promotion & Cutover
- Promote the Aurora read‑replica to a standalone, writable Aurora cluster.
- Update the Data Access Layer (e.g., Envoy proxy) to route traffic to the new Aurora endpoint. Because the proxy abstracts the database endpoint, no application code changes are required.
- Re‑attach the original RDS security groups (optional) and de‑provision the old RDS instance after verification.
- Phase 5 – Post‑migration verification<
- Compare key performance indicators (CPU, IOPS, query latency) against the pre‑migration baseline.
- Run application‑level smoke tests to ensure business‑critical functionality behaves as expected.
Handling Common Operational Concerns
- Zero data loss
- Minimal downtime
- Application‑agnostic cutover
- CDC and logical replication
- Rollback strategy