Skip to content
Cloud Efficiency Hub

Missing Reserved Capacity for Steady-State Blob Storage

The short version

Large block blob and Azure Data Lake Storage Gen2 estates such as data lakes, media libraries, backup targets and archives often hold hundreds of TiB that change slowly from month to month, yet stay on pay-as-you-go capacity pricing.

PointFive Research

Cloud cost research at PointFive

Azure service
Azure Blob Storage
Category
Storage
Reference
CER-0432
Type
Suboptimal Pricing Model

Explanation

Why the waste happens and who it affects.

Azure Storage reserved capacity gives a discount on that stored capacity in exchange for a one- or three-year commitment, bought in 100 TiB or 1 PiB blocks.

It is easy to miss because commitment programs are usually run for compute. A storage reservation is also specific to a region, an access tier and a redundancy option, so a reservation bought for Hot LRS in one region does nothing for Cool GRS data or data in another region, and each combination has to be sized separately. Azure Advisor raises a dedicated purchase recommendation for Blob v2 and Data Lake Storage Gen2 capacity, and the Well-Architected guidance for Blob Storage asks teams to evaluate a commitment-based billing model for capacity.

Billing model

The pricing dimensions that drive this cost.

Pay-as-you-go capacity
Billed per GB per month at the rate for the account's region, access tier and redundancy
Storage reserved capacity
Prepaid capacity in 100 TiB or 1 PiB units per month for one or three years, for one region, access tier and redundancy
Hourly application
The discount applies each hour to matching stored data; unused reserved capacity in an hour is lost and usage above it is billed at pay-as-you-go rates
Excluded charges
Operations, bandwidth, data transfer and early deletion charges are never covered by the reservation

How to detect

4 checks to find it in your estate.

  • Review Azure Advisor for 'Consider Blob storage reserved instance to save on Blob v2 and Datalake storage Gen2 costs' and the recommendations shown in the reservation purchase blade for Azure Blob Storage
  • In Cost analysis, group block blob capacity charges by region, meter (access tier) and redundancy, and look for combinations that stay above 100 TiB month after month with no matching reservation
  • Check reservation coverage for storage in Reservations and Cost Management; capacity billed at pay-as-you-go rates for a covered combination suggests a reservation is too small or expired
  • Confirm the data is in a supported account and tier: standard general-purpose v2 or Blob storage accounts in the Hot, Cool or Archive tiers; premium, general-purpose v1, page blob, queue and table data are not eligible, and the Cold tier is not among the listed reservation options

How to fix

4 ways to remove the waste.

  • Buy reserved capacity sized to the stable floor of each region, tier and redundancy combination rather than to peak usage, since unused reserved hours are lost
  • Use shared or management group scope so the reservation follows the data across subscriptions in the billing context
  • Plan around lifecycle policies that move data between tiers: data that will move from Hot to Cool or Archive during the term should be reserved in the tier where it will spend most of that term
  • Check the renewal setting on every storage reservation and either enable automatic renewal or track expiry dates, since capacity falls back to pay-as-you-go rates the moment a reservation expires; exchanges into another storage reservation are available if the mix of tiers or regions changes

Documentation

Vendor references for pricing and configuration.