All cheat sheets
Storagecheat sheet

S3 Glacier Deep Archive

AWS's cheapest storage: $0.00099/GB-month — 23× cheaper than S3 Standard — for data you must keep but will almost never read. The trade: 12–48 hour retrievals and a 180-day minimum.

Last reviewed: July 11, 2026

TL;DR: Deep Archive is where data goes to retire: $0.00099/GB-month, about 23× cheaper than S3 Standard, same 11-nines durability. Retrieval takes 12–48 hours and costs money, and deleting before 180 days bills the full 180 anyway — so this is strictly for "write once, read almost never" data: compliance retention, legal holds, final backups of decommissioned systems.

The numbers

  • Storage: $0.00099/GB-month (vs $0.023 Standard — a 96% cut)
  • Retrieval: $0.02/GB standard (~12 h) or $0.0025/GB bulk (up to 48 h)
  • Minimum storage duration: 180 days — early deletion bills the remainder
  • Durability: 99.999999999%, replicated across 3+ AZs, same as Standard

Worked example — 50 TB of compliance logs kept 10 years: $138,000 in Standard vs $5,940 in Deep Archive. Retrieving the entire 50 TB once would add ~$1,000 — still a ~$131,000 win.

Do this

  1. Identify true cold data: compliance/legal retention, closed-project archives, "final snapshot before decommission" buckets. The test: if I needed this, could I wait two days?

  2. Transition by lifecycle rule, not manual moves:

    aws s3api put-bucket-lifecycle-configuration --bucket YOUR-BUCKET \
      --lifecycle-configuration '{"Rules":[{"ID":"deep-freeze","Status":"Enabled",
      "Filter":{"Prefix":"archive/"},
      "Transitions":[{"Days":90,"StorageClass":"DEEP_ARCHIVE"}]}]}'
    
  3. Tag and name objects properly before archiving. Three years from now someone will need one document out of 80,000 objects — without tags/prefixes you'll pay to restore everything to find it.

  4. Know the two-step restore before you need it: restore-object creates a temporary Standard-tier copy (default lifetime 1 day) after the 12–48 h wait; download it during that window or pay to restore again. Use bulk retrieval for anything big and non-urgent.

Gotchas

  • The 180-day minimum makes it actively expensive for short-lived data — a 1 TB experiment deleted after 30 days is billed for six months.
  • Restores are two-step and temporary. The restored copy expires; grab what you need while it's staged.
  • Frequent access inverts the math. Teams that archived "everything older than 30 days" and then kept querying it saw bills go up (retrieval fees) and productivity drop (12-hour waits).
  • Retrieval fees on mass restores are real: an account-wide legal-discovery pull of 50 TB is ~$1,000 (standard) — budget for it, don't be surprised by it.

Skip this if

  • You might need the data back in under 12 hours — use Glacier Flexible Retrieval (minutes–hours) or Glacier Instant Retrieval (milliseconds).
  • Access is unpredictable — S3 Intelligent-Tiering with archive tiers gets you most of the savings without stranding hot data.
  • The data lives less than ~6 months, or the dataset is small enough that the savings don't cover the operational care.

Run this audit with your AI assistant

Paste this into Claude, ChatGPT, or any agent that can run the AWS CLI with read-only credentials. It audits your account for exactly the waste this sheet describes — and changes nothing.

You are auditing an AWS account for S3 Glacier Deep Archive savings.
Use the AWS CLI with READ-ONLY credentials. Do not create, modify, or
delete anything — report findings and recommended (unapplied) fixes only.

1. List buckets and sizes per storage class (CloudWatch BucketSizeBytes
   per StorageType). Identify data already in DEEP_ARCHIVE vs candidates
   still in STANDARD / STANDARD_IA / GLACIER.
2. Candidates = buckets/prefixes that look like long-term retention:
   names or tags containing backup, archive, logs, compliance, audit,
   export; plus any bucket where existing lifecycle rules stop at
   Glacier Flexible instead of continuing to Deep Archive
   (aws s3api get-bucket-lifecycle-configuration).
3. For each candidate, estimate: current $/mo vs Deep Archive
   $0.00099/GB-mo. Note constraints: 180-day minimum storage duration,
   12h (standard) / up to 48h (bulk) restores, retrieval fees
   $0.02/GB standard or $0.0025/GB bulk.
4. Check retrieval risk: GetRequests metrics / S3 Storage Lens access
   data if available — flag any candidate with regular reads; Deep
   Archive would make those slower AND pricier.

Report a table: bucket/prefix | size | current class | est. current $/mo |
est. Deep Archive $/mo | annual saving | access-pattern risk. Output the
recommended lifecycle-rule JSON per bucket for review — but do NOT apply
anything.
Works with any assistant that can run shell commands.

Want the guided version?

The S3 Glacier Deep Archive walkthrough covers this topic interactively — it asks about your setup, branches to what’s relevant, and quizzes you on the tricky parts. Free and anonymous.

Start the walkthrough