Comparison points
| Area | Questions to ask each service |
|---|---|
| Storage architecture | Standard volumes with replicas, or shared distributed storage (Aurora, AlloyDB, OCI)? Impacts failover time, replica lag, I/O pricing |
| HA | Same-zone or cross-zone standby? Synchronous? Failover time? |
| Read scaling | How many read replicas; lag characteristics |
| Extensions | Is every extension you use supported (PostGIS, pgvector, pg_partman, pg_cron, TimescaleDB)? |
| Versions | How fast are new major versions available; how long are old ones supported (extended support fees?) |
| Upgrades | In-place major upgrade, blue/green, downtime |
| Access | No true superuser; which roles/functions are available |
| Logical replication/CDC | Supported for Debezium/DMS? Slot failover on HA? |
| Networking | Private endpoints, VNet/VPC integration |
| Pricing model | Instance + storage + I/O + backup; serverless options |
Typical fits
| Situation | Often a good fit |
|---|---|
| AWS, standard workload | RDS for PostgreSQL |
| AWS, high read scaling or fast failover, heavy I/O | Aurora PostgreSQL (compare I/O-Optimized pricing) |
| Azure | Azure Database for PostgreSQL Flexible Server |
| GCP, analytics-heavy mixed workloads | AlloyDB; Cloud SQL for standard use |
| OCI-centric estates | OCI Database with PostgreSQL |
Test before choosing
- Restore a copy of production data; run a realistic load test.
- Trigger failover; measure downtime and connection recovery.
- Run a major version upgrade path on a copy.
- Verify extensions, logical replication and monitoring integrations.
- Model monthly cost with your I/O and storage pattern.
Operational design regardless of service
- Connection pooling (built-in PgBouncer options or self-managed).
- Parameter groups/server parameters under version control.
- Backups and PITR retention per RPO; cross-region copies for DR.
- Maintenance windows and minor version policy.
Tip
Extensions are the most common blocker. Run
SELECT extname, extversion FROM pg_extension;in every source database and check each against the target service's supported list first.
Checklist
- Extensions and versions inventoried
- HA, replication and CDC needs listed
- Services compared on the table above
- Load, failover and upgrade tested
- Cost modelled with real I/O
- Pooling, parameters and backups designed