A 10 TB media library can look cheap on an Azure Blob Storage pricing table and still produce a four-figure monthly bill. The storage rate is only one meter. Retrieval, requests, redundancy, version history, tier changes, replication, and outbound bandwidth all attach to the same data.
Azure Blob Storage cost is the sum of capacity, operations, retrieval, data transfer, redundancy, and any enabled feature meters. For delivery-heavy workloads, internet egress can cost far more than keeping the objects at rest, so the only reliable estimate prices the complete path from upload to the end user.
This guide uses public US-dollar list prices checked on August 18, 2026. Azure prices vary by region, offer, currency, redundancy, account type, and volume; confirm a production estimate in the Azure pricing calculator before committing spend.
Azure Blob Storage pricing at a glance
Microsoft bills Blob Storage through multiple meters rather than one all-inclusive rate. Its cost-management documentation lists storage, operations, data transfer, retrieval, index, blob tags, change feed, SFTP, inventory, encryption scopes, query acceleration, and point-in-time restore among the possible charge categories. Only some apply to any one account, but a model that starts and ends with $ per GB-month is incomplete.
Use this simplified formula:
monthly blob cost = capacity + operations + retrieval + replication + network egress + enabled features + early-deletion charges
The important split is between storing a byte and making that byte useful:
| Cost component | What triggers it | Why it gets missed |
|---|---|---|
| Capacity | Average billable data stored in a tier | It is the headline rate, so teams mistake it for the total |
| Redundancy | LRS, ZRS, GRS, RA-GRS, GZRS, or RA-GZRS selection | More copies and secondary-region access change the storage price |
| Operations | Reads, writes, lists, tier changes, and other transactions | Small-object and high-churn workloads can generate huge request counts |
| Retrieval | Reading data from Cool, Cold, or Archive | It is separate from both the read request and outbound bandwidth |
| Internet egress | Bytes leaving Azure for viewers, customers, or on-premises systems | It appears on the bandwidth schedule, not as a storage-capacity rate |
| Inter-region transfer | Copying or reading data across Azure regions | Replication and application traffic can cross a paid boundary |
| Protection and management | Versions, snapshots, soft delete, tags, inventory, SFTP, and other enabled features | Retained copies and per-feature meters are easy to omit |
| Early deletion | Deleting, overwriting, or retiering before a tier's minimum duration | The object disappears, but the remaining minimum term can still be billed |
Azure's billing-model documentation says Blob capacity uses binary units even though the bill labels them GB: one billed GB corresponds to one GiB, and one billed TB corresponds to 1,024 GiB. Azure's bandwidth page, by contrast, notes that its transfer tiers use decimal TB. Normalize units before multiplying, or the estimate will drift before traffic even starts.
What changes Azure Blob Storage pricing?
Six choices have the largest effect on the bill.
1. Region and commercial agreement
The selected Azure region determines both storage and some transfer rates. Your Enterprise Agreement, Microsoft Customer Agreement, negotiated discount, credits, taxes, and billing currency can make the invoice differ from the public list price. Use list prices for architecture comparison, then replace them with the rates that actually apply to the subscription.
2. Account and blob type
Most object-storage estimates concern block blobs in a standard GPv2 account. Premium block blob storage serves low-latency, high-transaction workloads with a different price shape. Append blobs and page blobs have different use cases and transaction behavior, so do not paste a block-blob rate into every Azure Storage workload.
3. Access tier
Hot, Cool, Cold, and Archive trade lower capacity cost for higher access cost and, eventually, retrieval delay. Premium is a performance tier rather than simply a warmer step in the same ladder. The correct tier follows the object's observed access and retention pattern—not the cheapest capacity cell.
4. Redundancy
LRS keeps copies within one datacenter; ZRS spreads data across availability zones in one region. Geo-redundant options replicate to a secondary region, while read-access variants permit reads from that secondary location. More resilience can be the right decision, but it changes capacity and may introduce geo-replication transfer charges.
5. Requests and object shape
Azure charges operations in blocks such as 10,000 transactions. Upload tools divide large files into blocks, while listings, property checks, range reads, retries, and lifecycle transitions create additional calls. Microsoft's Blob Storage cost-estimation guide explains how endpoint and block size change the number of read and write operations, so both belong in the estimate.
6. The route out
Data entering Azure is free on the public bandwidth schedule, but data leaving an Azure region may not be. Direct internet delivery, cross-region application reads, replication, CDN origin pulls, and private networking services can each create a different route and bill. Draw the byte path before selecting a price row.
Azure Blob Storage pricing by access tier
For a representative starting point, Azure's official Blob Storage pricing page puts East US LRS capacity near $0.018/GB-month for Hot, $0.01 for Cool, $0.0045 for Cold, and $0.00099 for Archive. Treat those figures as orientation, not a quote: the published rate is region-, redundancy-, and volume-sensitive, so the Azure pricing calculator or your own portal should supply the rate used in an approval document.
| Tier | Access behavior | Retrieval and latency | Minimum storage duration | Best-fit workload |
|---|---|---|---|---|
| Premium | Very frequent, latency-sensitive access | Online; optimized for low, consistent latency | None | High transaction rates and latency-sensitive block blobs |
| Hot | Frequent access | Online; no per-GB retrieval charge | None | Active application assets, CDN origins, and frequently read media |
| Cool | Infrequent but immediate access | Online; per-GB retrieval applies | 30 days | Backups and older data still needed quickly |
| Cold | Rare but immediate access | Online; higher retrieval and operation costs | 90 days | Long-lived data with low read frequency |
| Archive | Very rare access | Offline; rehydration can take up to 15 hours | 180 days | Compliance and preservation data with planned restores |
The minimum is a billing rule, not a lock. Azure's Blob Storage pricing notes say deleting, overwriting, or moving a blob before its required period can create a prorated early-deletion charge: 30 days for Cool, 90 for Cold, and 180 for Archive. A 20-day campaign asset moved into Cool and deleted on day 21 can therefore cost more than simply leaving it Hot.
The colder tiers also compound meters. A Cool or Cold download can incur a read operation, a per-GB retrieval fee, and network egress. Archive adds rehydration behavior and priority choices before the data becomes readable online. Microsoft's archive cost-estimation example shows why Archive can lose to warmer tiers as the percentage of data read increases.
Azure egress charges can dominate the storage bill
Internet egress sits on the Azure bandwidth pricing page, separate from Blob capacity. For traffic routed over Microsoft's Premium Global Network, the current public tiers are:
| Source | First 100 GB/month | Next 10 TB | Next 40 TB | Next 100 TB | Next 350 TB |
|---|---|---|---|---|---|
| North America or Europe | Free | $0.087/GB | $0.083/GB | $0.070/GB | $0.050/GB |
| Asia excluding China, Australia, Middle East, or Africa | Free | $0.120/GB | $0.085/GB | $0.082/GB | $0.080/GB |
| South America | Free | $0.181/GB | $0.175/GB | $0.170/GB | $0.160/GB |
Azure also publishes a lower-cost routing-preference transit-ISP schedule, with different network characteristics, and separate inter-region rates. Pick the row that matches the configured route rather than automatically using the cheapest visible number.
A worked 50 TB delivery example
Assume a North American account stores 10,000 billable GB of active media in Hot LRS at an illustrative $0.018/GB-month and serves 50,000 GB to internet users over Premium Global Network routing. Ignore operations for the moment.
- Capacity:
10,000 × $0.018 = $180.00 - First 100 GB of internet egress:
$0 - Next 10,000 GB:
10,000 × $0.087 = $870.00 - Remaining 39,900 GB:
39,900 × $0.083 = $3,311.70 - Simplified total before operations:
$4,361.70
The egress line is $4,181.70—more than 23 times the storage line. Cutting the capacity rate in half would save $90; cutting the delivered-byte rate or eliminating avoidable origin traffic changes thousands of dollars. That is why a capacity-only Azure Blob Storage cost estimate fails for video, software downloads, game assets, images, and public datasets.
Do not apply the 100 GB allowance to every storage account or container. The bandwidth table describes a monthly Azure allowance, and the exact aggregation and agreement treatment should be confirmed for the billing scope. Similarly, a CDN can reduce repeated origin pulls, but it introduces its own delivery meter; model cache fills and viewer delivery separately.

