S3 Standard costs $0.023 per GB per month in us-east-1. Most articles bury this number three paragraphs down. Here it is in the first sentence, because that is the only number most people actually need.
But storage cost is rarely where AWS bills blow up. After 30 years managing infrastructure budgets, the pattern is always the same: teams size the storage bill correctly and completely miss the egress charges. A team storing 1TB and serving 500GB outbound each month pays roughly $23 in storage and $45 in data transfer. The egress costs almost twice as much as the storage itself.
Here is every S3 cost component broken down, with the real numbers AWS charges in 2026.
S3 Storage Tier Pricing
AWS offers several storage classes targeting different access patterns. Picking the wrong one wastes money in either storage fees or retrieval fees.
| Storage Class | Price per GB/month | Best For |
|---|---|---|
| S3 Standard | $0.023 | Frequently accessed data |
| S3 Intelligent-Tiering (frequent) | $0.023 | Unknown or changing patterns |
| S3 Intelligent-Tiering (infrequent) | $0.0125 | Auto-moved after 30 days inactive |
| S3 Standard-IA | $0.0125 | Infrequent access, rapid retrieval |
| S3 Glacier Instant Retrieval | $0.004 | Archives accessed once per quarter |
| S3 Glacier Flexible Retrieval | $0.0036 | Archives with minutes-to-hours retrieval |
Glacier Instant Retrieval at $0.004/GB is worth a hard look for backups and logs you need to access occasionally but not regularly. The storage cost is 83% cheaper than Standard. The catch: retrieval fees apply, and if you are pulling data often, those charges accumulate fast.
Request Costs: The Line Item Nobody Reads
Every API call to S3 costs money. Most teams never look at this line on their bill until it is too large to ignore.
| Request Type | Price per 1,000 requests |
|---|---|
| PUT, COPY, POST, LIST | $0.005 |
| GET, SELECT, and all others | $0.0004 |
| DELETE requests | Free |
| Lifecycle transition requests | $0.01 per 1,000 |
PUT requests are 12.5x more expensive than GET requests. If your application writes millions of small objects, request costs matter. An application generating 10 million PUTs per month pays $50 in request fees alone, on top of whatever storage it uses.
LIST operations are billed at the PUT rate, not the GET rate. Applications that list bucket contents frequently can generate surprising charges. Use prefixes and structure your key namespace to minimize LIST calls.
Data Transfer: Where the Real Bill Lives
This is the section that matters most. Storage costs are predictable and scale linearly. Data transfer out to the internet is where AWS margins are highest, and where teams consistently underestimate costs.
| Transfer Type | Price per GB |
|---|---|
| Data in (uploads to S3) | Free |
| Transfer between S3 and EC2 (same region) | Free |
| Transfer to AWS services (same region) | Free |
| Transfer out to internet: first 100GB/month | Free |
| Transfer out to internet: 100GB to 10TB | $0.09 |
| Transfer out to internet: 10TB to 50TB | $0.085 |
| Transfer to another AWS region | $0.02 |
| Transfer via CloudFront (from S3) | Free |
A Real Monthly Bill: 1TB Stored, 500GB Outbound
Here is what a team actually pays storing 1TB in S3 Standard and serving 500GB to end users each month. These are the real numbers, not estimates.
The storage costs $23.55. The egress costs $36.00. That ratio is typical. Scale to 5TB stored and 2TB outbound and you are looking at roughly $118 storage and $171 in egress. The transfer bill is always larger than the storage bill once you have real traffic.
If that same team used CloudFront to serve their content instead of S3 directly, they would eliminate the S3 egress charge entirely. CloudFront charges $0.0085/GB for the first 10TB in us-east-1, meaning 400GB would cost about $3.40 instead of $36. The architectural decision is worth far more than any storage tier optimization.
Infrequent Access and Glacier: Hidden Retrieval Fees
The cheaper storage tiers come with retrieval charges that can wipe out your savings if you are not careful.
- S3 Standard-IA retrieval: $0.01 per GB retrieved. Break-even against Standard is roughly 30 days of inactivity per month.
- Glacier Instant Retrieval: $0.03 per GB retrieved. This tier is only worth it if you access the data less than once per month on average.
- Glacier Flexible Retrieval: Free bulk retrieval (5-12 hours), $0.01/GB expedited retrieval (1-5 minutes). Know your RTO before choosing this tier.
The mistake teams make: they move data to IA to save money, then access it more often than expected and end up paying more. The Intelligent-Tiering class exists precisely to solve this, but the monitoring fee per object means it only pencils out for objects larger than about 128KB.
The Practical Checklist
Before accepting your next S3 bill without question, check these four things:
- Are you serving S3 directly to users? Put CloudFront in front of it. The egress savings alone pay for it immediately.
- Do you have S3 lifecycle rules configured? Objects that age into infrequent access patterns should transition automatically. No lifecycle policy means everything stays in Standard forever.
- Are you paying for inter-region replication transfer? At $0.02/GB, replicating 1TB per month adds $20 before storage costs. Know why you are replicating and whether it is necessary.
- What are your LIST call volumes? Applications that poll S3 for new objects with frequent LIST requests can generate more in request fees than storage fees for small buckets.
S3 Standard at $0.023/GB is not expensive storage. The operational capabilities, the ecosystem integrations, the durability guarantees: all worth paying for. But egress at $0.09/GB reflects AWS extracting maximum value from your network dependency. That is the line item to watch, minimize, and architect around.