Cloud cost engineering

Storage tiers explained: hot, warm, cold, archive — and what they cost

S3 Standard at $0.023/GB-month down to Glacier Deep Archive at $0.00099/GB-month. When intelligent tiering pays and when retrieval costs eat the savings.

cloudprice editorial ~3 min read

Every hyperscaler offers 4-6 object storage tiers. The pricing pages list them in order of decreasing cost-per-GB-month and increasing retrieval latency. That order is correct but misleading: storage cost is rarely the bottleneck. Retrieval cost is.

Here's how to actually think about which tier to put data in, with the numbers.

S3 (us-east-1) tiers, 2026

Tier$/GB-moRetrievalMin storageMin retrieval
S3 Standard$0.023FreeNoneNone
S3 Intelligent-Tiering$0.023 (active) / $0.0125 (infrequent) / $0.004 (archive instant)Free (active/infrequent), Free (archive instant)NoneNone
S3 Standard-IA$0.0125$0.01/GB retrieved30 days128 KB
S3 One Zone-IA$0.01$0.01/GB30 days128 KB
S3 Glacier Instant Retrieval$0.004$0.03/GB90 days128 KB
S3 Glacier Flexible Retrieval$0.0036$0.01-0.03/GB + per-request90 days40 KB
S3 Glacier Deep Archive$0.00099$0.02-0.05/GB + per-request180 days40 KB

The cheapest tier is 23x cheaper than the most expensive. But the retrieval cost is the variable nobody plans for.

When tiering pays — the math

1 TB stored, never retrieved:

  • S3 Standard: $23.50/month
  • Glacier Deep Archive: $1.01/month
  • Savings: $22.50/month, or $270/year per TB

At 100 TB this is $27,000/year of savings. Real money.

1 TB stored, retrieved once per month:

  • S3 Standard: $23.50/month total
  • Glacier Deep Archive: $1.01 storage + $20-50 retrieval + per-request fees = $25-55/month

Tiering costs MORE if you retrieve. Surprising.

The retrieval gotchas nobody documents

The 128 KB minimum object size

S3 Standard-IA, One Zone-IA, and Glacier Instant Retrieval bill each object as if it were at least 128 KB. If you have a billion 4 KB log files, you're paying as if you stored 128 GB of data even though your actual data is 4 GB. This is a brutal trap for log-shipping pipelines.

Early deletion fees

Move a 1 TB object to Standard-IA on day 1, delete on day 15. You pay for 30 days regardless. Glacier? 90 or 180 days. If your data churns faster than the minimum retention, the cheaper tier is more expensive overall.

Per-request fees in Glacier

Glacier Flexible Retrieval is $0.05 per 1,000 retrieve requests. Doesn't sound like much. Until you retrieve 10 million small objects. Then it's $500 of pure request overhead.

Intelligent-Tiering is the right default

For most workloads, S3 Intelligent-Tiering is the right answer because it automatically moves objects between tiers based on access patterns, without retrieval fees or minimum durations. The monitoring fee is $0.0025 per 1,000 objects per month, so it's a bad fit for billions of tiny objects but excellent for hundreds of thousands of medium-sized ones.

The "archive instant" tier within Intelligent-Tiering is the sleeper hit: $0.004/GB-month with no retrieval delay. Better than Standard-IA in almost every case where access is genuinely cold.

GCS and Azure equivalents

GCS Standard, Nearline (30-day), Coldline (90-day), Archive (365-day). Pricing follows the same shape as S3, generally 5-10% more expensive at the cold end. Egress between tiers is free.

Azure Blob Hot, Cool (30-day), Cold (90-day, new in 2024), Archive (180-day). Pricing roughly in line with S3.

The cross-provider option: Backblaze B2 + Cloudflare R2

If your workload allows it, Backblaze B2 at $0.006/GB-month with $0.01/GB egress (plus free egress to Cloudflare, Vercel, etc.) crushes S3 Standard economics. Cloudflare R2 is $0.015/GB-month with zero egress, period. For static asset hosting or build artifacts, R2 is dramatically cheaper than S3.

This doesn't show up in the cloudprice VM catalogue because we focus on compute, but worth knowing.

Lifecycle policy template

The lifecycle policy I use on most production buckets:

  • Day 0-30: Standard (active data)
  • Day 30: Move to Intelligent-Tiering
  • Day 365: Move to Glacier Flexible Retrieval
  • Day 1095 (3 years): Move to Glacier Deep Archive
  • Day 2555 (7 years): Delete (data retention policy permitting)

This pattern saves 60-80% versus straight S3 Standard for typical log/backup workloads, without any access-pattern surprises.

The honest summary

S3 Intelligent-Tiering is the right default for everything except (a) billions of tiny objects (use a packed format like parquet or tar), and (b) data you genuinely never access (go straight to Deep Archive).

Compute pricing for your storage workers (S3 sync targets, restore jobs) is in the cloudprice catalogue — the cheapest is usually a small t3.nano on AWS or a CPX11 on Hetzner for offsite replication targets.

External reading: S3 Storage Classes, GCS Storage Classes, and the FinOps Foundation on storage cost optimisation.

Try it yourself
Compare list prices across all seven providers, side by side. Live snapshot updated regularly.