Skip to content
Cloud Efficiency Hub

Missing Reserved Capacity for Steady-State PostgreSQL Flexible Servers

The short version

Production Azure Database for PostgreSQL flexible servers typically run around the clock for years, yet many estates pay the pay-as-you-go vCore rate for all of them.

PointFive Research

Cloud cost research at PointFive

Category
Databases
Reference
CER-0445
Type
Suboptimal Pricing Model

Explanation

Why the waste happens and who it affects.

Reservations and savings plans are often bought for virtual machines first, and PaaS database compute is left uncovered when it is owned by a different team or was never included in the commitment review.

Reserved capacity discounts flexible server compute in a chosen region and performance tier for a one-year or three-year term, and applies automatically to any running server that matches. When a stable baseline of General Purpose or Memory Optimized vCores runs for months without coverage, the gap between the pay-as-you-go and reserved rate is paid every hour. Azure Advisor raises this as a high-impact reservation recommendation.

Billing model

The pricing dimensions that drive this cost.

Flexible server compute is billed per vCore-hour; storage and backup storage are billed separately per GiB-month.

Pay-as-you-go compute
Billed per vCore-hour at the list rate for the tier and hardware series, with no commitment
Reserved capacity
One-year or three-year prepayment, upfront or monthly, for a quantity of vCores in one region and performance tier; covers compute only, not software, networking or storage
vCore size flexibility
The reservation keeps applying when servers scale up or down within the same tier and region; vCores above the reserved quantity are billed at pay-as-you-go rates
Savings plan for databases
An hourly spend commitment for one or three years that applies across eligible database services, including Azure Database for PostgreSQL, with more flexibility and generally smaller discounts than a reservation
Reservation expiry
At the end of the term compute returns to pay-as-you-go rates unless the reservation is renewed

How to detect

5 checks to find it in your estate.

  • In Azure Advisor on the Cost tab, look for the reservation recommendation Consider Database for PostgreSQL reserved instance to save over the pay-as-you-go costs
  • In Cost Management, filter to the PostgreSQL flexible server compute meters and group by pricing model to find vCore-hours still billed on demand
  • Inventory General Purpose and Memory Optimized servers by region, tier and vCore count and identify those that have run continuously for the look-back period used for the commitment decision
  • In Reservations, compare existing Azure Database for PostgreSQL reservations against the running vCore baseline per region and tier to find uncovered capacity or reservations that are about to expire
  • Check the pricing page for the hardware series in use, since Burstable instances and some series have no reserved price listed

How to fix

4 ways to remove the waste.

  • Rightsize and remove idle or non-production servers first, then purchase Azure Database for PostgreSQL reserved capacity for the stable vCore baseline per region and performance tier
  • Use shared or management group scope so the discount applies to matching servers in any subscription in the billing context rather than a single subscription
  • Consider a savings plan for databases instead of reservations where the database footprint shifts between PostgreSQL, MySQL, Azure SQL and Cosmos DB or between regions; savings plans cannot be canceled or refunded, while reservations can be exchanged or refunded within the published limits
  • Track reservation expiry, which is notified by email 30 days ahead, and renew or replace coverage so servers do not silently return to pay-as-you-go rates

Documentation

Vendor references for pricing and configuration.