Build an Azure Blob Storage pricing model that survives real traffic
Start with a spreadsheet or queryable cost model that exposes assumptions. One monthly total is not enough because it cannot tell you which architecture change matters.
Step 1: Inventory capacity by state
Record current objects, previous versions, snapshots, soft-deleted data, and replication copies. Split each group by tier, region, and redundancy. Microsoft's snapshot billing guidance warns that snapshots and versions can accrue added capacity, and explicitly changing tiers can cause full object lengths—not just unique blocks—to become billable in some version and snapshot scenarios.
Step 2: Measure operations, not just object count
Collect read, write, list, property, tier-change, and delete behavior from metrics and logs. Include retry rates and the block sizes used by upload or Data Lake clients. A billion 20 KB objects and twenty 1 GB objects can occupy similar capacity while producing radically different transaction bills.
Step 3: Separate retrieval from delivery
Retrieval means reading bytes from a cooler storage tier. Delivery means moving bytes across a network boundary. A Cool object served to a viewer may incur both. Keep retrieval GB and internet egress GB in separate rows, then add requests.
Step 4: Map every network path
For each producer and consumer, record source region, destination region, public or private path, CDN, replication target, and expected cache-hit ratio. Include normal traffic, cache misses, purges, bot traffic, range requests, and retry amplification. The S3 egress cost guide uses the same route-first method because the principle is cloud-independent: the charged boundary matters more than the bucket label.
Step 5: Model three months
Build a normal month, a growth month, and a traffic spike. Each scenario should show:
- Average capacity by tier and replica.
- Read, write, list, and other operation counts.
- Retrieval GB by tier.
- Inter-region and internet egress by source geography.
- CDN origin-fill and viewer-delivery GB.
- Retained versions, snapshots, and soft-deleted bytes.
- Feature meters, support, commitments, and taxes where applicable.
Step 6: Compare architecture, not one cell
If the model shows internet delivery—not idle capacity—is the dominant meter, changing tiers will not solve it. ZeroBuffer pricing lists S3-compatible storage at $0.01/GB-month per replica and global CDN delivery from $0.0049/GB with no regional delivery surcharge; its S3-compatible storage guide provides a migration checklist for API compatibility and object movement. At 10,000 GB stored with one replica and 50,000 GB delivered, those list rates total $345 before other applicable costs, versus $4,361.70 for the illustrative Azure Hot-storage-plus-Premium-egress model above before Azure operations.
That comparison does not make Azure a bad storage service. It shows that Azure's integrated features and redundancy choices should be evaluated against the workload's actual economics. A private application that reads data inside the same region has a different answer from a global media library sending five times its stored capacity to users every month.
Hidden Azure Blob Storage costs to check
Versions, snapshots, and soft delete
Soft-deleted blob data is billed at the same capacity rate as active data until the retention window expires. Versioning and snapshots can also add billable bytes as objects diverge. Use lifecycle rules to expire old copies, and separate frequently overwritten data when the protection policy would retain a costly history.
Early deletion and tier churn
Deleting, overwriting, or moving data out of Cool, Cold, or Archive too early can trigger the remaining minimum-duration charge. Moving data warmer can also add source-tier read and retrieval charges. A lifecycle policy based on wishful retention assumptions can churn objects between tiers and save less than expected.
Geo-replication
GRS, RA-GRS, GZRS, and RA-GZRS add resilience through a secondary region. They also alter capacity pricing and can add a per-GB geo-replication transfer meter. Price the recovery objective and secondary-read requirement explicitly rather than treating geo as a free checkbox.
Small objects and listings
Colder tiers charge more for many operations. When objects are tiny, per-10,000 request prices and inventory scans can matter more than retrieval GB. Test representative listings, metadata reads, and lifecycle activity rather than estimating only GETs.
Feature meters
Blob index tags, change feed, SFTP, inventory, encryption scopes, query acceleration, and point-in-time restore can add meters when enabled. None is inherently wasteful; the mistake is enabling a feature in architecture and omitting it from finance.
How to reduce Azure Blob Storage cost
Put data in the tier its access pattern earns
Use Azure Monitor and access history to find objects that are truly cold. Hot is often the right total-cost tier for an active CDN origin because it avoids retrieval charges and has cheaper operations. Archive belongs to planned restoration, not unpredictable user traffic.
Use lifecycle management with deletion rules
Azure Blob lifecycle policies can move current versions, previous versions, and snapshots to cooler tiers or delete them after defined conditions. The policies themselves are free, while tier-change operations are billed. Account for soft-delete retention because a lifecycle delete can leave an object billed in its soft-deleted state.
Evaluate Smart tier for uncertain access patterns
Azure's newer Smart tier automatically keeps eligible block blobs Hot, moves inactive objects to Cool after 30 days and Cold after 90 days, and returns accessed objects to Hot. Microsoft documents a monitoring charge for managed objects larger than 128 KiB, but no retrieval, early-deletion, or internal transition charges within Smart tier. It currently requires a supported zone-redundant configuration, so compare its monitoring and redundancy cost with a hand-built lifecycle policy rather than assuming automatic always means cheaper.
Reserve stable, large capacity
Azure Storage reserved capacity can discount Hot, Cool, or Archive block-blob capacity with a one- or three-year commitment in 100 TiB or 1 PiB units. It does not cover operations, early deletion, bandwidth, or data transfer. Reserve only the region, tier, and redundancy baseline you expect to keep; a capacity discount cannot repair an expensive egress path.
Reduce bytes and origin pulls
Compress text, create efficient image and video renditions, set cacheable URLs and TTLs, and stop clients from repeatedly requesting overlapping byte ranges. A CDN can reduce Azure origin egress when viewers request the same objects, but the economics depend on cache-hit ratio and the CDN's own viewer-delivery price. Compare the complete Azure-plus-CDN bill with a paired low-egress origin and CDN before committing.
Frequently asked questions
How much does Azure Blob Storage cost per month?
Multiply average billable capacity by the region, tier, account type, redundancy, and volume rate, then add operations, retrieval, transfer, replication, retained versions, and enabled features. Representative East US LRS capacity rates can range from roughly $0.018/GB-month for Hot to about $0.00099 for Archive, but the Azure calculator should provide the current rate for the exact configuration.
Does Azure Blob Storage charge for egress?
Yes. Data sent out of an Azure region can incur bandwidth charges even when Blob Storage itself is inexpensive. Current Premium Global Network internet egress from North America and Europe includes the first 100 GB per month, then starts at $0.087/GB for the next 10 TB; other source continents and routes have different rates.
Is Azure Blob Storage free?
Azure may include limited storage and operations in a free account offer, and inbound data transfer is free on the public bandwidth schedule. Production usage beyond an applicable allowance is billed, so verify the current free-account terms and do not assume free ingress means free downloads.
Which Azure Blob Storage tier is cheapest?
Archive has the lowest capacity rate, but it is not automatically the lowest total-cost tier. Archive data is offline, can take hours to rehydrate, has a 180-day minimum duration, and adds retrieval and operation costs. For frequently read assets, Hot can be cheaper overall; for delivery-heavy workloads, a flat-rate S3-compatible origin and CDN can be cheaper than optimizing Azure's capacity tier alone.
How can I lower Azure Blob Storage pricing?
Right-size redundancy, expire unneeded versions and soft-deleted data, tier objects from measured access, reserve only stable large capacity, reduce requests and bytes, and improve CDN cache efficiency. When outbound delivery dominates, compare the full Azure path with a low-egress storage-and-CDN architecture rather than expecting a colder tier to solve a network bill.
Model the path before choosing the tier
Azure Blob Storage pricing is flexible because nearly every workload can choose a suitable region, tier, redundancy level, and management policy. That flexibility also makes a one-line estimate dangerous. The capacity rate answers what it costs to keep a byte; it does not answer what it costs to read, protect, copy, and deliver it.
Build the model with real traffic, price normal and spike months, and rank the cost lines by size. If capacity dominates, tiering and reservations deserve attention. If egress dominates, test caching, byte reduction, and a lower-egress storage-and-delivery architecture before the next traffic spike turns a cheap bucket into an expensive path.
For public media libraries, egress is almost always the line that dominates—and that is the workload ZeroBuffer is built to carry. It pairs S3-compatible storage at $0.01/GB-month per replica with flat CDN delivery from $0.0049/GB priced by volume rather than geography, plus origin shielding, instant purge, and free multi-rendition encoding. No contracts, no minimums. Price your own bytes against the Azure model above, then see the full rate card.
