Storage Costs · AWS + Azure + Google Cloud
Published
Storage is the ratchet in a cloud bill. Compute scales with demand, but data accumulates by default: logs, backups, snapshots, versions and datasets that were needed once. Left unmanaged it grows every month forever, which is also why it responds so well to management. This guide covers the levers, platform by platform, and the traps around retrieval.
Put data in the tier it deserves
Every platform prices storage on the same trade: the less often you read it, the less you pay to hold it, and the more you pay to get it back.
- AWS S3 runs from Standard through Standard-IA and One Zone-IA to the Glacier classes (Instant Retrieval, Flexible Retrieval and Deep Archive), with Deep Archive costing roughly a twentieth of Standard. S3 Intelligent-Tiering moves objects between tiers automatically based on access, with no retrieval fees, and is the sensible default wherever access patterns are unknown.
- Azure Blob Storage offers hot, cool, cold and archive tiers with the same shape.
- Google Cloud Storage runs Standard, Nearline, Coldline and Archive, and Autoclass performs the same automatic movement as Intelligent-Tiering.
The mechanism that makes tiering real is the lifecycle policy: rules that transition objects down the tiers as they age and delete them at end of life. A bucket without a lifecycle policy is a bucket whose contents are all, permanently, at the price of their busiest day. Two housekeeping rules belong in every policy: expire incomplete multipart uploads, and cap noncurrent object versions, both of which silently accumulate invisible, billable data.
Respect the small print on cold tiers
Archive pricing has teeth, and they bite people who tier by price alone:
- Minimum storage durations. Infrequent-access classes bill a minimum of 30 days, most archive classes 90 to 180 days, charged in full even if the object is deleted or transitioned early. Churning data through cold tiers can cost more than leaving it warm.
- Retrieval fees. Cold tiers charge per gigabyte retrieved. Data that is read on any regular schedule, even monthly, may be cheaper one tier warmer. Archive what you are keeping for the auditor or the lawyer, not what you are keeping for the quarterly report.
- Small objects. Per-object overheads and monitoring charges mean millions of tiny objects tier poorly. Aggregate them first.
Block storage and snapshots: the quiet leak
Object storage gets the attention; block storage does the leaking.
- gp2 to gp3. Migrating AWS EBS volumes from gp2 to gp3 saves roughly 20% per gigabyte and decouples performance from volume size, in place, with no downtime. If you do one thing from this guide, do this — it is also the quickest hygiene win in our AWS cost optimisation guide.
- Unattached volumes. When instances are terminated carelessly, their volumes live on at full price. Every estate we assess has some.
- Snapshot sprawl. Daily snapshots retained forever, snapshots of volumes that no longer exist, and AMIs pinning snapshot chains nobody can trace. The fix is a written retention policy enforced by automation such as Amazon Data Lifecycle Manager or AWS Backup, not a quarterly guilt-driven purge.
- Over-provisioned IOPS. Provisioned-performance volumes sized for a launch-day estimate rarely get revisited against real usage.
Sometimes the answer is a different design
Tiering optimises the storage you have; architecture questions whether you should have it. Repartitioning a dataset, compressing or deduplicating at source, or replacing a continuously replicated copy with a rebuildable one can change the cost of a platform outright, and occasionally the honest answer to a storage proposal is not to buy it at all. When a client asked us to approve roughly £1 million of storage hardware, we designed an alternative they now run themselves at a fraction of the cost; that story and the thinking behind it sit with our independent cloud advisory capability.
Storage discipline, like every optimisation, erodes without an owner — allocating the storage line to the teams that grow it is half the battle — which is why it lives inside Managed FinOps as a continuous practice. If you suspect your own storage line has been growing unexamined, the three-day Cloud Cost Health Check will put a number on it, or ask us directly.