Problem
Keeping all data on fast, expensive storage is wasteful when most of it is rarely read. Moving data to cheap storage by hand is error prone. Teams need lower cost without breaking access to old data.
Also known as: storage-tiering, data-lifecycle-management
Place data on storage whose cost and speed match how often it is accessed, moving it as it ages.
Keeping all data on fast, expensive storage is wasteful when most of it is rarely read. Moving data to cheap storage by hand is error prone. Teams need lower cost without breaking access to old data.
Hot-cold tiering matches storage class to access temperature. Recent data lives on fast media, older data migrates to cheaper tiers, and the oldest sits in archives such as S3 Glacier.
A lifecycle rule moves objects by age.
day 0-30 HOT SSD / S3 Standard
day 30-365 WARM S3 Infrequent Access
day 365+ COLD Glacier (restore 3-12 hours)
Rule: transition after 30d -> STANDARD_IA
transition after 365d -> GLACIER
expire after 2555d
In databases, time-based partitions make this easy: detach an old partition and move it to cheaper storage or an external table.
Decide the boundary with data, not intuition. Plot the fraction of reads by object age: if ninety-five percent of reads hit data under thirty days old, that is your hot window. For databases, partition by time so a partition moves as a unit. For object stores, intelligent tiering can move objects automatically based on access, at a small monitoring fee. Keep an index or manifest of cold data in the hot tier so users can search metadata and request a restore only for what they need.
Low - mainly reduces spend
Medium - policies, monitoring of tier transitions
Medium - access-pattern analysis
Data moved to cold storage is needed urgently and retrieval takes hours
Frequent re-reads of cold data cost more than keeping it hot
Lifecycle rule deletes or archives data still referenced by live queries