Hot vs Cool vs Archive Storage Tiers in Azure Blob Storage
Azure Blob Storage offers four access tiers — Hot, Cool, Cold, and Archive — each with a different balance of storage cost versus access cost. Selecting the right tier for each type of data reduces storage bills significantly. Data accessed frequently costs more to store but less to read; data accessed rarely costs less to store but more to retrieve.
The four tiers at a glance
| Tier | Storage cost (East US, LRS) | Read retrieval cost | Access latency | Minimum storage period |
|---|---|---|---|---|
| Hot | $0.018/GB/month | No retrieval charge | Milliseconds | None |
| Cool | $0.010/GB/month | $0.01/GB retrieved | Milliseconds | 30 days |
| Cold | $0.0045/GB/month | $0.03/GB retrieved | Milliseconds | 90 days |
| Archive | $0.00099/GB/month | $0.02/GB (standard rehydration) | 1–15 hours (rehydration required) | 180 days |
Prices are for LRS (Locally Redundant Storage) in East US as of 2026. GRS (Geo-Redundant Storage) approximately doubles the storage cost per tier. Prices vary by region. Verify current pricing in the Azure Pricing Calculator before capacity planning at scale.
Hot tier: frequently accessed data
Hot tier is designed for data accessed multiple times per month. It has the highest storage cost ($0.018/GB) but no retrieval charge. Every read operation carries no data retrieval fee — you pay only per-API-operation charges, not per byte of data downloaded.
Use Hot tier for:
- Active application assets — images, CSS, and JavaScript files served to users in real time
- Recent operational logs actively queried by monitoring tools
- Database backup files for recent backups where restore is likely within days
- Data feeding real-time processing pipelines or dashboards
- Files with unpredictable access patterns where retrieval cost uncertainty outweighs savings from a cooler tier
Cool tier: infrequent access
Cool tier is designed for data accessed less than once a month. Storage cost drops to $0.010/GB/month (44% less than Hot), but reads incur a $0.01/GB retrieval fee and a 30-day minimum storage period applies.
The break-even point where Cool becomes cheaper than Hot depends on read frequency. For a 100 GB dataset:
- Hot at 0 reads: $1.80/month
- Cool at 0 reads: $1.00/month — Cool is cheaper
- Cool with 1 full dataset read per month: $1.00 + (100 GB × $0.01) = $2.00 — more expensive than Hot
- Cool with 0.5 reads per month: $1.00 + $0.50 = $1.50 — cheaper than Hot’s $1.80
Cool tier wins when data is accessed less than approximately once per month on average. Suitable for: monthly financial reports, recent backups that are rarely restored, application logs older than 7 days reviewed only during incidents.
Cold tier: rarely accessed, immediate retrieval
Cold tier (added to Azure Blob Storage in 2023) sits between Cool and Archive. Storage cost is $0.0045/GB/month — 75% cheaper than Hot — but retrieval costs $0.03/GB and the minimum storage period is 90 days. Access is still immediate (no rehydration needed), making it practical for data that might occasionally be needed on short notice but is rarely accessed in normal operations.
Cold tier is appropriate for:
- Database backups older than 30 days kept for compliance but rarely restored
- Video content that has moved out of the active catalogue but may still be requested occasionally
- Application logs older than 30 days where occasional investigation queries are expected but uncommon
- Archived project files that need to remain accessible without advance notice
Cold tier is preferred over Archive whenever data might be needed within a few hours. The rehydration delay of Archive makes it unsuitable for any data with an informal SLA of “available today if needed.”
Archive tier: long-term cold storage
Archive tier is the cheapest storage available at $0.00099/GB/month — approximately 18x cheaper than Hot. The trade-off is substantial: archived blobs cannot be read directly. To access an archived blob, you must first rehydrate it — either by copying it to Hot or Cool tier (Copy Blob), or by changing the blob’s tier (Set Blob Tier) — a process that takes 1–15 hours for standard rehydration.
High-priority rehydration is faster (typically under 1 hour for blobs under 10 GB) but costs more: $0.02/GB vs $0.01/GB for standard priority. Until rehydration completes, reading the blob returns HTTP 409 (conflict).
Archive tier is appropriate for:
- Long-term compliance backup retention — backups kept for 7 years that will almost never be restored
- Raw source data before transformation — original files kept after an analytics pipeline has processed them
- Audit logs and compliance records accessed only during legal discovery or periodic audit
- Older versions of large media files superseded by updated formats
Never move disaster recovery data or recent operational backups to Archive tier if a fast restore might be needed. An incident where critical forensic data is in Archive and rehydration takes 15 hours is a serious operational failure. Keep the most recent backups in Cool or Cold tier; move only older compliance-retention backups to Archive.
Real cost example: 10 TB backup dataset
A company stores 10 TB of backup data. Backups from the past 7 days are routinely restored; older backups are kept but rarely accessed; backups older than 1 year are kept only for 7-year regulatory retention.
| Backup age | Volume | Recommended tier | Monthly cost |
|---|---|---|---|
| 0–7 days | ~1.4 TB | Cool | ~$14.40 |
| 8–30 days | ~1.8 TB | Cold | ~$8.10 |
| 31–365 days | ~3.0 TB | Cold | ~$13.50 |
| 1–7 years | ~3.8 TB | Archive | ~$3.76 |
| Total | 10 TB | Mixed tiering | ~$39.76/month |
If all 10 TB were stored in Hot tier: 10,240 GB × $0.018 = $184.32/month. Mixed tiering reduces this by approximately 78%. For organisations with large backup or archival footprints, lifecycle-based tiering is one of the highest-return cost optimisation actions available.
Automating tier changes with lifecycle management
Azure Blob Storage lifecycle management policies automate tier transitions without manual intervention. Policies can scope to all blobs in an account or to blobs matching a container prefix or index tag filter.
{
"rules": [
{
"name": "backup-tiering",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": ["blockBlob"],
"prefixMatch": ["backups/"]
},
"actions": {
"baseBlob": {
"tierToCool": { "daysAfterModificationGreaterThan": 7 },
"tierToCold": { "daysAfterModificationGreaterThan": 30 },
"tierToArchive": { "daysAfterModificationGreaterThan": 365 }
}
}
}
}
]
}Apply lifecycle policies via the Azure portal, CLI, or Bicep/ARM templates. Policies evaluate daily. Enable last access time tracking on the storage account if you want to tier blobs based on when they were last read — useful for media libraries where modification date and access date diverge significantly. Note that enabling last-access time tracking adds a small per-operation charge for tracking reads.
Common mistakes
- Storing all data in Hot tier because it is the default. Hot is the default tier when blobs are uploaded. Without a lifecycle policy, all data accumulates in Hot regardless of how infrequently it is accessed. Set up lifecycle management policies from day one to prevent unnecessary Hot tier accumulation.
- Moving disaster recovery data to Archive without a tested rehydration procedure. Archive tier data cannot be read immediately. If there is any chance the data will be needed under time pressure — incident response, compliance audit — keep it in Cold or Cool and document the rehydration process before it is needed.
- Ignoring minimum storage duration penalties in lifecycle policy design. A policy that moves blobs from Hot to Cool after 10 days and then to Archive after 20 days will incur Cool early deletion fees (minimum 30 days) on every blob. Design lifecycle transitions to respect minimum storage periods.
- Not accounting for retrieval costs when comparing tiers. A dataset that looks cheaper in Cool tier may cost more in total if it is accessed frequently enough to accumulate significant retrieval charges. Model access frequency × retrieval cost before choosing a tier for a specific data type.
Summary
- Hot ($0.018/GB) has no retrieval fee — use for actively accessed data. Cool ($0.010/GB, 30-day minimum) charges $0.01/GB on read — use for data accessed less than monthly. Cold ($0.0045/GB, 90-day minimum) charges $0.03/GB on read but retrieval is immediate — use for rarely accessed data that still needs fast availability. Archive ($0.00099/GB, 180-day minimum) requires 1–15 hours rehydration — use only for genuine long-term cold storage.
- Lifecycle management policies automate tier transitions based on blob age or last-access time — configure them from day one to avoid Hot tier accumulation.
- Mixed tiering for a 10 TB backup dataset reduces monthly storage costs from approximately $184 to approximately $40 — a 78% saving with no impact on the availability of recently needed backups.
- Never move data to Archive that might be needed urgently — the rehydration delay makes it unsuitable for any data with a time-sensitive retrieval requirement.
Frequently asked questions
How long does it take to read data from Archive tier?
Archive tier data must be rehydrated before it can be read. Standard rehydration takes 1–15 hours. High-priority rehydration (for blobs under 10 GB) typically completes within 1 hour at higher cost ($0.02/GB vs $0.01/GB for standard rehydration). Until rehydration completes, the blob cannot be read — plan rehydration in advance for Archive data that may be needed for incident response or compliance reviews.
What happens if I delete a Cool tier blob before 30 days?
Azure charges an early deletion fee for blobs deleted, overwritten, or moved from Cool tier before 30 days. The fee is the storage cost for the remaining days in the minimum storage period. The same applies to Cold tier (90 days minimum) and Archive tier (180 days minimum). Hot tier has no minimum storage period.
Can I automatically move blobs between tiers without writing code?
Yes. Azure Blob Storage lifecycle management policies move or delete blobs automatically based on age (days since modification) or last access date. Policies are defined in JSON and applied to a storage account or specific blob prefix. They run daily and process blobs asynchronously — tier changes take effect within 24–48 hours after the policy condition is met.