0%·8 min left
Cloud Cost Optimization

AWS S3 Pricing Per GB (2026): Storage Classes, Requests, and Hidden Costs

Alberto Grande

Alberto Grande

Head of Marketing

September 2, 20268 min read
AWS S3 Pricing Per GB (2026): Storage Classes, Requests, and Hidden Costs

AWS S3 pricing per GB looks like one number until you read the invoice. The headline "$0.023 per GB" only covers S3 Standard storage in one region — your real bill is that rate plus a request charge on every API call, a per-GB retrieval fee on the colder storage classes, a monitoring fee on Intelligent-Tiering, and a data-transfer charge every time an object leaves AWS. A bucket that costs $23 a month to store can cost several times that to actually use.

This guide breaks down every S3 pricing component. The storage, request, and retrieval rates in the table below are fetched at build time straight from the AWS Price List API for US East (N. Virginia), so they are AWS published list prices, not our estimates. After the table we cover the line items the pricing page glosses over and work through a realistic example.

How AWS S3 pricing works#

S3 has no plan and no flat rate. Your bill is the sum of four meters:

  • Storage — billed per GB-month, at a different rate for each storage class. S3 Standard is tiered by total volume; the infrequent-access and archive classes are flat.
  • Requests — billed per 1,000 (writes and lists) or per 10,000 (reads). Every PUT, GET, LIST, and COPY counts.
  • Retrieval — a per-GB fee to read data back out of Standard-IA, One Zone-IA, or any Glacier class. S3 Standard has no retrieval fee.
  • Data transfer — per GB for bytes leaving S3 to the internet or another region. Upload is free; download is not.

Storage class is the biggest lever, but it is also where the trade-offs hide: the cheaper the per-GB storage rate, the higher the request and retrieval fees that come with it.

AWS S3 pricing per GB, by storage class (us-east-1)#

ComponentTierPublished rate (US East, N. Virginia)
Storage · Per GB / month
S3 StandardFirst 50 TB$0.023 per GB - first 50 TB / month of storage used
Next 450 TB$0.022 per GB - next 450 TB / month of storage used
Over 500 TB$0.021 per GB - storage used / month over 500 TB
S3 Standard-Infrequent AccessAll usage$0.0125 per GB-Month of storage used in Standard-Infrequent Access
S3 One Zone-Infrequent AccessAll usage$0.01 per GB-Month of storage used in One Zone-Infrequent Access
S3 Intelligent-Tiering, Frequent Access tierFirst 50 TB$0.023 per GB - first 50 TB / month of storage used in Intelligent-Tiering, Frequent Access Tier
Next 450 TB$0.022 per GB - next 450 TB / month of storage used in Intelligent-Tiering, Frequent Access Tier
Over 500 TB$0.021 per GB - over 500 TB / month of storage used in Intelligent-Tiering, Frequent Access Tier
S3 Intelligent-Tiering, Infrequent Access tierAll usage$0.0125 per GB-Month of storage used in Intelligent-Tiering, Infrequent Access Tier
S3 Glacier Instant RetrievalAll usage$0.004 per GB-Month of storage used in Glacier Instant Retrieval
S3 Glacier Flexible RetrievalAll usage$0.0036 per GB / month of storage used - Amazon Glacier
Requests · Per request
PUT, COPY, POST, LIST requestsAll usage$0.005 per 1,000 PUT, COPY, POST, or LIST requests
GET, SELECT, and all other requestsAll usage$0.004 per 10,000 GET and all other requests
Retrieval · Per GB retrieved
Standard-IA data retrievalAll usage$0.01 per GB - flat fee for all bytes retrieved in Standard-Infrequent Access
One Zone-IA data retrievalAll usage$0.01 per GB - flat fee for all bytes retrieved in One Zone-Infrequent Access
Glacier Instant Retrieval data retrievalAll usage$0.03 per GB - flat fee for all bytes retrieved in Glacier Instant Retrieval

Source: AWS Price List Bulk API, offer AmazonS3, region us-east-1. Rate text is quoted verbatim from the API payload. Internet data-transfer-out is billed under a separate offer (AWSDataTransfer) and is covered in the hidden-costs section below, not this table.

Last updated: 2026-08-31. Amazon S3 published pricing (US East / N. Virginia), fetched from the AWS Price List API (publication timestamp 2026-08-31T09:22:25Z). Published list prices, not a live feed.

What the S3 pricing page doesn't tell you#

The per-GB rate is only the storage meter. S3 Standard at $0.023 per GB has no retrieval fee and cheap-ish requests, so its all-in cost is close to the sticker price. Standard-IA looks 46% cheaper at $0.0125 per GB, but it adds a $0.01-per-GB retrieval fee and charges requests at roughly double the Standard rate. If you read an IA object more than about once a month, it costs more than leaving it in Standard.

Standard-IA and One Zone-IA have a minimum object size and a minimum storage duration. Objects are billed as at least 128 KB and for at least 30 days, whether or not they are that big or kept that long. A lifecycle rule that sweeps millions of small log files into IA can raise the bill instead of lowering it.

Intelligent-Tiering charges a monitoring fee per object per month on top of storage. It moves objects between a frequent-access tier (same price as S3 Standard) and an infrequent-access tier ($0.0125 per GB) automatically, which is genuinely useful for unpredictable access patterns — but the per-object monitoring charge makes it a bad fit for buckets full of tiny objects.

