Azure Blob Storage pricing: a practical cost model

Blob Storage looks simple on the surface (GB-month), but real bills usually include multiple drivers: operations, redundancy/replication, and data transfer. This guide is a practical model you can apply to a new workload or to sanity-check an existing bill.

1) Storage (GB-month)

Use average stored GB over the month (GB-month). If the dataset is growing, average is more accurate than end-of-month size. Split by tier (hot/cool/archive) if you know the mix.

Tool: Object storage cost calculator.

2) Operations (reads/writes/list)

Operations matter when you have lots of small objects and high request volume (APIs, thumbnails, telemetry archives). For large-object workloads, operations are often second-order.

Tool: API request cost calculator.

3) Redundancy and replication

Redundancy choices (e.g., zone-redundant or geo-redundant strategies) can affect both storage and transfer. Treat replication as its own line: replicated GB-month and replicated GB transferred.

Tool: Storage replication cost calculator.

4) Retrieval and data movement

For colder tiers and archived data, retrieval and early-deletion rules can be a hidden cost driver. Separately model: retrieval GB, retrieval requests, and any minimum storage duration penalties.

Tip: if you restore frequently (weekly workflows, audits, reprocessing), you may not be an archive workload. Model a baseline month and a peak month explicitly.

5) Egress (outbound bandwidth)

Outbound data transfer is frequently the surprise line item. Split egress into at least: to the internet, to CDN, and cross-region (if applicable). If you front storage with a CDN, distinguish CDN edge bandwidth from origin egress (cache fill).

Tool: Data egress cost calculator.

Decision checklist (tiers and redundancy)

  • Access pattern: hot vs cool vs archive depends on read frequency and restore SLA.
  • Object size: many small objects increase operation costs and operational overhead.
  • Redundancy: replication choices affect both storage and transfer. Treat them as separate line items.
  • Delivery path: CDN bandwidth and origin egress are different GB; do not double-count.

Worked estimate template (copy/paste)

  • Storage = average GB-month (split hot/cool/archive)
  • Operations = read ops + write ops (split by request class if needed)
  • Replication = replicated GB-month + replicated GB transferred
  • Transfer = internet egress + CDN origin egress + cross-region (modeled separately)

Common pitfalls

  • Using end-of-month storage size instead of average GB-month.
  • Ignoring operations for small-object workloads (operations can dominate).
  • Modeling "bucket size" but missing egress and replication boundaries.
  • Double-counting CDN bandwidth and origin egress.
  • Ignoring peak restores/backfills (the peak month often drives cost).

Validation checklist

  • Confirm whether you are estimating GB or GiB and keep units consistent end-to-end.
  • Separate storage, requests, replication, and egress into distinct line items (no blended assumptions).
  • When using a CDN, validate origin egress separately from edge bandwidth.
  • After one cycle, reconcile usage types (storage vs operations vs transfer) against the model and keep a peak scenario.

Related tools

Related reading

Sources


Related guides


Related calculators


FAQ

What usually drives Blob Storage cost?
Most workloads are driven by GB-month stored and data transfer (egress/replication). For high-request workloads, operations can also matter.
How do I estimate quickly?
Start with average stored GB, expected monthly egress, and a rough request count (reads/writes). Add redundancy/replication as a separate line item.
How do I validate the estimate?
Validate units (GB vs GiB), confirm which traffic is billed as egress, and compare to a real week of storage + transfer metrics if available.

Last updated: 2026-01-27