New See exactly what you're overpaying AWS in under 60 seconds. Try the Calculator for free →

S3 Egress Cost Explained: Pricing and Optimization

Calculate S3 transfer costs by destination, compare direct delivery with CloudFront, and reduce cross-Region, NAT, request, and Glacier retrieval charges.
Picture of Aman Singh
Technical Content Writer, FinOps

Aman Singh

Technical Content Writer, FinOps
October 15, 2026

·

16 min read
S3 Egress Cost: Calculator, Rates, and How to Pay Less
In this article
Key takeaways
1
Price the complete delivery path, not S3 alone. A free S3 transfer path can still incur CloudFront delivery or NAT Gateway processing charges.
2
CloudFront can lower internet-delivery cost, especially while its monthly free allowance remains available. Its data-transfer-out price depends on the viewer’s edge location, so model the audience geography.
3
Same-Region placement and an S3 gateway endpoint can remove avoidable transfer or NAT processing costs. Cross-Region replication and processing should be budgeted with the applicable Region-pair rate.
Amazon S3 can charge when data leaves a Region or goes to the public internet, but the amount depends on the destination and network path. This guide explains current S3 data transfer pricing, shows how to calculate a monthly estimate, and helps you choose a lower-cost architecture.

The Short Answer

For S3 in US East (N. Virginia), internet data transfer starts at $0.09 per GB after the first 100 GB per month, which is shared across eligible AWS services and Regions. Higher monthly volumes receive tiered rates.

CloudFront origin fetches from S3 and transfer from S3 to AWS services in the same Region are generally free, while inter-Region pricing depends on the source and destination. NAT Gateway processing, S3 requests, CloudFront delivery, and archive retrieval are separate charges.

S3 Egress Rates by Destination

The following paths cover the charges most readers mean by “S3 egress cost.” Rates shown are representative of US East (N. Virginia); always confirm the source Region and destination on the official Amazon S3 pricing page.
Data path S3 data-transfer charge Other charges to include
S3 to the public internet First 100 GB/month free across eligible AWS services and Regions; then $0.09/GB for the next 10 TB S3 request and retrieval fees, if applicable
CloudFront origin fetches from S3 $0/GB CloudFront viewer delivery and request charges; S3 origin request charges
S3 to an AWS service in the same Region Generally $0/GB Service, request, and network-appliance charges may still apply
S3 to another AWS Region Varies by Region pair Replication requests, destination storage, and service charges may apply
S3 through a NAT Gateway Same-Region S3 transfer can remain free NAT Gateway hourly and per-GB processing charges; cross-AZ transfer charges may also apply
For direct internet transfer, AWS applies volume tiers progressively rather than repricing all prior usage when a threshold is crossed. The first 100 GB allowance is aggregated across eligible AWS services and Regions, except China and GovCloud Regions.

S3-to-CloudFront origin transfer is free; it is not a newly introduced exception and AWS does not state a same-account or same-Region requirement for this pricing rule.

CloudFront then bills delivery to viewers under its own pricing, including a monthly free allowance and rates that vary by edge geography. See CloudFront pay-as-you-go pricing before assuming one global rate.

Inter-Region transfer does not have one universal S3 cross-Region transfer cost. Use the data-transfer matrix for the bucket’s source Region and the receiving Region; replication can also add PUT requests and destination storage.

How to Calculate S3 Egress Cost

Start with the billing path, monthly bytes, Region pair or viewer geography, and remaining free allowances. Then add any request, retrieval, CDN, or network-processing charges.
S3 egress calculation formula combining tiered data transfer with requests, retrieval, CDN, and network-processing charges.
Direct S3 internet egress = billable GB in each tier × that tier’s rate
The examples below use 1 TB = 1,024 GB, US East (N. Virginia) for S3, US/Mexico/Canada/Europe viewer pricing for CloudFront, and assume the relevant free allowances have not been consumed elsewhere. They exclude requests, invalidations, retrieval, taxes, optional CloudFront flat-rate plans, and negotiated pricing.
Monthly delivery Direct S3 Through CloudFront Difference
500 GB $36.00 $0.00 CloudFront lower by $36.00
1 TB $83.16 $0.00 CloudFront lower by $83.16
10 TB $912.60 $783.36 CloudFront lower by $129.24
50 TB $4,394.70 $4,060.16 CloudFront lower by $334.54
Monthly direct S3 and CloudFront delivery costs at 500 GB, 1 TB, 10 TB, and 50 TB under stated US pricing assumptions.
At 10 TB, direct S3 bills 10,140 GB after the 100 GB allowance: 10,140 × $0.09 = $912.60. CloudFront bills 9,216 GB after its first 1 TB allowance: 9,216 × $0.085 = $783.36.

These comparisons are not universal promises. A consumed free allowance, viewers in a higher-priced geography, CloudFront requests or functions, private pricing, or a different architecture can change the result. Cache hits reduce requests to the S3 origin, but they do not eliminate CloudFront data transfer to viewers.

For a broader estimate, use the AWS Pricing Calculator and enter each service in the path. To reconcile an existing bill, group Cost Explorer or Cost and Usage Report line items by service, usage type, Region, and operation; our AWS data transfer cost guide explains the wider billing map.

Why Your S3 Bill Is High

Unexpected S3 totals usually come from a boundary that an estimate omitted:

Direct internet delivery: Large downloads are served from S3 without evaluating CloudFront pricing and audience geography.

NAT processing: Private-subnet workloads reach S3 through a NAT Gateway even though the S3 transfer itself is free in the same Region.

Inter-Region reads or replication: Compute, analytics, backups, or replicas sit in a different Region from the bucket.

