TL;DR: "Glacier" is three different products wearing one name. Instant Retrieval reads in milliseconds at ~$0.004/GB-month; Flexible Retrieval reads in minutes-to-hours at ~$0.0036; Deep Archive reads in 12–48 hours at ~$0.00099. Pick by access pattern, not price tag — the expensive mistake is data one rung away from where it belongs, in either direction.
The numbers
| Tier | $/GB-month | Retrieval | Min. duration | Min. object |
|---|---|---|---|---|
| Standard (reference) | $0.023 | ms, free GETs | — | — |
| Glacier Instant Retrieval | $0.004 | milliseconds, ~$0.03/GB fee | 90 days | 128 KB |
| Glacier Flexible Retrieval | $0.0036 | 1 min–12 h by option | 90 days | 40 KB |
| Glacier Deep Archive | $0.00099 | 12–48 h | 180 days | 40 KB |
All three: 11-nines durability across 3+ AZs — identical to Standard. Cheap is not fragile; the difference is purely read latency and fees.
Do this
-
Apply the access-pattern test per dataset:
- Touched a few times a year, needed instantly (legal pulls, medical imaging, licensing) → Instant Retrieval
- Touched rarely, hours of notice available (audits, re-edits, backup restores) → Flexible Retrieval
- Realistically never read again (7-year retention, decommissioned systems) → Deep Archive
-
Build the ladder as one lifecycle policy so data descends automatically:
aws s3api put-bucket-lifecycle-configuration --bucket YOUR-BUCKET \ --lifecycle-configuration '{"Rules":[{"ID":"ladder","Status":"Enabled", "Filter":{},"Transitions":[ {"Days":30,"StorageClass":"GLACIER_IR"}, {"Days":365,"StorageClass":"DEEP_ARCHIVE"}]}]}' -
Check for one-rung-early ladders: policies written years ago often stop at Glacier Flexible; multi-year retention that never restores should continue to Deep Archive (4× cheaper).
-
Use S3 Select on restores from Flexible when you need specific records out of large archives — pulling only matching rows instead of whole objects slashes retrieval fees on compliance searches.
Gotchas
- Wrong-tier-by-one costs real money in both directions: Deep Archive data restored monthly bleeds retrieval fees and hours; Instant Retrieval data never read overpays ~4× vs Deep Archive.
- The minimums stack: a small object deleted early is billed at the minimum size for the minimum duration, whichever tier.
- Transitions run once daily — plan compliance cutover dates around the lag.
- Serving live traffic from any Glacier tier (even Instant, because of per-GB fees) is a bill you'll notice — product assets belong in Standard or Intelligent-Tiering.
Skip this if
- Access is unpredictable across the whole bucket — S3 Intelligent-Tiering automates the laddering per object, both directions.
- Data churns within 90 days — the minimum durations make every Glacier tier more expensive than Standard.
- You want the per-tier deep dives: Instant Retrieval, Flexible Retrieval, Deep Archive.