S3 Storage Classes Compared: Standard to Glacier Deep Archive
The first lever for cutting an S3 bill is the storage class. Standard and Deep Archive differ by 23x on storage rates, so where the data sits decides most of what a bucket costs. But the cheap classes come with conditions pulling the other way — retrieval fees and minimum storage durations — and moving data blindly makes things more expensive, not less. The conclusion up front: for data whose access pattern you know, build a lifecycle staircase; for data you don’t, hand it to Intelligent-Tiering. S3 basics are covered in AWS Intermediate #3. Prices are for us-east-1.
The full map: read rates and conditions together #
| Class | Storage (GB-month) | Retrieval (per GB) | Minimum duration | Access speed |
|---|---|---|---|---|
| Standard | ~$0.023 | None | None | Immediate |
| Intelligent-Tiering | Automatic by tier | None | None | Immediate |
| Standard-IA | ~$0.0125 | ~$0.01 | 30 days | Immediate |
| One Zone-IA | ~$0.01 | ~$0.01 | 30 days | Immediate |
| Glacier Instant Retrieval | ~$0.004 | ~$0.03 | 90 days | Immediate |
| Glacier Flexible Retrieval | ~$0.0036 | Free〜~$0.03 | 90 days | Minutes to hours |
| Glacier Deep Archive | ~$0.00099 | ~$0.0025〜0.02 | 180 days | 12〜48 hours |
There is one way to read this: moving down the table, storing gets cheaper while getting data back gets more expensive or slower. So the selection criterion is not “how long will it sit” but “how often, and how urgently, will you pull it back.”
The three traps in Standard-IA #
Standard-IA stores at roughly half the Standard rate, so it is the first savings target everyone sees. Three conditions have to go into the same calculation.
- Retrieval fees: about $0.01 per GB on the way out. If your pattern re-reads a large share of the data each month, retrieval fees overtake the storage savings. The rough boundary is access less than once a month.
- 30-day minimum: delete or transition an object before 30 days and you are billed for 30 days anyway. A lifecycle rule that sends short-lived temp files to IA loses money.
- 128KB minimum billable size: objects under 128KB are billed as 128KB. In a bucket with millions of small objects, the real savings from an IA transition are far smaller than the table suggests.
One Zone-IA adds a single-AZ condition on top: data can be lost if the AZ fails, so it is only for derived, regenerable data — thumbnails, caches, rebuildable artifacts.
The three Glacier classes: same name, different animals #
- Glacier Instant Retrieval: despite the name, access is immediate at millisecond latency. Storage is a third of IA, but retrieval is about $0.03 per GB — three times IA. Meant for backups touched maybe once a quarter, old logs, and original media.
- Glacier Flexible Retrieval: no immediate access; you go through a restore request. Standard restores take hours and bulk restores take half a day, but retrieval can be free. For data you almost never pull, where waiting a day is acceptable.
- Glacier Deep Archive: the cheapest at about $0.00099 per GB-month. Restores run 12 hours standard and up to 48 hours bulk, with a 180-day minimum. The terminus for compliance data — audit logs, medical and financial records — that in practice never gets pulled.
All three carry the 128KB minimum billable size and a 90- or 180-day minimum duration, so keep small and short-lived objects out.
Intelligent-Tiering: the answer when you don’t know the pattern #
Intelligent-Tiering watches each object’s access, moves it to an IA-rate tier after 30 days without access and a Glacier Instant-rate tier after 90, and promotes it back the moment it is read again. The key property: no retrieval fees and no tier-transition charges. The first IA trap disappears entirely.
The price is a monitoring fee ($0.0025 per 1,000 objects per month), which makes the bad fits just as clear. Many small objects erode the savings through monitoring fees, and objects under 128KB are excluded from monitoring altogether — they stay at Standard rates forever. Conversely, a bucket with tens of thousands to millions of objects in the hundreds of KB and up, where nobody knows what will be read when (user uploads, data lakes), gets cheaper just by switching it on. Putting data whose pattern you already know into Intelligent-Tiering only wastes monitoring fees — that case belongs to lifecycle rules.
Lifecycle practice: transitions cost money too #
For data with a known pattern, the classic shape is a lifecycle staircase — say, for logs: Standard for 30 days → Standard-IA at 90 days → Glacier Flexible at one year → expire. Put two things into the calculation.
- Transition request fees: class transitions are billed per object, at $0.01〜0.05 per 1,000 requests. Storage savings scale with object size while transition fees scale with object count, so transitioning millions of small objects puts the fees months ahead of the savings. For such buckets it is cheaper to aggregate objects first (log compaction) or to keep only the expiration rule and skip transitions.
- Decide from measurements: check which prefixes actually get read with Storage Class Analysis or Storage Lens, and scope rules per prefix. The common failure is a bucket-wide rule that demotes hot data to IA along with everything else.
Cleaning up untouched old data, incomplete multipart uploads, and stale versions overlaps with the standing checklist.
Summary #
- The selection criterion is access frequency and urgency, not retention length. The cheaper the storage, the more expensive or slower the retrieval.
- Standard-IA has three conditions to price in: retrieval fees, a 30-day minimum, and 128KB minimum billing. Data read monthly or more belongs in Standard.
- Glacier splits three ways: Instant Retrieval when access must stay immediate, Flexible when half a day’s wait is fine, Deep Archive for compliance data you effectively never pull.
- When the pattern is unknown, Intelligent-Tiering is the default: automatic tiering with no retrieval fees, paid for by a per-object monitoring fee.
- Lifecycle transitions bill per object. For buckets of many small objects, aggregate or expire before you transition.