S3 Standard-IA costs 45% less per GB than S3 Standard in Frankfurt: $0.0135 against $0.0245 per GB-month. That number moves a lot of data into lifecycle rules, and a good share of those rules make the bill go up rather than down.
The reason is that the GB-month rate is one of four charges, and the other three run in the opposite direction. Standard-IA adds a retrieval fee, nearly doubles the PUT price, multiplies the GET price by 2.3, pads every object under 128 KB up to 128 KB, and bills you for 30 days even if the object lives for two. Whether you save money depends on how those pull against each other for your object size and your access rate.
This article works out the crossover points. Every price came out of the AWS Price List Query API on 12 August 2026 (price list version 20260807185915, rates effective 1 August 2026) for eu-central-1 and us-east-1. Every break-even is calculated from those prices, and the formula is shown so you can rerun it with your own numbers. If you want the exam-level tour of what each class is, that is the companion piece: Amazon S3 for the SAA-C03 exam. This one is about which one is actually cheaper.
What actually determines the cost of an S3 storage class?
Four charges decide it: storage per GB-month, retrieval per GB, requests per thousand, and two structural penalties — the minimum billable object size and the minimum storage duration. Only the first gets quoted in comparison tables.
Here are the storage rates, straight from the Pricing API:
| Storage class | eu-central-1 $/GB-mo | us-east-1 $/GB-mo | Retrieval $/GB | GET per 10,000 (eu) |
|---|---|---|---|---|
| S3 Standard (first 50 TB) | 0.0245 | 0.023 | none | 0.0043 |
| S3 Intelligent-Tiering (Frequent) | 0.0245 | 0.023 | none | 0.0043 |
| S3 Standard-IA | 0.0135 | 0.0125 | 0.01 | 0.01 |
| S3 One Zone-IA | 0.0108 | 0.01 | 0.01 | 0.01 |
| S3 Glacier Instant Retrieval | 0.005 | 0.004 | 0.03 | 0.10 |
| S3 Glacier Flexible Retrieval | 0.00405 | 0.0036 | 0.012 (Standard tier) | 0.0043 |
| S3 Express One Zone | 0.118 | 0.11 | 0.000645 | 0.000323 |
Two things in that table are easy to miss. Glacier Instant Retrieval's GET requests cost 23 times a Standard GET, not 23 percent more. And Intelligent-Tiering's Frequent Access tier is priced identically to Standard — the class only saves money once objects actually tier down, which takes 30 days of no access.
The structural penalties come from the S3 storage class comparison table in the AWS documentation:
| Storage class | Minimum storage duration | Minimum billable object size |
|---|---|---|
| S3 Standard | none | none |
| S3 Intelligent-Tiering | none | none (objects under 128 KB are not monitored) |
| S3 Standard-IA | 30 days | 128 KB |
| S3 One Zone-IA | 30 days | 128 KB |
| S3 Glacier Instant Retrieval | 90 days | 128 KB |
| S3 Glacier Flexible Retrieval | 90 days | 40 KB metadata per object |
| S3 Glacier Deep Archive | 180 days | 40 KB metadata per object |
How often can you read data before Standard-IA stops saving money?
Once a month, roughly. In Frankfurt, Standard-IA stops being cheaper than Standard once you retrieve about 104% of the dataset per month with 1 MB objects. If your data is read more than once a month on average, Standard-IA costs more.
The math is one line. Let f be the fraction of the dataset you retrieve per month — f = 0.25 means you read a quarter of your bytes every month. Per GB stored:
Standard cost = 0.0245
Standard-IA cost = 0.0135 + f × 0.01 (retrieval)
+ f × n × (GET_ia − GET_std) (n = objects per GB)
Setting them equal and solving for f:
f = (0.0245 − 0.0135) / (0.01 + n × (0.000001 − 0.00000043))
With 1 MB objects there are 1,024 objects per GB, so the GET delta adds $0.000584 per GB read:
f = 0.0110 / (0.01 + 0.000584) = 0.0110 / 0.010584 = 1.039
Object size shifts that number more than people expect, because the request delta scales with object count:
| Object size | Break-even reads/month (eu-central-1) | Break-even reads/month (us-east-1) |
|---|---|---|
| 8 MB | 1.09 | 1.04 |
| 1 MB | 1.04 | 0.99 |
| 128 KB | 0.75 | 0.70 |
| Requests ignored | 1.10 | 1.05 |
Now look at what that means against AWS's own guidance. The documentation describes Standard-IA as suited to data accessed "once a month". Read your data exactly once a month at 1 TB of 1 MB objects and the yearly numbers are $306.47 for Standard against $301.35 for Standard-IA — a saving of $5.12, or 1.7%. You took on a retrieval fee, a 30-day minimum and a 128 KB floor to save under two percent.
Standard-IA only earns its complexity well below the break-even. At one read every four months (f = 0.25), the same terabyte drops to $199.75 a year against Standard's $302.41 — a 34% cut. That is the band worth targeting.
When does Glacier Instant Retrieval beat Standard-IA?
When you read less than about 29% of the data per month with 1 MB objects, or 42.5% if your objects are large enough that request costs disappear. Below that, Glacier Instant Retrieval wins; above it, Standard-IA does.
Glacier Instant Retrieval is cheaper to store ($0.005 vs $0.0135 in Frankfurt) and much more expensive to touch: retrieval is $0.03/GB instead of $0.01, and GETs are $0.10 per 10,000 instead of $0.01. Same structure as before:
0.0135 + f × (0.01 + n × 0.000001) = 0.005 + f × (0.03 + n × 0.00001)
With 1,024 objects per GB:
0.0085 = f × (0.04024 − 0.011024) = f × 0.029216
f = 0.291
A curiosity worth noting: this break-even is identical in both regions. The storage gap is $0.0085/GB-month in Frankfurt and in N. Virginia alike, and the retrieval prices are the same in both. Regional price differences cancel out here even though they do not for the Standard comparison.
Object size swings this one hard, because Glacier Instant Retrieval's GET price is what makes small objects expensive there:
- 8 MB objects: GIR wins below 40.2% per month, one full read every 2.5 months
- 1 MB objects: below 29.1% per month, one full read every 3.4 months
- 128 KB objects: below 9.1% per month, one full read every 11 months
AWS positions Glacier Instant Retrieval for data "accessed once a quarter". For 1 MB objects the crossover lands at one read every 3.4 months, so quarterly access sits marginally on the wrong side of it — at exactly quarterly, Standard-IA is a few percent cheaper. Step one notch further apart, to a full read every four months, and the gap opens properly: $185 a year for a terabyte in Glacier Instant Retrieval against $200 in Standard-IA and $302 in Standard.
When does Intelligent-Tiering stop making sense?
Below roughly 238 KB per object in Frankfurt (250 KB in N. Virginia), the monitoring fee costs more than the tiering saves. Intelligent-Tiering charges $0.0025 per 1,000 objects per month, which is a fixed cost per object while the saving scales with object size.
The monitoring fee is $0.0000025 per object per month, in both regions. An object that ages into the Infrequent Access tier saves the gap between the Frequent and Infrequent rates, $0.0110 per GB-month in Frankfurt. Break even where those meet:
monitoring = 0.0025 / 1000 # per object per month
saving = 0.0245 - 0.0135 # per GB-month, FA -> IA
size_gb = monitoring / saving # 0.00022727 GB
size_kb = size_gb * 1048576 # 238.3 KB
If objects eventually reach the Archive Instant Access tier after 90 days without access, the saving grows to $0.0195/GB-month and the threshold falls to 134 KB. That is the most generous case, and it still sits above the 128 KB line where AWS stops monitoring at all.
So the window where Intelligent-Tiering costs you money is narrow but real: objects between 128 KB and roughly 240 KB get monitored, get charged, and do not save enough to cover it. A bucket of 50 million 200 KB thumbnails pays $125 a month in monitoring fees to save less than that in tiering.
The other failure mode has nothing to do with size. Intelligent-Tiering only saves money when objects go 30 days untouched. Data that is read weekly never leaves the Frequent Access tier, which is priced identically to Standard — so the monitoring fee is pure loss no matter how big the objects are.
What does the 128 KB billing floor really cost?
It flips the discount into a penalty below a specific size. In Frankfurt, any object smaller than 70.5 KB costs more in Standard-IA than in Standard, before a single byte is retrieved. The formula is clean:
break-even size = 128 KB × (class rate / Standard rate)
Standard-IA in Frankfurt: 128 × 0.0135 / 0.0245 = 70.5 KB. One Zone-IA: 56.4 KB. Glacier Instant Retrieval, whose rate is far lower, only turns bad below 26.1 KB.
A worked example makes the size of the mistake obvious. Take 10 million objects of 32 KB — a fairly ordinary thumbnail or telemetry-fragment bucket:
- Real data: 10,000,000 × 32 KB = 305.2 GB
- Billed in Standard-IA: 10,000,000 × 128 KB = 1,220.7 GB
- Standard-IA: 1,220.7 × $0.0135 = $16.48/month
- Standard: 305.2 × $0.0245 = $7.48/month
The lifecycle rule that "saved 45%" doubled the bill. Nothing in the S3 console warns you about this, and the usage line item that carries it — TimedStorage-SIA-SmObjects — reads like a normal storage charge.
How long does an object have to live to be worth moving?
Longer than the minimum duration suggests. In Frankfurt an object must sit in Standard-IA for 16.5 days just to match what Standard would have cost — and that is with zero retrievals. The 30-day minimum means anything deleted before then is billed for the full 30 days anyway.
0.0245 × (D / 30) = 0.0135 → D = 16.53 days
Write a terabyte to Standard-IA and delete it on day five and you pay $13.82. The same terabyte in Standard for five days costs $4.18. The early-delete charge is not a flat penalty; it is the class's own rate applied to the days you did not use, which is why it lands as a separate EarlyDelete-SIA line.
The transition request is the second cost people forget. Moving objects into Standard-IA costs $0.01 per 1,000, which is trivial per gigabyte and brutal per object:
- 8 MB objects: saves $0.0000859 a month each, transition pays back in 0.12 months
- 1 MB objects: $0.0000107 a month, payback 0.93 months
- 256 KB objects: $0.0000027 a month, payback 3.72 months
- 128 KB objects: $0.0000013 a month, payback 7.45 months
- Under 70.5 KB: the saving is negative, so the transition never pays back
Transitions into the archive classes cost more: $0.02 per 1,000 into Glacier Instant Retrieval, $0.036 into Glacier Flexible Retrieval, $0.06 into Glacier Deep Archive (Frankfurt). For a bucket of a hundred million small objects, a single lifecycle transition into Deep Archive is a $6,000 one-off charge.
The whole thing in one table
Same terabyte, 1 MB objects, twelve months, eu-central-1, varying how much of it you read each month. Storage, retrieval and GET requests included; transitions excluded.
| Reads per month | S3 Standard | S3 Standard-IA | Glacier Instant Retrieval |
|---|---|---|---|
| 0 (write once, never read) | $301.06 | $165.89 | $61.44 |
| 0.1 | $301.60 | $179.43 | $110.89 |
| 0.25 | $302.41 | $199.75 | $185.06 |
| 0.5 | $303.76 | $233.62 | $308.67 |
| 1.0 | $306.47 | $301.35 | $555.91 |
| 2.0 | $311.88 | $436.81 | $1,050.38 |
Standard's line barely moves — from $301 to $312 across a twentyfold change in read volume — because it has no retrieval fee and cheap GETs. That flatness is the actual product. You pay a premium per GB to make access free, and the premium is worth it the moment access is anything but rare.
What to do
Do not write a lifecycle rule based on the GB-month rate. Pull your object count and total size per prefix from S3 Storage Lens or an S3 Inventory report, divide to get mean object size, and check it against the floor first. Under 70.5 KB mean size, stop — no infrequent-access class will help you, and the fix is packing objects together, not tiering them.
Above that, get an access rate before you get an opinion. S3 Server Access Logs or CloudTrail data events for a fortnight will tell you what fraction of bytes actually gets read per month. Then use the numbers above: over roughly one full read a month, stay on Standard. Between about a quarter and a full read, Standard-IA. Under a quarter, Glacier Instant Retrieval. If you genuinely cannot measure it and objects are comfortably over 240 KB, Intelligent-Tiering is worth its fee — that fee buys you the right not to know.
And rerun the prices. Everything here is dated 12 August 2026 for two regions. Retrieval and request prices vary by region far less than storage prices do, which quietly moves the break-even points around:
# --region is the Pricing API endpoint, NOT the region being priced.
# The region being priced is the regionCode filter.
aws pricing get-products \
--region us-east-1 \
--service-code AmazonS3 \
--filters Type=TERM_MATCH,Field=productFamily,Value=Storage \
Type=TERM_MATCH,Field=regionCode,Value=eu-central-1 \
| jq -r '.PriceList[] | fromjson
| [.product.attributes.usagetype,
(.terms.OnDemand[].priceDimensions[].pricePerUnit.USD)]
| @tsv'
# The Intelligent-Tiering monitoring fee sits under its own usage type,
# and is not part of the Storage product family.
aws pricing get-products \
--region us-east-1 \
--service-code AmazonS3 \
--filters Type=TERM_MATCH,Field=usagetype,Value=EUC1-Monitoring-Automation-INT
FAQ
Is S3 Standard-IA always cheaper than S3 Standard?
No. Standard-IA is cheaper only when objects average more than about 70 KB and you retrieve less than roughly one full copy of the data per month. Below 70.5 KB the 128 KB billing floor makes it more expensive in Frankfurt even with zero retrievals, and above one read per month the $0.01/GB retrieval fee overtakes the storage saving.
How much does S3 Intelligent-Tiering monitoring cost?
$0.0025 per 1,000 objects per month, which is $0.0000025 per object, and it is the same price in eu-central-1 and us-east-1. Objects smaller than 128 KB are not monitored and are not charged the fee. For the fee to pay for itself through tiering, an object needs to be larger than about 238 KB in Frankfurt.
What is the 128 KB minimum billable object size in S3?
S3 Standard-IA, One Zone-IA and Glacier Instant Retrieval bill every object as if it were at least 128 KB. A 20 KB object in Standard-IA is charged as 128 KB. S3 Standard, S3 Express One Zone and Intelligent-Tiering have no minimum billable size.
What happens if I delete an object before the minimum storage duration?
You are charged for the full minimum period. Standard-IA and One Zone-IA require 30 days, Glacier Instant Retrieval and Glacier Flexible Retrieval 90 days, and Glacier Deep Archive 180 days. AWS bills the normal storage charge plus a pro-rated charge for the remaining days, at that class's own rate.
Which S3 storage class is cheapest for data that is never read?
S3 Glacier Deep Archive, followed by Glacier Flexible Retrieval at $0.00405/GB-month in Frankfurt — about $50 a year per terabyte against Standard's $301. Check the transition request cost before committing, though: moving many small objects into an archive class can cost more than a year of the storage it saves, and both Glacier archive classes add 40 KB of billed metadata per object.
Does S3 Intelligent-Tiering charge retrieval fees?
No. Intelligent-Tiering has no retrieval fees and no minimum storage duration, which is what separates it from Standard-IA. You pay the per-object monitoring fee instead, and objects in the optional Archive Access and Deep Archive Access tiers still need a RestoreObject call before they can be read.
Are S3 break-even points the same in every AWS region?
Not for the Standard comparison. Storage prices vary by region — Standard is $0.0245/GB-month in Frankfurt and $0.023 in N. Virginia — while retrieval prices are often identical. The Standard-IA against Glacier Instant Retrieval break-even happens to land at exactly 42.5% in both regions because the storage gap is $0.0085 in each, but that is coincidence, not a rule. Rerun the numbers for your region.