S3 Storage Classes Explained — Which One Saves You the Most Money

S3 Storage Classes Explained — Which One Saves You the Most Money

S3 storage costs aren’t what it used to be with all the pricing tiers and marketing language flying around. If you’ve ever searched “aws s3 storage classes comparison cost” and landed on something that just reformatted the AWS documentation with nicer fonts — yeah, that’s a special kind of frustrating. As someone who’s managed S3 buckets across everything from a scrappy 20GB side project to multi-terabyte data pipelines, I learned everything there is to know about where teams bleed money unnecessarily. The honest truth? Most are dramatically overpaying. Not because the savings are hard to get, but because nobody’s handed them a real decision framework with actual numbers. This article does that.

The S3 Storage Classes in 30 Seconds

But what is an S3 storage class? In essence, it’s a pricing tier that trades cost against retrieval speed and commitment minimums. But it’s much more than that — choosing wrong can cost you more than staying on Standard, which is the exact opposite of what people expect.

AWS offers seven main classes. Here’s the full landscape before we get into when each one actually makes sense.

Storage Class Price per GB/mo Retrieval Cost Retrieval Speed Min Storage Duration
S3 Standard $0.023 None Milliseconds None
S3 Intelligent-Tiering $0.023 (frequent) / $0.0125 (infrequent) / $0.004 (archive) None Milliseconds (most tiers) None
Standard-IA $0.0125 $0.01 per GB Milliseconds 30 days
One Zone-IA $0.01 $0.01 per GB Milliseconds 30 days
Glacier Instant Retrieval $0.004 $0.03 per GB Milliseconds 90 days
Glacier Flexible Retrieval $0.0036 $0.01 per GB (standard) 3–5 hours 90 days
Glacier Deep Archive $0.00099 $0.02 per GB 12–48 hours 180 days

All prices above are for US East (N. Virginia) — the cheapest AWS region. Expect 10–25% higher in places like EU Frankfurt or Asia Pacific Sydney. Run your own numbers once you know your region.

Intelligent-Tiering — The Set-and-Forget Option Most Teams Should Use

Quick note before I keep going. Intelligent-Tiering is the single most underused cost optimization in S3 — and I say that having watched multiple engineering teams pay full Standard prices for over a year on data nobody was touching.

Here’s how it works. Drop an object into Intelligent-Tiering and S3 monitors access automatically. Frequently accessed objects stay at the Standard price of $0.023/GB/mo. Anything untouched for 30 days drops to $0.0125/GB/mo. Leave it alone for 90 days and it falls to $0.004/GB/mo. No retrieval fees at any of those tiers. The only charge is a per-object monitoring fee — $0.0025 per 1,000 objects per month.

That monitoring fee matters. It’s what makes Intelligent-Tiering a bad call for buckets with millions of tiny files. Store 10 million 1KB files and you’re paying $25/month in monitoring fees alone — while the storage itself would only run $230 at Standard prices. The math flips against you fast.

Real Cost Comparison — 100GB Bucket, Mixed Access Patterns

Say you’ve got a 100GB bucket — user-uploaded assets, application logs, processed data exports, whatever. Assume 60% gets accessed regularly and 40% sits untouched for months.

  • S3 Standard: 100GB × $0.023 = $2.30/month
  • Intelligent-Tiering: 60GB × $0.023 + 40GB × $0.0125 = $1.38 + $0.50 = $1.88/month (plus negligible monitoring fees at this scale)

That’s 18% savings with zero ongoing work. At 1TB with the same access split, you’re saving $43/month. At 10TB, you’re saving $430/month — which is $5,160 back in your AWS bill annually without a single engineer doing anything except flipping the storage class on a bucket.

Frustrated by wildly variable access patterns on a media delivery bucket, I spent two weeks writing a custom Lambda function to shuffle objects between storage classes manually — using a spreadsheet to track which prefixes were “hot,” a cron job I kept tweaking every few days, the whole thing. A colleague then pointed out that Intelligent-Tiering existed and did all of this automatically. That’s two weeks I’d like back. Don’t make my mistake.

When Intelligent-Tiering Actually Makes Sense

  • Objects larger than 128KB — smaller objects don’t benefit from tiering at all
  • Access patterns you genuinely can’t predict in advance
  • Data that needs immediate retrieval but might go cold over time
  • Buckets with fewer than a few million objects — keeps the monitoring fee manageable

When Standard-IA and One Zone-IA Make Sense

Standard-IA costs $0.0125/GB per month — exactly half the price of Standard. One Zone-IA comes in at $0.01/GB per month, storing your data in a single availability zone instead of three. Both sound like obvious wins. They’re not, always — and the minimums baked into the pricing are why.

AWS charges a 128KB minimum object size for IA classes. Store a 10KB file in Standard-IA and you’re billed as if it’s 128KB. There’s also a 30-day minimum storage duration — delete an object after 10 days and you still pay for the full 30.

The Small File Problem

Here’s the math that trips people up. Ten thousand files averaging 5KB each. Total size: 50MB.

  • S3 Standard: 0.05GB × $0.023 = $0.00115/month
  • Standard-IA (billed at 128KB minimum): 10,000 × 128KB = 1,280MB = 1.28GB × $0.0125 = $0.016/month

Standard-IA costs 14x more than Standard for those small files. This is not a corner case — it catches teams storing thumbnails, config snippets, or metadata JSON files in IA classes while genuinely believing they’re saving money. They’re not.

Where Standard-IA Actually Wins

Standard-IA is the right call when your objects are large, you need them immediately if something breaks, and they’ll sit in S3 for well over 30 days. Backup files are the textbook example. So are database snapshots, quarterly reports, compliance audit exports.

