Your team wants to cut an S3 bill with a lifecycle rule that transitions every object in a bucket to S3 Standard-IA after 30 days. For which objects does that raise the bill instead of lowering it, and why?
answer
- three hidden charges, not one price
- tiny objects billed at a floor size
- early delete still pays out the term
- reads are not free in this class
- large, cold, long-lived is the fit
basics
~20 sSmall, short-lived and frequently-read objects. S3 Standard-IA bills a per-object minimum size and a 30-day minimum duration, and charges a per-GB retrieval fee, so tiny objects, objects deleted early, and hot data all cost more there than in S3 Standard.
solid answer
~50 sStandard-IA is cheaper per GB but attaches three charges that Standard does not. First, a minimum billable object size of 128 KB — a 10 KB object is billed as 128 KB, so a bucket of tiny files gets more expensive; lifecycle by default will not even transition sub-128 KB objects into `STANDARD_IA` or `ONEZONE_IA`. Second, a 30-day minimum storage duration: delete or overwrite an object earlier and you still pay the remaining days. Third, a per-GB retrieval charge plus higher per-request pricing, so data that is read regularly costs more in IA than the storage saving is worth. The rule works for large, cold, long-lived objects and backfires on everything else — which is why you look at object-size distribution and access data before setting the age, rather than applying one rule to the whole bucket.
go deeper
Know that S3 Standard-IA trades a lower storage price for a charge every time you read the data, so it suits archives and backups rather than files an application reads regularly.
Be able to list all three constraints — 128 KB minimum billable size, 30-day minimum duration, per-GB retrieval fee — and work through which population of objects each one penalises.
Demonstrate that you measure before you tier: Storage Class Analysis for access patterns, S3 Inventory for the size distribution, and a break-even calculation rather than a default 30-day rule applied bucket-wide.
Own the estate-level policy — where aggregating small objects beats tiering them, when One Zone-IA's durability tradeoff is acceptable, and how a tiering standard is enforced and reviewed without each team guessing its own thresholds.
## Why cheaper per GB is not cheaper S3's infrequent-access classes sell a lower per-GB storage rate in exchange for constraints on how you use the data. The interview question is always the same underneath: do you understand that the sticker price is one of four numbers? For S3 Standard-IA and S3 One Zone-IA the other three are the minimum billable object size, the minimum storage duration, and the retrieval fee. ## Minimum billable object size: 128 KB IA classes bill each object as if it were at least 128 KB. Store a 10 KB thumbnail in Standard-IA and you pay for 128 KB — roughly thirteen times the bytes you actually keep. At the published rates that makes a bucket of tiny objects strictly more expensive in IA than in Standard. AWS added a guard rail for exactly this: as of 2025, S3 Lifecycle does not transition objects smaller than 128 KB from S3 Standard into `STANDARD_IA` or `ONEZONE_IA` (nor into `INTELLIGENT_TIERING` or `GLACIER_IR`). So the naive "transition everything" rule often quietly skips the objects it would have hurt — but you cannot rely on that as a design: it makes the rule a no-op for that population, so your projected savings never appear, and the same objects are still sitting in Standard. The correct move is to look at the size distribution first and, if small objects dominate, aggregate them rather than tier them. ## Minimum storage duration: 30 days An object in Standard-IA is billed for at least 30 days of storage in that class. Delete it, overwrite it, or transition it onward after 10 days and you are still charged for the remaining 20. A pipeline that writes files, transitions them, and then reprocesses and replaces them a week later pays twice. There is a matching rule on the way in: an object must have been stored at least 30 days before lifecycle will transition it from S3 Standard to Standard-IA or One Zone-IA. That is why 30 days is the conventional first step in every staircase rule you see — it is the earliest permitted step, not a considered choice. ## Retrieval fees and request pricing IA classes charge per GB retrieved, on top of the request charges, and IA GET and PUT requests are priced higher than Standard's. This is the charge that surprises people, because it scales with how the application behaves rather than with what you store. Data read a few times a month across the whole dataset can easily burn more in retrieval than the per-GB discount saves. The break-even is a genuine calculation: roughly, the monthly retrieval volume as a fraction of stored volume, priced against the storage delta. ```text monthly cost (IA) = GB * ia_storage_rate + GB_retrieved * retrieval_rate + requests monthly cost (Std) = GB * std_storage_rate + requests ``` When the middle term dominates, IA loses. ## One Zone-IA adds a durability tradeoff, not just a price S3 One Zone-IA is cheaper still because the data lives in a single Availability Zone. The 128 KB minimum size and 30-day minimum duration still apply, and now an AZ loss can destroy the data outright. It is correct for reproducible derivatives — thumbnails you can regenerate, a secondary copy of something replicated elsewhere — and wrong for anything you cannot rebuild. ## How to decide instead of guessing S3 Storage Class Analysis is the AWS-native answer to "is this data actually cold?" You enable it on a bucket, prefix or tag filter, and after an observation period it reports how much of the storage is being retrieved by age band and recommends a transition age. It needs about a month of observation before its output means anything, and it deliberately only advises on the Standard-to-IA decision. S3 Inventory gives you the other half: a scheduled report listing every object with its size, storage class and last-modified date, which you query to get the size distribution the analysis does not show. ## The answer an interviewer wants Name the three charges, then apply them: small objects lose on the size minimum, churny objects lose on the duration minimum, hot objects lose on retrieval. IA is for data that is large, cold, and kept a long time — and you prove it is cold with Storage Class Analysis rather than assuming the number 30.
- How would you find out whether the data in a bucket is actually cold before writing the rule?Enable S3 Storage Class Analysis on the bucket or a prefix filter and let it observe for at least a month; it reports retrieval volume by object age and recommends a transition age. Pair it with an S3 Inventory report to get the object-size distribution, which tells you whether the 128 KB minimum will eat the savings.
- When is S3 One Zone-IA the right choice over Standard-IA?When the data is reproducible or already duplicated elsewhere — regenerated thumbnails, derived datasets, a secondary copy of a replicated object. It is cheaper because it lives in one Availability Zone, so an AZ loss destroys it. The same 128 KB minimum size and 30-day minimum duration still apply.
- A pipeline overwrites its output files every week. What does that do to an IA transition rule?Each overwrite ends the old object's life early, so you pay out the remainder of its 30-day minimum on top of storing the new one. Rewritten data belongs in S3 Standard; only the versions that go quiet and stay quiet are worth transitioning.
saying these in an interview costs you the question
- Compares only the per-GB rate and ignores retrieval and minimums
- Thinks Standard-IA is simply cheaper for all data
- Believes deleting early cancels the remaining storage charge
- Assumes small files benefit most because there are so many
- Treats One Zone-IA as a free discount rather than a durability tradeoff