The Temperature of Data
Not all data is created equal. Some data is accessed constantly; some is accessed once a year for a compliance audit. Charging the same price to store both would be like paying for a same-day courier to hold a package you won't open for five years. Cloud providers solve this with storage tiers — different price points that trade off storage cost against retrieval cost and retrieval speed.
The mental model is data temperature:
- Hot Data: Accessed daily or more. Examples: user profile pictures, active session data, product catalog images. Needs millisecond latency and zero retrieval friction.
- Warm Data: Accessed monthly. Examples: last month's invoices, recent application logs being analyzed. Can tolerate a small retrieval fee and a few seconds of latency.
- Cold Data: Accessed yearly or less. Examples: compliance audit logs, archived database backups, historical transaction records. Can tolerate retrieval fees and hours of wait time.
AWS S3 Storage Classes: The Trade-off Table
AWS S3 is the canonical example of tiered storage. Each class is optimized for a different temperature:
| Storage Class | Monthly Cost (per TB) | Retrieval Cost | Retrieval Speed |
|---|---|---|---|
| S3 Standard | ~$23.00 | Free | Milliseconds |
| S3 Standard-IA | ~$12.50 | ~$10.00/TB retrieved | Milliseconds |
| S3 Glacier Instant Retrieval | ~$4.00 | ~$30.00/TB retrieved | Milliseconds |
| S3 Glacier Flexible Retrieval | ~$3.60 | ~$10.00/TB retrieved | 1–5 minutes (expedited) to 3–5 hours (standard) |
| S3 Glacier Deep Archive | ~$1.00 | ~$20.00/TB retrieved | 12–48 hours |
(Prices are approximate US-East-1 figures for illustration. Always verify current pricing in the AWS pricing calculator.)
The trade-off is explicit: lower storage cost = higher retrieval cost + slower retrieval speed. This is not a bug — it reflects the underlying infrastructure. Glacier stores data on magnetic tape systems that must be physically loaded before retrieval can begin.
The FinOps Trap: Mismatched Temperature
The classic mistake is moving data to a cheaper tier without modeling the retrieval pattern. Consider a team that moves 10 TB of application logs to Glacier Deep Archive to save $220/month on storage. Then their security team runs daily log analysis queries against those logs. Each query retrieves 500 GB. At $20/TB retrieval, that's $10 per query. Running 30 queries a month costs $300 in retrieval fees — more than the $220 they saved on storage.
The fix is always the same: model retrieval frequency before choosing a tier. The break-even calculation is straightforward:
Break-Even Retrieval Volume = (Storage Cost Difference) / (Retrieval Cost per GB)
If your expected monthly retrieval exceeds the break-even volume, the cheaper storage tier actually costs more.
S3 Intelligent-Tiering: Automating the Decision
For data with unpredictable or changing access patterns, AWS offers S3 Intelligent-Tiering. It monitors access patterns and automatically moves objects between frequent-access and infrequent-access tiers. There's a small monthly monitoring fee per object, so it's most cost-effective for objects larger than 128 KB with genuinely variable access patterns. For data with known access patterns, explicit tier assignment is cheaper and more predictable.