Glacier classes bill for retrieval and, on Flexible and Deep Archive, for the restore request itself. Glacier Instant Retrieval is $0.004 per GB to store and $0.03 per GB to read back. Glacier Flexible Retrieval is $0.0036 per GB to store, but a bulk restore can take up to 12 hours and an expedited restore is billed per request and per GB.

Early deletion is charged as if the object stayed. Delete a Standard-IA object after 10 days and you still pay the remaining 20 days of storage. Glacier Flexible Retrieval has a 90-day minimum; Deep Archive has 180.

Hidden and egress costs to watch#

Data transfer out is the line that surprises people. Storing 1 TB in S3 Standard is about $23 a month. Serving that same 1 TB to the internet once is billed under the AWS Data Transfer offer at AWS's published rate of roughly $0.09 per GB for the first tier — about $92, four times the storage cost. Put CloudFront in front of S3 and origin-to-CDN transfer is free; without it, every download is metered.

Cross-region replication pays transfer twice. You pay inter-region data transfer on the replicated bytes, plus a second full storage charge in the destination region, plus replication PUT requests.

LIST is a Tier-1 request. Code that paginates a large bucket to find one key can fire thousands of billable LIST calls. So can s3 sync against a bucket with millions of objects.

Incomplete multipart uploads keep billing. Parts from a failed upload sit in the bucket, invisible in the console object list, charged at the full storage rate until a lifecycle rule aborts them.

Versioning multiplies storage silently. With versioning on, every overwrite keeps the old object at full price and every delete just adds a marker. Buckets with churny objects and no lifecycle expiry on noncurrent versions can carry several times their visible size.

A worked example: a 20 TB analytics bucket#

Assume a mid-size setup in us-east-1:

  • 20,000 GB stored in S3 Standard
  • 40 million PUT requests/month (ingest) and 120 million GET requests/month (queries)
  • 8,000 GB/month of query results and exports transferred out to the internet
  • A lifecycle rule that moves 12,000 GB of older data to Standard-IA, of which 2,000 GB is re-read each month

Every storage, request, and retrieval figure below uses the live us-east-1 rates in the table above; the egress line uses AWS's published AWS Data Transfer first-tier rate.

Storage

  • S3 Standard, first 50 TB tier: 8,000 GB × $0.023 = $184.00
  • Standard-IA: 12,000 GB × $0.0125 = $150.00
  • Storage subtotal: $334.00

Requests

  • PUT: 40,000,000 ÷ 1,000 × $0.005 = $200.00
  • GET: 120,000,000 ÷ 10,000 × $0.004 = $48.00
  • Requests subtotal: $248.00

Retrieval (Standard-IA only)

  • 2,000 GB × $0.01 = $20.00

Data transfer out

  • 8,000 GB × ~$0.09 = $720.00
Line itemMonthly cost
Storage (Standard + Standard-IA)$334.00
Requests (PUT + GET)$248.00
Retrieval (Standard-IA)$20.00
Data transfer out to internet$720.00
Total$1,322.00

Storage is the smallest line. Egress alone is more than double it, and the PUT request charge ($200) nearly matches the entire storage bill. Moving that 8 TB of egress behind CloudFront, batching the 40 million PUTs into fewer larger objects, and expiring noncurrent versions would each cut more than rightsizing the storage class ever could. For how the compute side of an analytics stack breaks down, see our EKS pricing guide; for the Azure equivalent, the AKS pricing guide.

Frequently asked questions#

How much does AWS S3 cost per GB?#

S3 Standard storage is $0.023 per GB for the first 50 TB per month in us-east-1, dropping to $0.022 and then $0.021 per GB at higher volume tiers. Standard-Infrequent Access is $0.0125 per GB, One Zone-IA is $0.01 per GB, Glacier Instant Retrieval is $0.004 per GB, and Glacier Flexible Retrieval is $0.0036 per GB — but the colder classes add per-GB retrieval fees and higher request rates. See the live table above for the current rates.

Is there a free tier for S3?#

The AWS Free Tier includes 5 GB of S3 Standard storage, 20,000 GET requests, 2,000 PUT requests, and 100 GB of data transfer out per month, for the first 12 months. Past that, every GB and every request is billed at the rates above.

Why is my S3 bill higher than my storage estimate?#

The usual causes are data transfer out to the internet, request volume (especially PUT and LIST), retrieval fees on data you moved to IA or Glacier, incomplete multipart uploads, and old object versions kept by versioning with no lifecycle expiry.

Does S3 charge for uploads?#

Uploading data into S3 is free for data transfer, but each upload is a billable PUT request (or several, for multipart uploads), and storage billing starts the moment the object lands.

Where S3 cost actually comes from#

Most large S3 bills are downstream of application behavior, not the storage rate: how many requests the code makes, how much data it ships out of AWS, and whether anything ever cleans up old versions and failed uploads. The same discipline that keeps a Kubernetes bill down — measuring what workloads actually use instead of what they were provisioned for — applies to storage. That is the core of what DevZero's Kubernetes cost optimization does for the compute side of the same infrastructure, and you can explore live compute rates across clouds in the instance pricing explorer.

Share:
Alberto Grande

Alberto Grande

Head of Marketing

Cut Kubernetes Cost Before You Pay a Cent.

Every feature unlocked. No hidden fees.

Start for free

Start Free

$0/ month
Unlimited clusters
K8s resource & cost monitoring
Network monitoring
Cost attribution for departments
Multi-cloud support & governance
Audit logging