System DesignMedium
Azure Storage account tiers — Hot, Cool, Archive — pricing and access patterns
Azure Blob Storage has four access tiers. Choose by read frequency and retrieval latency tolerance.
| Tier | Storage cost | Read cost | Min storage duration | Retrieval latency |
|---|---|---|---|---|
| Hot | highest | lowest | none | ms |
| Cool | lower | higher | 30 days (early-delete fee) | ms |
| Cold (preview/GA) | lower than Cool | higher than Cool | 90 days | ms |
| Archive | lowest (~$0.002/GB) | highest | 180 days | hours (rehydration) |
Decision flow
- Read several times a day? Hot.
- Read maybe once a month? Cool.
- Read once a quarter, can wait 1 hour? Cold.
- Compliance retention, may never read? Archive.
Lifecycle management — automate the move
{
"rules": [{
"name": "auto-tier",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"tierToCool": { "daysAfterModificationGreaterThan": 30 },
"tierToArchive":{ "daysAfterModificationGreaterThan": 180 },
"delete": { "daysAfterModificationGreaterThan": 2555 }
}
},
"filters": { "blobTypes": ["blockBlob"], "prefixMatch": ["logs/"] }
}
}]
}
Apply via the portal, ARM template, or az storage account management-policy create.
Rehydration from Archive
Set the desired target tier; Azure begins copying. Standard priority — up to 15 hours. High priority — under 1 hour for blobs under 10 GB, at higher cost.
az storage blob set-tier --tier Hot --rehydrate-priority High \
--account-name myacct --container-name logs --name 2024/q1.tar
Hidden costs
- Early-delete fee — moving a blob out of Cool/Cold/Archive before the minimum duration charges the remaining days as if it had been kept.
- Read against Archive without rehydration fails. Application must check
accessTierand handle "Archive" specifically. - Operation costs dominate small-blob workloads. 1 million writes to Hot is cheap on storage but the per-operation fee adds up.
Common patterns
- Server logs. Hot 7 days, Cool 30 days, Archive 365 days, delete after 7 years.
- User-generated content. Hot for new uploads, demote to Cool after 90 days of no access (
daysAfterLastAccessTimeGreaterThanrequires Last Access Tracking enabled). - Backup snapshots. Direct to Archive on creation if rehydration latency is acceptable.
Geo-redundancy is a separate axis
LRS, ZRS, GRS, RA-GRS — these affect durability and disaster-recovery topology. Pick tier for cost, redundancy for RTO/RPO independently.