Concrete scenario: 500GB of database backups. Instant access required if a restore is needed — but realistically you’re touching these files twice a year, maybe.

  • S3 Standard: 500GB × $0.023 = $11.50/month
  • Standard-IA: 500GB × $0.0125 = $6.25/month (plus retrieval costs on the rare restore)

That’s $63/year saved on storage alone. Two full restores at 500GB each adds $10 in retrieval fees. You’re still ahead by $53 annually. The math holds up.

One Zone-IA — The Extra Discount With One Catch

One Zone-IA saves another 20% versus Standard-IA. The tradeoff — your data lives in a single AWS availability zone. If that AZ goes down, which availability zones occasionally do, your data is unavailable until it recovers. More critically, a permanent loss event in that AZ means your data is gone. AWS does not replicate it.

Use One Zone-IA for data you can regenerate. Thumbnail images are the textbook case — originals in Standard, the 200×200 resized versions in One Zone-IA. If they’re lost, you regenerate them from the originals. Clean and simple. Using One Zone-IA as your only copy of customer records is a different story entirely.

Glacier Tiers — Long-Term Storage Cost Math

The Glacier tiers are where dramatic savings live. They’re also where teams most often miscalculate by ignoring retrieval fees entirely until the bill arrives.

Understanding the Three Glacier Options

Glacier Instant Retrieval at $0.004/GB/month gives you millisecond retrieval with a $0.03/GB retrieval fee. Designed for data you might need once a quarter — medical images, old user records, archival media files.

Glacier Flexible Retrieval at $0.0036/GB/month is nearly the same storage price, but retrieval takes 3–5 hours on the standard tier. There’s an expedited option — 1–5 minutes — but it costs more. Standard retrieval fee is $0.01/GB.

Glacier Deep Archive at $0.00099/GB/month is the cheapest storage AWS sells, full stop. Retrieval takes 12–48 hours and costs $0.02/GB.

Real Cost Comparison — 1TB Stored for One Year

Actual numbers. Store 1TB for 12 months, retrieve 50GB twice during the year — 100GB total retrieval.

  • S3 Standard: 1,000GB × $0.023 × 12 = $276/year. No retrieval fees. Total: $276.
  • Glacier Instant Retrieval: 1,000GB × $0.004 × 12 = $48/year. Plus 100GB × $0.03 retrieval = $3. Total: $51.
  • Glacier Flexible Retrieval: 1,000GB × $0.0036 × 12 = $43.20/year. Plus 100GB × $0.01 retrieval = $1. Total: $44.20.
  • Glacier Deep Archive: 1,000GB × $0.00099 × 12 = $11.88/year. Plus 100GB × $0.02 retrieval = $2. Total: $13.88.

Deep Archive at $13.88 versus Standard at $276. That’s a 95% reduction — or looked at another way, Deep Archive is 23x cheaper than Standard for data that just needs to exist somewhere safe and accounted for.

When the Wait Is Worth It

The question is always whether the retrieval delay costs you something real. For compliance data, legal holds, financial records kept for seven years but rarely opened — the 12-hour Deep Archive wait is completely irrelevant. Nobody needs a 2018 vendor invoice in the next 20 minutes.

Disaster recovery is more nuanced. Glacier Flexible Retrieval’s 3–5 hour window might be acceptable for secondary backups if your primary recovery path uses something faster. It’s not acceptable as your only recovery mechanism for production databases — that’s what makes it complicated rather than a simple yes or no.

Watch the Minimum Storage Durations

Glacier Instant and Flexible Retrieval both carry 90-day minimums. Deep Archive is 180 days. Delete before those windows and you pay for the full minimum period regardless. If you’re archiving data that might get purged within a few months, run the math before committing — Standard-IA might actually be cheaper for short-term infrequent storage.

Choosing Between the Three Glacier Tiers

  • Need data immediately when you do need it, even quarterly — Glacier Instant Retrieval
  • Can wait 3–5 hours, retrieve occasionally — Glacier Flexible Retrieval
  • Rarely or never retrieve, compliance-driven retention — Glacier Deep Archive

Putting It Together — A Quick Decision Framework

After working through these numbers across several different accounts — including one team that had been storing 8TB of processed video exports in Standard for 14 months without touching them once — here’s the shorthand I actually use.

  1. Data accessed regularly and unpredictably, objects over 128KB → Intelligent-Tiering
  2. Rarely accessed but needs immediate retrieval, large objects → Standard-IA
  3. Regenerable data accessed rarely → One Zone-IA
  4. Archived data you might need once a quarter → Glacier Instant Retrieval
  5. Long-term backup, a few hours’ wait is fine → Glacier Flexible Retrieval
  6. Compliance retention, rarely if ever retrieved → Glacier Deep Archive
  7. Everything else, or when you’re unsure → S3 Standard — no minimums, no surprises

That’s what makes Intelligent-Tiering endearing to us engineers who can’t babysit access patterns all day — it genuinely requires nothing after the initial setup. Enable it on large active buckets. Then push cold data to Deep Archive instead of letting it age in Standard forever. Those two changes alone typically cut S3 bills by 40–70% for teams that haven’t revisited their storage class configuration in a while.

Run your own numbers using actual sizes and retrieval frequencies. The AWS Pricing Calculator handles all of this if you want precision. Even rough estimates will tell you whether you’re leaving real money on the table — and for most teams that set up their S3 buckets in 2021 and haven’t touched the defaults since, the answer is probably yes.

Jason Michael

Jason Michael

Author & Expert

Jason Michael is the editor of StigCloud. Articles on the site are researched, fact-checked, and reviewed by the editorial team before publication. Read our editorial standards or send a correction at the editorial policy page.

57 Articles
View All Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Stay in the loop

Get the latest stigcloud updates delivered to your inbox.