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 |
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.| 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 |
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.
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 |
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.
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.