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.