Storage Costs
Storage is cheap per gigabyte and expensive in aggregate — controlled by retention and tiering rather than by unit price.
Definition
Storage cost is volume times duration times tier price, plus request charges, plus retrieval charges on cold tiers. The dominant term in a mature system is almost always duration — data nobody decided to delete.
The levers, in order of value
1. Do not store it. Sampling telemetry, aggregating rather than retaining raw events, and declining to store full request bodies removes cost permanently rather than managing it. It also removes legal exposure, which is the larger benefit.
2. Retention policies that actually run. Most systems have retention in a document and no job enforcing it. The gap between the two is usually the largest single storage line.
3. Tiering by access pattern, not by age. A two-year-old file accessed weekly belongs in a hot tier; an age-based policy gets that wrong and generates retrieval charges that exceed the storage saving. Use access-based lifecycle rules or an intelligent tiering option where available.
4. Deduplication and compression. Both can be dramatic depending on the data. Content addressing — storing a block once regardless of how many users have it — is a substantial saving in file storage.
5. Erasure coding instead of full replication. Comparable durability at meaningfully lower storage overhead, at the cost of higher reconstruction complexity. This is why large storage operators use it and why it is worth knowing about even if you never implement it.
The costs that are not the storage line
- Snapshots. Frequently larger than the primary data, retained indefinitely, and rarely reviewed.
- Orphaned volumes from terminated instances.
- Cross-region replication, charged both as storage and as transfer.
- Request charges on workloads with millions of small objects, where requests can exceed storage cost.
- Retrieval charges on archive tiers, which can make a restore surprisingly expensive — and which must be modelled before archiving anything that might need restoring in bulk.
- Backups, which are storage with their own retention and are frequently outside the lifecycle policy entirely.
Failure scenarios
- Retention documented, never enforced.
- Age-based tiering on data with a long-tail access pattern.
- Millions of tiny objects, where per-request cost dominates.
- Archive with no tested restore, which is not an archive.
- Autoscaling storage that cannot shrink, so a one-off bulk load raises the floor permanently.
Interview question
"Storage spend is growing faster than data volume. What are the likely causes?"