TL;DR. Azure Database for PostgreSQL pricing for one General Purpose flexible server with 4 vCores, 16 GiB and 512 GiB of Premium SSD comes to $318.76 a month in East US, and $637.52 with zone-redundant high availability. Compute is $0.089 per vCore-hour and storage $0.115 per GiB-month, and HA bills both twice. The lines that move the bill after that are the ones nobody sets on purpose: backups past the free allowance, Burstable servers that cost more per usable vCore than General Purpose, and extended support that Azure turned on by itself for PostgreSQL 11 to 13.
Unless noted, every rate below comes from the Azure Retail Prices API for East US, read on November 7, 2026, because the English pricing page loads its rates by script. Monthly figures use 730 hours. The server is hypothetical. It is the spec we used to compare three clouds in cloud database cost, and this page breaks it down on Azure alone.
How much does Azure Database for PostgreSQL cost per month? $637.52 with HA
The spec: a flexible server on D4ds_v5, General Purpose tier, with 4 vCores and 16 GiB, 512 GiB of Premium SSD, zone-redundant HA, 7-day backup retention. Azure's storage table sells Premium SSD in fixed sizes, and 512 GiB comes with 2,300 provisioned IOPS.
| Line | Rate (East US) | Quantity | Monthly cost |
|---|---|---|---|
| Compute, primary | $0.089 per vCore-hour | 4 × 730 hours | $259.88 |
| Storage, primary | $0.115 per GiB-month | 512 GiB | $58.88 |
| Single server | $318.76 | ||
| Compute, standby | $0.089 per vCore-hour | 4 × 730 hours | $259.88 |
| Storage, standby | $0.115 per GiB-month | 512 GiB | $58.88 |
| With zone-redundant HA | $637.52 |
Backups add nothing here: at 7 days of retention they fit inside the free allowance, as long as the server writes less than about 73 GiB of backup data a day (512 ÷ 7). Egress is extra; the pricing FAQ says "standard networking charges apply". Azure bills "each full hour that your server exists", so a server created and deleted after five minutes pays for one hour.
Does HA double the price? Yes, except the free backup allowance
Azure's pricing FAQ gives the rule with our numbers: if the primary has 4 vCores and 512 GiB, the HA server "will be billed for 8 vCores and 1,024 GiB of storage". The standby is half the bill, $318.76, and cannot serve reads. Read replicas are separate servers: "for each read replica, you pay for the provisioned compute in vCores and storage", says the read replica guide.
The free backup allowance does not double with HA. The same FAQ sizes it on "100% of your total provisioned storage for your primary server", so the 1,024 GiB you pay for still buys 512 GiB of free backups. For production, the standby is the point: Microsoft says a zone-redundant server recovers from a zone failure in 60 to 120 seconds with zero data loss. The waste is HA on a staging copy that inherited production's settings: $318.76 a month for a failover nobody needs. Copies like that are a recurring item in cloud waste in data infrastructure.
Is Burstable enough for production? It costs 3.4 times more per usable vCore
Burstable is the cheapest tier per month and the most expensive per vCore you can actually run. A Burstable B4ms (4 vCores, 16 GiB) lists at $0.272 an hour, $198.56 a month, against $259.88 for the D4ds_v5: 24% less. Microsoft's compute guide explains the catch: when CPU credits run out, "the VM is restricted to baseline CPU", and the tier is "not recommended for production workloads".
Azure's B-series VM table gives Standard_B4ms a base CPU performance of 22.5% of the VM. Four vCores at 22.5% is 0.9 vCore you can run around the clock, so each sustained vCore costs $198.56 ÷ 0.9 = $220.62 a month, against $259.88 ÷ 4 = $64.97 on General Purpose. Microsoft's Postgres docs do not restate the baseline, but the B4ms limits they list (2,880 IOPS, 35 MiB/s) match that VM's.
Three more limits come with the tier:
- No zone-redundant HA. The HA guide lists Burstable among the cases zone-redundant "isn't supported for".
- No read replicas. "The Burstable server compute tier isn't supported."
- No reservation. The price list carries 1- and 3-year reservation prices for General Purpose and Memory Optimized series, and none for the B-series sizes.
The strongest case for Burstable is the one Microsoft makes: a dev, test or staging server idle most of the day never touches its baseline, and for that server $198.56 is the right price. Burstable is for servers whose average CPU stays under the baseline; a production server that needs its 4 vCores past the credits will run at 0.9.
Why is my Azure Postgres backup bill so high? Retention, geo-redundancy and restores
Backup storage is free up to the primary's provisioned storage, then $0.095 per GB-month. The backup guide counts usage the way a bill does: "if the daily backup usage is 25 GiB, you can have up to 10 days of free backup storage" on a 250 GiB server. Retention runs from 7 days, the default, to 35. With geo-redundant backup, "billing is calculated as ((2 x local backup size) - provisioned storage size) x price".
Consider our 512 GiB server writing 40 GiB of backup data a day (snapshot changes and WAL), priced with that model:
| Retention and redundancy | Backup stored | Billable | Per month |
|---|---|---|---|
| 7 days, local | 280 GiB | 0 | $0.00 |
| 35 days, local | 1,400 GiB | 888 GiB | $84.36 |
| 7 days, geo-redundant | 560 GiB | 48 GiB | $4.56 |
| 35 days, geo-redundant | 2,800 GiB | 2,288 GiB | $217.36 |
The same server's backup line goes from $0 to $217.36 on two settings, and one of them is permanent: geo-redundant backup can be chosen "only during server creation". The guide adds that the server "retains backups even for stopped servers".
Restores are the third driver. A point-in-time restore creates a new server "with the source server's configuration for the pricing tier, compute generation, number of virtual cores, storage size, backup retention period, and backup redundancy option". In a Microsoft Q&A thread, a user who ran one restore for a client found "a charge on my latest bill for nearly $1,000"; the moderator's answer points to the free allowance, the restore's extra copies, geo-redundancy and retention after deletion. The backup guide's own advice is to watch the Backup Storage Used metric.
How much does reserved capacity save? 40% or 60% of compute, less of the bill
Microsoft quotes four ceilings for the same discount: "up to 40% for one-year and up to 60% for three-year" in its cost guide, "up to 47 percent for 1-year, and up to 64 percent for 3-years" in the pricing FAQ, "up to 60%" on the same page, and "up to 65%" on the reservation page. The price list settles it for our series. A D4ds_v5 vCore costs $779.64 a year pay-as-you-go (0.089 × 8,760), $468 for a 1-year reservation and $936 for a 3-year one.
| HA example, per month | Pay-as-you-go | 1-year reservation | 3-year reservation |
|---|---|---|---|
| Compute, 8 vCores | $519.76 | 8 × $39.00 = $312.00 | 8 × $26.00 = $208.00 |
| Storage, 1,024 GiB | $117.76 | $117.76 | $117.76 |
| Total | $637.52 | $429.76 | $325.76 |
| Saving on the whole bill | 32.6% | 48.9% |
A reservation "doesn't cover software, networking, or storage charges", so the bill falls by a third, not 40%. The table assumes a reservation of 8 vCores covers the standby, since Azure bills the HA server for 8; the reservation page does not mention HA, so check utilization in the portal after buying. Reservations apply across sizes within a tier and region, and can be exchanged or refunded.
How much does extended support add? $0.07 per vCore-hour, switched on by Azure
PostgreSQL 11, 12 and 13 left Azure standard support on July 31, 2026. The extended support page says the service "automatically enrolls PostgreSQL servers running unsupported versions" and that billing "starts on September 1, 2026". The only way out is an upgrade: "to stop extended support charges, upgrade to a supported PostgreSQL version." PostgreSQL 14 follows on February 1, 2027.
The price list gives $0.07 per vCore-hour, and the pricing page says year 3 "is charged at twice the Year 1 and Year 2 rate". On our 4 vCores that is 4 × $0.07 × 730 = $204.40 a month, 32% on top of $637.52. Microsoft does not say whether the standby's vCores count too; if they do, it is $408.80. Stopped servers are not charged, but a stopped server starts again on its own 7 days later. For the upgrade itself, read PostgreSQL 14 end of life.
Can I see the cost per database? Not in Azure, so estimate it in Postgres
Azure bills the server; the databases inside it share one line. The moderator's answer to a user who asked on Microsoft Q&A in 2023: "the cost breakdown for Azure PostgreSQL Flexible Server is at the server level, not at the individual database level." The cost guide's fifth tip is to consolidate several databases onto one server, which saves money and hides who spends it.
This query splits the HA bill above: compute by each database's active_time (milliseconds spent executing statements, added in PostgreSQL 14) and storage by pg_database_size. Replace 519.76 and 117.76 with your own compute and storage lines:
WITH db AS (
SELECT d.datname,
pg_database_size(d.oid) AS bytes,
s.active_time
FROM pg_database d
JOIN pg_stat_database s ON s.datid = d.oid
WHERE NOT d.datistemplate
AND has_database_privilege(d.oid, 'CONNECT')
)
SELECT datname,
pg_size_pretty(bytes) AS size,
round(100.0 * bytes / sum(bytes) OVER (), 1) AS storage_pct,
round((100 * active_time / nullif(sum(active_time) OVER (), 0))::numeric, 1) AS compute_pct,
round((519.76 * coalesce(active_time / nullif(sum(active_time) OVER (), 0), 0)
+ 117.76 * bytes / sum(bytes) OVER ())::numeric, 2) AS est_usd_month
FROM db
ORDER BY est_usd_month DESC;
We ran it on PostgreSQL 18 (PGlite), not on an Azure server. Read the result as an estimate, with three limits:
- Counters run since the last stats reset. Save the output twice, a month apart, and split on the difference.
- Busy time is not the whole cost. A database that holds the cache or forced the vCore count pays more than its
active_timeshare; idle databases still share the standby. - PostgreSQL 13 and older have no
active_time. Usexact_commitorblks_readas a rougher proxy, on servers already paying extended support.
The limits of this page: rates are East US pay-as-you-go list prices read November 7, 2026; other regions, currencies, savings plans and negotiated discounts change the numbers. This is a worked example, not a measured account, and the backup table uses Microsoft's daily-usage model, not a real server's WAL. We did not price Premium SSD v2, provisioned IOPS, elastic clusters, autonomous tuning or egress. For the same server on Google Cloud, read Cloud SQL pricing.
The per-database query gives you one server's split; it does not show which application, pipeline or team needs that server at its current size. Datapace is building one map of your data estate (databases, warehouses, pipelines and what consumes them) with usage and cost attached, and agents that propose changes as pull requests your team reviews and merges. For the same server priced on AWS and Google Cloud side by side, read cloud database cost.
Sources
- Azure Retail Prices API, Microsoft, filtered to Azure Database for PostgreSQL in East US, read November 7, 2026 (compute, Burstable, storage, backup, reservation and extended support prices).
- Flexible server pricing page, Microsoft (billing FAQ: HA, backup allowance, hourly billing, reservations, extended support year 3).
- Microsoft Learn, compute and storage.
- Microsoft Learn, B-series (Bv1) VM sizes (base CPU performance).
- Microsoft Learn, High availability and Read replicas.
- Microsoft Learn, backup and restore concepts, including the geo-redundant billing formula.
- Microsoft Learn, Reserved capacity and How to optimize costs.
- Microsoft Learn, Extended support and stopping a server, seven-day restart.
- Microsoft Q&A, $1000 charge for backup storage (2026) and costs for individual databases (2023).
- PostgreSQL, The cumulative statistics system (
pg_stat_database.active_time) and PostgreSQL 14 release notes (session statistics added topg_stat_database).




