All cheat sheets
Storagecheat sheet

S3 Glacier Flexible Retrieval

Archive storage at ~$4/TB-month — 82% cheaper than S3 Standard — with retrieval speeds you pick per request: minutes (expedited), hours (standard), or overnight (bulk, nearly free).

Last reviewed: July 11, 2026

TL;DR: The classic compliance-archive tier, around since 2012: ~$0.0036/GB-month (roughly $4/TB), 82% below Standard, with a choice of retrieval speed per request — expedited (1–5 min), standard (3–5 h), or bulk (5–12 h, nearly free). For backups, closed projects, and audit archives where you can plan a few hours ahead, the savings are enormous.

The numbers

  • Storage: ~$4/TB-month vs ~$23/TB on Standard
  • Retrieval options: Expedited 1–5 min ($0.03/GB + $10/1,000 requests) · Standard 3–5 h ($0.01/GB) · Bulk 5–12 h (~$0.0025/GB)
  • Minimums: 90-day storage duration; 40 KB per object
  • Durability: 11 nines, 3+ AZs — same as Standard

Worked examples: 1 PB of genomics archives = $4,000/month vs $23,000 on Standard ($220k+/year saved). 10 TB of logs = $41/month vs $235; even the year you restore a full TB for an audit ($100 retrieval + egress), you're still far ahead.

Do this

  1. Transition by age with a lifecycle rule — nobody uploads to Glacier manually:

    aws s3api put-bucket-lifecycle-configuration --bucket YOUR-BUCKET \
      --lifecycle-configuration '{"Rules":[{"ID":"archive-old","Status":"Enabled",
      "Filter":{"Prefix":"backups/"},
      "Transitions":[{"Days":90,"StorageClass":"GLACIER"}]}]}'
    
  2. Restores are jobs, not downloads. restore-object stages a temporary copy (default ~1 day) once the job finishes; wire up SNS/EventBridge notifications so nobody polls, and download within the window.

  3. Use Bulk for anything big and plannable — at ~$0.0025/GB it's nearly free; audit pulls submitted in the morning are ready by end of day.

  4. Mass restores → S3 Batch Operations. Thousands of objects for a migration or discovery request should be one batch job, not a script of loops.

  5. Test the restore workflow before you need it — the worst time to learn the two-step dance is during an incident.

Gotchas

  • Expedited isn't guaranteed without provisioned capacity (~$100/month per unit); under load, expedited requests can be throttled. Don't build a DR plan on it casually.
  • 90-day minimum + 40 KB minimum: churny or tiny-object data gets billed more than it saves. Aggregate small files before archiving.
  • The restored copy expires (you set the window; default is short). Need it twice? Pay twice — or copy it back to Standard while staged.
  • "Semi-frequent" access kills the math. Monthly retrievals mean retrieval fees plus friction; that data belongs in Glacier Instant Retrieval or Intelligent-Tiering.
  • Transitions run in a daily batch — don't expect objects to move minutes after adding a rule.

Skip this if

  • You need millisecond access — Glacier Instant Retrieval.
  • You'll realistically never read it — Deep Archive is ~4× cheaper still.
  • The data churns (rewritten or deleted inside 90 days) — Standard is cheaper despite the price tag.
  • Sub-hour recovery objectives: only expedited gets close, and it's the priciest, least-guaranteed option.

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 Flexible Retrieval savings.
Use the AWS CLI with READ-ONLY credentials. Do not create, modify, or
delete anything — report findings and recommended (unapplied) fixes only.

1. Per bucket: size per storage class (CloudWatch BucketSizeBytes by
   StorageType) and existing lifecycle rules
   (aws s3api get-bucket-lifecycle-configuration).
2. Candidates: STANDARD / STANDARD_IA data that is retention-driven
   (backups, completed-project archives, old logs, compliance) and read
   at most a few times a year, where a 3–5 hour (or overnight) restore
   is acceptable. Flag likely candidates by bucket/prefix naming and
   tags; list them for user confirmation.
3. Cost math: Glacier Flexible ≈ $0.0036/GB-mo vs Standard $0.023.
   Include retrieval economics: Standard retrieval ~$0.01/GB (3–5 h),
   Bulk ~$0.0025/GB (5–12 h), Expedited ~$0.03/GB (1–5 min, not
   guaranteed without provisioned capacity). Minimums: 90-day storage,
   40 KB per object.
4. Also check: buckets already in GLACIER whose access data suggests
   they'd be cheaper in DEEP_ARCHIVE (rarely restored) or should be
   GLACIER_IR (restored often / urgently).

Report a table: bucket/prefix | size | current class | est. $/mo now |
est. $/mo in Glacier Flexible | annual saving | restore-latency risk.
Output recommended lifecycle-rule JSON per winner — but do NOT apply
anything.
Works with any assistant that can run shell commands.

Want the guided version?

The S3 Glacier Flexible Retrieval 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