Adjacent S3 charges: High request counts or retrievals from infrequent-access and archive classes appear beside transfer charges.

Do not infer the cause from the total alone. Check usage types and operations first, then match each charge to the architecture that generated it.

5 Ways to Reduce S3 Egress

1. Put CloudFront Before Public S3

CloudFront receives data from S3 without an S3 origin-transfer charge and can use a lower delivery rate or monthly free allowance. Restrict direct bucket access, model viewer geography and requests, and compare the complete CloudFront path with direct S3.

2. Add an S3 Gateway Endpoint

In US East (N. Virginia), a NAT Gateway is billed at $0.045 per processed GB plus an hourly charge; cross-AZ data transfer charges may also apply if traffic crosses Availability Zones. An S3 gateway endpoint has no hourly or data-processing charge, so routing eligible private-subnet S3 traffic through it avoids NAT processing; update route tables and endpoint policies carefully.

3. Co-Locate Compute and Storage

Place EC2, Lambda, containers, and analytics jobs in the bucket’s Region where practical. If resilience or compliance requires multiple Regions, apply the exact Region-pair rate to steady-state changes, initial copies, reprocessing, and failback.

4. Transfer Fewer Bytes

Compress compressible text formats before storage or delivery, select appropriate object sizes, and avoid repeated full-object downloads when an application can request only what it needs. Measure representative files: compression results depend on format and content, and already-compressed media may see little benefit.

5. Control Replication and Copies

Replicate only required prefixes and destinations, and review cross-Region backup or pipeline copies for duplication. This reduces transfer, replication requests, and duplicate destination storage without weakening an approved recovery or compliance objective.

Choose Your Egress Architecture

Workload Recommended path Decision reason
Public assets, downloads, or media S3 origin with CloudFront Free origin transfer; model viewer delivery, requests, and geography
Private EC2 or container access Same-Region S3 gateway endpoint Avoids NAT Gateway hourly and processing charges for eligible traffic
Regional processing pipeline Compute and S3 in the same Region Avoids applicable inter-Region transfer
Disaster-recovery replica S3 Cross-Region Replication Preserves the recovery design; budget transfer, requests, and destination storage
Rarely accessed archive Appropriate S3 Glacier class Reduces storage cost; budget restore time, retrieval, requests, and any later egress
Global uploads requiring lower latency S3 Transfer Acceleration after testing Adds acceleration pricing when the accelerated path is faster; rates vary by edge location
CloudFront is not automatically the best fit for private service-to-service traffic, and a gateway endpoint does not replace a CDN for public delivery. For network patterns beyond S3, use our broader AWS network costs guide.

Related S3 Requests and Retrieval Fees

S3 request pricing is separate from data transfer. In S3 Standard in US East (N. Virginia), PUT, COPY, POST, and LIST requests cost $0.005 per 1,000, while GET and other read requests cost $0.0004 per 1,000; DELETE and CANCEL requests are free.

Lifecycle-transition request prices vary by destination class, so use the S3 requests table rather than applying one transition rate everywhere.

Archive retrieval is another separate layer. In US East (N. Virginia), S3 Glacier Instant Retrieval data retrieval is $0.03/GB. Glacier Flexible Retrieval offers free Bulk retrieval, $0.01/GB Standard retrieval, and $0.03/GB Expedited retrieval; Glacier Deep Archive is $0.0025/GB for Bulk and $0.02/GB for Standard retrieval.

Retrieval requests, minimum storage durations, and internet egress can also apply. Our S3 Glacier Deep Archive pricing guide covers those tradeoffs in detail.

For storage, request, and transfer inputs in one model, see our S3 cost calculator guide.

How Usage.ai Fits the Cost Plan

Architecture changes are how you reduce S3 egress itself. Once you optimize those data paths, commitment savings become a separate cost-saving layer for the eligible AWS compute usage that sits alongside S3 on your bill.

With Flex Insured Commitments, teams can get the 57% savings of a three-year AWS commitment with none of the commitment risk.

If eligible usage drops and a qualifying Flex Commitment costs more than the On-Demand rate for the same usage, we provide cashback protection on the difference, subject to program terms.

We manage your approved Flex Commitments at the billing layer without changing your S3 delivery architecture. Our fee is a percentage of realized savings only: if we do not save you anything, you pay nothing.
EVALUATE YOUR AWS SPEND
Separate architecture and commitment savings.

Review S3 transfer drivers, eligible commitment coverage, and risk before making a purchase.

Frequently asked questions

How much does S3 egress cost?

In US East (N. Virginia), direct internet data transfer starts at $0.09/GB after the first 100 GB monthly allowance and declines across higher-volume tiers. The allowance is shared across eligible AWS services and Regions, and other Regions can differ.

Is S3 to CloudFront free?

Yes, AWS does not charge for data transfer from an S3 origin to CloudFront. CloudFront delivery to viewers and requests have separate pricing, including monthly free allowances.

What is S3 cross-Region cost?

It varies by source and destination Region; there is no safe universal per-GB rate. Check the official S3 transfer table and include replication requests and destination storage when relevant.

Does S3 traffic through NAT cost more?

Same-Region S3 transfer can be free while the NAT Gateway still charges for hourly use and processed bytes. Route eligible traffic through a free S3 gateway endpoint to avoid that processing path.

How are S3 requests priced?

Requests are billed by operation and storage class, separately from transferred bytes. In S3 Standard in US East (N. Virginia), GET requests cost $0.0004 per 1,000 and PUT, COPY, POST, or LIST requests cost $0.005 per 1,000.

Share
Facebook
X
LinkedIn
Reddit
See cloud commitment management in action.
More from Usage.ai
Latest from our blogs