Cost of running a small Postgres on each provider in 2026
Same Postgres workload — 2 vCPU, 8 GB RAM, 200 GB SSD, daily backups, high availability — priced across AWS RDS, GCP Cloud SQL, Hetzner, DO, Vultr, Linode.
Postgres is the most common stateful workload in cloud. Most teams pay 3-5x more for it than they need to, because the managed-database conversation collapses around "RDS or DIY" without anyone running the actual numbers.
Let's spec out a real production-grade small Postgres and price it across providers, on three configurations: managed, self-hosted with HA, self-hosted single-node.
The workload spec
- Postgres 16
- 2 vCPU, 8 GB RAM
- 200 GB SSD, ~6000 IOPS sustained
- Daily backups, 7-day retention
- One read replica (for HA + read scaling)
- Cross-AZ failover capability
- Encryption at rest
- 10 GB/month outbound traffic (replication + queries from app)
This is a typical "small SaaS production DB" — handles a few thousand users, modest read/write rates.
Managed option: AWS RDS
- RDS Postgres, db.t4g.large (2 vCPU, 8 GB), single-AZ Multi-AZ: $0.157/hour = $114.61/month
- Multi-AZ deployment (primary + standby): $0.315/hour = $229.22/month
- Plus one read replica db.t4g.large: $0.157/hour = $114.61/month
- 200 GB gp3 storage on primary: $16/month
- 200 GB gp3 storage on read replica: $16/month
- Backups (7 day retention, ~150 GB): ~$15/month above free quota
- Cross-AZ data transfer: ~$10/month
RDS Multi-AZ + read replica total: ~$400/month.
1-year reserved discount: ~$280/month. 3-year: ~$200/month.
Managed option: GCP Cloud SQL
- db-custom-2-8192 with HA enabled (zonal failover): ~$210/month
- One read replica: ~$105/month
- 200 GB SSD: ~$34/month (storage on both primary and replica)
- Backups: included in HA pricing
- Network egress: ~$1/month
Cloud SQL HA + replica total: ~$350/month.
Managed option: Azure Database for PostgreSQL Flexible Server
- Standard_D2ds_v4 (2 vCPU, 8 GB), HA enabled (zonal redundant): ~$280/month
- One read replica: ~$140/month
- 200 GB SSD storage on both: ~$50/month
- Backups: 100% storage size free
Azure Flexible Server HA + replica total: ~$470/month. Most expensive of the managed options.
DIY: Hetzner CCX13 + replica
- 2 × Hetzner CCX13 (4 vCPU AMD EPYC, 16 GB RAM, 160 GB NVMe): 2 × €30 = €60/month
- Plus a Hetzner Storage Box for offsite backup (100 GB): €3.20/month
- Plus a Hetzner Backup feature for the VMs (auto snapshots): 20% of VM price = €12/month
- Egress: free under 20 TB/VM
Total: ~€75/month (~$80/month).
That's 5x cheaper than AWS RDS Multi-AZ + replica, with twice the CPU and twice the RAM. The catch: you operate Postgres yourself. Streaming replication setup, pgBackRest or Barman for PITR, monitoring with prometheus-postgres-exporter, alerting on replication lag, etc.
Estimated operational overhead: 4-8 hours/month for a competent operator. Initial setup: 1-2 days.
DIY: DigitalOcean Premium AMD Droplet + replica
- 2 × s-2vcpu-8gb-amd: 2 × $42 = $84/month
- 200 GB block storage volume on each: 2 × $20 = $40/month
- Backups (auto snapshot service): 20% of VM cost = $17/month
Total: ~$141/month.
DIY: Vultr High Performance + replica
- 2 × Optimized Cloud Compute General Purpose (2 vCPU, 8 GB, 100 GB NVMe): 2 × $24 = $48/month
- Plus a 200 GB block storage volume on each: 2 × $10 = $20/month
- Backup: included
Total: ~$68/month.
DIY: Linode Dedicated CPU + replica
- 2 × g6-dedicated-2 (2 vCPU dedicated, 4 GB RAM — note Linode dedicated is smaller RAM per vCPU): 2 × $36 = $72/month — but you'd need to step up to g6-dedicated-4 for 8 GB RAM: 2 × $72 = $144/month
- Plus 200 GB block storage: 2 × $20 = $40/month
- Backup add-on: 30% of VM cost
Total: ~$240/month at the right RAM tier.
Managed-Postgres specialist: Aiven, Crunchy Bridge, Neon
For teams that want managed but don't want hyperscaler pricing:
- Aiven Postgres Business-4 (2 vCPU, 4 GB): ~$150/month with HA + 1 read replica + backups. Higher tiers around $300/month for 8 GB.
- Crunchy Bridge Small (2 vCPU, 4 GB): ~$120/month, HA add-on $60.
- Neon serverless: very different pricing model based on compute-hours. Can be $50-100/month for low-write workloads.
- Supabase Pro: $25/month + compute usage. Postgres with extras (auth, edge functions). Cheapest fully-managed for early-stage.
The summary table
| Option | $/month | Ops cost |
|---|---|---|
| AWS RDS Multi-AZ + replica | $400 (list) / $280 (1y) | Zero |
| GCP Cloud SQL HA + replica | $350 | Zero |
| Azure Flexible Server HA + replica | $470 | Zero |
| Aiven Postgres | $150-300 | Zero |
| Crunchy Bridge | $180 | Zero |
| Supabase Pro | $25-100 | Zero |
| DIY Hetzner CCX13 + replica | $80 | 4-8 hrs/month |
| DIY Vultr + replica | $68 | 4-8 hrs/month |
| DIY DO + replica | $141 | 4-8 hrs/month |
| DIY Linode (right-sized) + replica | $240 | 4-8 hrs/month |
The honest decision
For a small production workload (under ~$100K MRR), the math:
- RDS Multi-AZ + replica at $400/month vs DIY Hetzner at $80/month = $320/month delta = $3,840/year.
- Operational overhead at 6 hrs/month × $100/hr = $600/year.
- Net saving: $3,200/year.
If your engineering hour costs ~$100/hr and you can absorb 6 hours/month of Postgres ops, DIY pays. If you can't, managed is right.
For mid-stage startups, the Postgres specialist providers (Aiven, Crunchy Bridge) are the sweet spot — they're priced 30-50% under RDS, are fully managed, and handle the operational details for you.
To compare instance economics for self-hosted Postgres workers, the cloudprice catalogue filters by vCPU and RAM to find equivalent sizes. AWS vs Hetzner side-by-side is the most informative for DB workloads since the gap is largest there.