Lesson 16 of 16

Choosing a Managed PostgreSQL: A Decision Framework and Cost Model

Applies to PostgreSQL 13–17 Last reviewed Jun 2026 Grounded in source

The one thing to understand first

There is no “best” managed PostgreSQL — only the best fit for a specific workload, cloud, and tolerance for cost and lock-in. With the architecture map from this pathway, you can choose by reasoning from a handful of questions instead of marketing claims.

Start with five questions

  1. Which cloud are you in? Network proximity, IAM, and data-egress costs usually pin you to your existing provider’s family first.
  2. What is the workload shape? Steady OLTP, spiky/intermittent, read-heavy, analytics-on-live-data (HTAP), or dev/test with many short-lived databases?
  3. How big is the write load? If a single large primary can hold it, you stay in family one or a single-writer family-two service. If not, you need a distributed/sharded design.
  4. How much portability do you need? Strong exit requirements push you toward community-Postgres services; willingness to embrace lock-in unlocks cloud-native features.
  5. What is the cost profile? Always-on vs bursty changes everything — serverless wins for idle-heavy, provisioned wins for steady.

A rough mapping

  • Standard OLTP, portability matters: RDS for PostgreSQL, Cloud SQL, or Azure Flexible Server — the community-Postgres baselines.
  • Need fast failover + heavy read scaling on AWS/GCP: Aurora or AlloyDB (shared-storage replicas).
  • Real-time analytics on live transactional data: AlloyDB (columnar engine).
  • Outgrowing a single Azure primary: Azure HorizonDB (cloud-native distributed).
  • Dev/test, branching, spiky or idle-heavy apps: Neon (serverless, scale-to-zero, branches).
  • Operational database inside a Databricks lakehouse / AI stack: Lakebase.

The cost levers that actually move the bill

  • Compute (instance size or serverless capacity units) — usually the biggest line; HA roughly doubles it.
  • Storage (provisioned size, IOPS, backup retention, cross-region copies).
  • I/O — on Aurora, per-request I/O can rival compute; weigh I/O-Optimized for I/O-heavy workloads.
  • Replicas — each read replica is extra compute (and, in family one, extra storage).
  • Data transfer — cross-AZ and cross-region/egress traffic is easy to overlook.
  • Idle — serverless/scale-to-zero can dramatically cut cost for intermittent workloads but adds cold-start latency.

What people miss

  • Match the service to the workload, not the hype. A small steady app on Aurora Serverless may cost more than a right-sized RDS instance for no benefit.
  • Model the full bill, including I/O, backups, replicas, and egress — the sticker compute price is rarely the real cost.
  • Decide lock-in tolerance up front and keep a tested escape route regardless of choice.
  • Re-evaluate periodically. The newest entrants (HorizonDB, Lakebase) move fast; today’s right answer may change.

Key takeaway

Choose by reasoning, not brand: cloud + workload shape + write scale + portability + cost profile narrows the field fast. Family one for portable, steady OLTP; cloud-native (Aurora/AlloyDB/HorizonDB) for fast failover, read scaling, and analytics; serverless (Neon/Lakebase) for branching, bursty, and lakehouse/AI-adjacent workloads — and always model the whole bill and keep an exit.

This is a Pro lesson

Get every Learning Pathway and cookbook recipe — grounded in PostgreSQL source code, with diagnostics, fixes, and prevention for each topic.

  • All 36 Learning Pathway lessons
  • 170+ cookbook recipes
  • Source-grounded diagnostics & fixes

Secure checkout Cancel anytime Source-grounded

Keep going

Related & next steps

Was this helpful?

← Back to 06 — Managed PostgreSQL in the Cloud: Architecture & Trade-offs