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

AWS Data Transfer Costs: How to Cut Your Egress Bill Without Rebuilding Your Stack

Picture of Navanita Devi
Senior FinOps Practitioner

Navanita Devi

Senior FinOps Practitioner
October 15, 2026

·

16 min read
AWS Data Transfer Costs: How to Cut Your Egress Bill Without Rebuilding Your Stack
In this article

AWS data-transfer charges depend on the service, endpoints, Region and network path. Internet ingress is generally free, but traffic passing through a NAT Gateway, PrivateLink or other processing service can still incur fees. Some outbound paths are free, including eligible same-Region S3 access and AWS-origin transfers to CloudFront.

For a workload sending 50 TB (51,200 GB) per month directly to the internet from N. Virginia, the modeled transfer charge is $4,394.70 with the full shared 100-GB allowance available: 10,240 × $0.09 + 40,860 × $0.085. This corrects the earlier $2,100 estimate. Rates and examples below were checked October 15, 2026; other services, Regions and negotiated prices can differ.

This guide covers every pricing dimension, service-specific differences, a decision tree for architecture-level optimization, and how to find these charges in your AWS bill.

What Are AWS Data Transfer Costs?

AWS data transfer costs are the per-gigabyte charges AWS applies whenever data moves across a network boundary into or out of AWS, between Availability Zones, between Regions, or through specific networking services like NAT Gateway or AWS Direct Connect.

Data-transfer cost depends on volume and path. Private EC2-to-EC2 traffic within one AZ is free. For chargeable cross-AZ EC2 traffic, both sending and receiving sides can incur $0.01/GB, totaling $0.02 for each GB crossing the boundary. Response bytes are counted separately. Service-specific exceptions matter.

AWS meters data transfer at the network layer and reports it as a separate line item in your bill, typically buried inside “EC2-Other” in Cost Explorer rather than called out explicitly. That is why data transfer costs are consistently underestimated: the charge is real, it is continuous, and it does not appear where most engineers expect it.

Three facts define how the billing works:

  • Internet ingress and processing are separate. Internet ingress generally has no transfer fee, but processing, acceleration and endpoint services may still charge.
  • Outbound charges depend on the path. Outbound transfer has service-specific free paths and allowances; otherwise apply the relevant destination and volume tier.
  • Internal traffic charges depend on topology. Private same-AZ EC2 traffic is free. Cross-AZ and cross-Region traffic can be chargeable, subject to service-specific exceptions and processing fees.

What Counts as an AWS Data Transfer?

AWS meters data transfer at the network boundary level. The four boundaries that generate charges are:

  • Internet egress (Data Transfer Out): Any data leaving AWS to the public internet. This is the largest data transfer cost category for most teams and applies to EC2, S3, RDS, ElastiCache, Lambda, and nearly every other service.
  • Cross-AZ traffic: Chargeable EC2 endpoints commonly pay $0.01/GB each, while ALB and cache-node paths have exceptions. Identify the exact service and route first.
  • Cross-Region traffic: Data moving between AWS Regions. Generally $0.02/GB per direction for US Regions, with rates varying for Asia Pacific and South America destinations (verify at Amazon docs, rates change).
  • On-premises traffic: Data moving between AWS and your own data center. Rates depend on whether you use the public internet, AWS Direct Connect, or AWS VPN.

Internet ingress generally has no transfer fee; network processing and service-specific upload charges are separate.

AWS Data Transfer Pricing Table by Scenario (2026)

N. Virginia examples unless specified. Internet tiers below apply to billable bytes beyond the shared 100-GB monthly allowance; use 1 TB = 1,024 GB.

Scenario Price / treatment Other charges or conditions
Internet ingress Generally free Network processing services may still charge
Internet egress, first 10 TB billable $0.09/GB Shared allowance and aggregate tiers
Internet egress, next 40 TB $0.085/GB Marginal tier, not the rate for every GB
Internet egress, next 100 TB $0.07/GB Marginal tier
Internet egress, above 150 TB $0.05/GB Public tier; verify large-volume quotes
Private EC2 traffic in one AZ Free Other network-service processing can apply
Cross-AZ EC2-to-EC2 $0.01/GB at each chargeable end Count request and response bytes separately
N. Virginia to Oregon transfer $0.02/GB outbound Direction and Region pair matter
Transit Gateway $0.02/GB processed $0.05/hour per VPC attachment
NAT Gateway $0.045/GB processed $0.045/hour plus applicable IPv4 and transfer
CloudFront, US/Europe viewer egress $0.085/GB in the first paid tier 1 TB monthly allowance, lower volume tiers, requests and optional features
S3 ↔ EC2 in same Region No transfer charge NAT or endpoint processing can still apply
S3 Transfer Acceleration Additional path-dependent acceleration charge See S3 pricing; do not assume a universal surcharge

Sources: EC2 transfer pricing, AWS data-transfer catalog, Transit Gateway, and CloudFront pay-as-you-go.

Cross-AZ Data Transfer: The Hidden Line Item Most Teams Miss

For two EC2 instances in different AZs, a GB sent can be billed at $0.01 on the sender and $0.01 on the receiver. A response is a separate transfer; “$0.02 per round trip” is therefore not a reliable formula.

The earlier example incorrectly charged ALB-to-EC2 private traffic in the same VPC as ordinary cross-AZ EC2 traffic. AWS exempts that ALB path from these transfer charges. ALB hourly and LCU charges still apply. See AWS’s ALB transfer examples.

For a chargeable EC2-to-EC2 path, 10,000 responses/second × 10,000 bytes × 3,600 × 730 = 262,800,000,000,000 bytes, or about 244,751.57 GiB. At an assumed aggregate $0.02 per billed GB, that is about $4,895.03 before request bytes. Billing uses AWS’s measured byte units; do not mix decimal payload sizes with binary billing units.

Optimize chargeable application paths while preserving required availability. Disabling load-balancer cross-zone routing does not guarantee savings and can change capacity and failure behavior; first identify the actual billed path.

Service-by-Service Egress Cost Breakdown

Data transfer pricing is not uniform across AWS services. Here is how the major services handle internet egress:

EC2 Data Transfer Costs

Standard tiered pricing: $0.09/GB for the first 10 TB/month, dropping progressively for higher volumes. EC2 instances in the same AZ transfer data to each other free using private IP addresses. Using public or Elastic IP addresses for same-Region EC2 communication triggers $0.01/GB each direction even within the same AZ, this is a common misconfiguration. Always use private IP addresses for intra-VPC communication.

S3 Data Transfer Costs

S3 to the internet: same tiered rates as EC2 egress ($0.09/GB first 10 TB). S3 to EC2 in the same Region: free. S3 to EC2 in a different Region: standard cross-region rates. S3 to CloudFront: free (this is the correct architecture for S3-served content at scale). S3 Transfer Acceleration adds $0.04-$0.08/GB for faster long-distance uploads using AWS edge locations.

RDS Data Transfer Costs

RDS internet egress follows the same tiered rates. Cross-AZ replication traffic within a Multi-AZ RDS deployment is free, AWS does not charge for the synchronous replication between primary and standby. Cross-Region RDS read replicas do incur cross-region data transfer charges on the replication stream.

Lambda Data Transfer Costs

Lambda charges for data transferred out to the internet at standard EC2 egress rates. Lambda to services in the same Region over private endpoints is free. Lambda calling services across Regions are charged at cross-region rates.

ElastiCache Data Transfer Costs

For node-based ElastiCache, same-Region traffic in or out of the cache node itself has no transfer charge. Cross-AZ traffic at an EC2 application endpoint is charged at $0.01/GB. Do not add a cross-AZ fee for cache-to-cache replication. Cross-Region Global Datastore transfer is separate. See ElastiCache transfer pricing.

NAT Gateway: The Surprise Multiplier

NAT Gateway charges $0.045/GB for every byte it processes, this is in addition to, not instead of, EC2 internet egress charges. An EC2 instance routing outbound traffic through a NAT Gateway is paying $0.045/GB (NAT processing) + $0.09/GB (EC2 egress) = $0.135/GB total for the first 10 TB.

S3 and DynamoDB support free gateway endpoints that avoid NAT processing on that service traffic. SSM and CloudWatch instead use paid interface endpoints. Compare their per-AZ hourly and per-GB charges with the NAT charges actually avoided; adding an endpoint does not remove a NAT Gateway still needed by other traffic.

VPC console screen for creating an S3 Gateway Endpoint with route table association

How to Find Data Transfer Costs in Your AWS Bill

AWS Cost Explorer labels data transfer charges by their “operation” dimension. Common usage-type patterns include:

  • DataTransfer-Out-Bytes: Internet egress
  • InterZone-In and InterZone-Out: Cross-AZ traffic
  • DataTransfer-Regional-Bytes: Cross-Region traffic
  • NatGateway-Bytes: NAT Gateway processing
  • CloudFront-Out-Bytes: CloudFront egress

To isolate data transfer spend in Cost Explorer:

  1. Open AWS Cost Explorer
  2. Set the date range to the last 3 months
  3. Group by “Service” — look for “EC2-Other” which contains most data transfer charges
  4. Then filter to “EC2-Other” and group by “Usage Type” to see the usage-type breakdown
  5. Filter further by “Operation” and select data transfer operations to see by Region or AZ

“EC2-Other” is where AWS buries most data transfer charges — it is not a separate service line item by default, which is why it is consistently underestimated.

AWS Cost Explorer showing EC2-Other data transfer breakdown by usage type and operation

VPC Peering vs PrivateLink vs Transit Gateway: What Actually Costs Less?

For N. Virginia, compare service fees as well as transfer charges:

Item VPC peering Interface PrivateLink endpoint Transit Gateway
Fixed charge No peering hourly fee $0.01/hour per endpoint AZ: $7.30 at 730 hours $0.05/hour per VPC attachment: $36.50 at 730 hours
Processing / transfer Same-AZ private traffic free; chargeable cross-AZ EC2 endpoints each $0.01/GB $0.01/GB first processing tier, plus applicable transfer $0.02/GB sent to Transit Gateway, plus applicable transfer
Connectivity Non-transitive routed VPC connection Access to a published service; not general transitive routing Transitive routing
Cross-Region Available; regional transfer rates apply Supported for eligible services; additional regional charges can apply Peering supported; inter-Region transfer and applicable processing

PrivateLink provider-side load balancer and remote-Region fees may also apply. Compare the complete topology. Sources: PrivateLink pricing and Transit Gateway pricing.

AWS Direct Connect vs Internet Egress: Does It Save on Data Transfer?

A dedicated 1-Gbps Direct Connect port is $0.30/hour outside Japan, or $219 at 730 hours, before partner, circuit, colocation and redundancy costs. The transfer rate depends on the source AWS Region and Direct Connect location; $0.02/GB applies to selected US paths.

At a marginal internet rate of $0.09 and Direct Connect rate of $0.02, port-only break-even is $219 ÷ $0.07 = 3,128.57 billable GB/month. This assumes the internet free allowance is already consumed and the same marginal rate applies. If the full 100-GB internet allowance is available and no tier boundary is crossed, the equation is $0.09 × (V − 100) = $219 + $0.02 × V, giving 3,257.14 GB. Additional circuit and resilience costs raise both thresholds. A universal 3–4-TB break-even claim is not justified.

Source: AWS Direct Connect pricing.

AWS Data Transfer Cost Reduction: Decision Tree

  • Internet delivery: compare direct egress with CloudFront’s viewer geography, tiered transfer, request charges, free allowance and flat-rate options.
  • Cross-AZ: identify chargeable application endpoints. Preserve availability; ALB-to-target private traffic is not the same billing path as EC2-to-EC2.
  • NAT: route S3/DynamoDB through free gateway endpoints where appropriate. Model paid interface endpoints separately for other services.
  • On-premises: include port, circuit and redundancy costs in a Direct Connect comparison.
  • Cross-Region: model the actual source/destination pair and replication volume.

Worked Example: A 3-Tier Web Application at Scale

Illustration for N. Virginia and US/European CloudFront viewers. Volumes are billed GB per month, not rounded TB. Assume the full shared 100-GB internet allowance and CloudFront’s 1,024-GB / 10-million-request monthly allowances are available. The image workload generates 10 million HTTPS viewer requests, so no paid viewer-request charge is added in this example. Request counts above that allowance change the result.

Component Before After
Direct internet traffic 18,000 GB: 10,240 × $0.09 + 7,660 × $0.085 = $1,572.70 3,000 GB: 2,900 × $0.09 = $261.00
CloudFront image delivery None 15,000 GB: 9,216 × $0.085 + 4,760 × $0.08 = $1,164.16
Chargeable EC2-to-EC2 cross-AZ traffic 5,000 GB × $0.02 = $100.00 1,500 GB × $0.02 = $30.00
NAT processing 2,000 GB × $0.045 = $90.00 500 GB × $0.045 = $22.50
EC2 application ↔ ElastiCache cross-AZ bytes 1,000 GB × $0.01 = $10.00 200 GB × $0.01 = $2.00
Modeled variable-charge subtotal $1,772.70/month $1,479.66/month

Modeled reduction: $293.04/month, or 16.5%; $3,516.48/year if the same monthly pattern repeats. This replaces the incorrect 74% claim. The reduced NAT volume assumes 1,500 GB of existing S3/DynamoDB traffic moves to free gateway endpoints; it does not assume free SSM/CloudWatch endpoints. Reduced cross-AZ application traffic is a scenario assumption, not a guaranteed effect of ALB routing.

The comparison excludes unchanged compute, NAT hourly/IPv4, ALB/LCU, storage, origin request charges, tax and optional CloudFront features. Any changed origin requests or added paid services must be included in a full estimate. It preserves Multi-AZ deployment and does not charge for ElastiCache replica-to-replica traffic.

How to Use AWS Cost Explorer to Investigate Data Transfer Costs

AWS Cost Explorer is the right starting point for a data transfer audit. Here is the exact workflow:

Step 1: Navigate to AWS Cost Explorer in the AWS Console.

Step 2: Set granularity to “Monthly” and set date range to 3 months.

Step 3: Under “Group by,” select “Service.” Identify the “EC2-Other” line item — this typically contains the majority of data transfer charges.

Step 4: Filter to “EC2-Other” only. Change “Group by” to “Usage Type.”

Step 5: Look for usage types containing “DataTransfer,” “InterZone,” “Regional,” or “NatGateway.” These identify where bytes are moving and at what rate.

Step 6: For deeper analysis, use the AWS Cost and Usage Report (CUR). The lineitem_usagetype column contains usage types. Query with Athena to break down by resource ID and identify the specific EC2 instances, NAT Gateways, or services generating the most transfer.

The AWS Pricing Calculator lets you model architecture changes before implementing them. Enter current and projected data volumes per transfer type to estimate savings before committing to changes.

AWS Cost Explorer grouped by usage type within EC2-Other showing data transfer operation breakdown

AWS CloudFront vs Direct EC2/S3 Egress: When Does CloudFront Win?

The first paid CloudFront viewer-transfer tier for US/European locations is $0.085/GB, not $0.085. AWS-origin transfer to CloudFront is free. Viewer transfer, requests and optional features still need to be modeled.

For 100 TB = 102,400 GB, assuming no other usage and all allowances available:

Path Transfer-only calculation Monthly transfer cost
Direct internet 10,240 × $0.09 + 40,960 × $0.085 + 51,100 × $0.07 after the 100-GB allowance $7,980.20
CloudFront US/Europe 9,216 × $0.085 + 40,960 × $0.08 + 51,200 × $0.06 after the 1,024-GB allowance $7,132.16
Difference Before request and optional feature costs $848.04 (10.6%)

With 100 million HTTPS viewer requests and the full 10-million allowance, CloudFront adds $90 at $0.01 per 10,000 requests. The net modeled difference then falls to $758.04 before origin-request effects and other features. This is not an 85–90% egress reduction. Low cacheability does not automatically remove the transfer-price benefit, but it changes origin load and request costs. Compare the full workload and applicable CloudFront flat-rate plan as well.

How Compute Commitment Strategy Connects to Data Transfer Costs

Reducing data transfer costs and reducing compute costs are related — but not through the same lever.

When you restructure your architecture to reduce cross-AZ traffic (same-AZ placement), your EC2 fleet size per AZ increases while total instance count may stay the same. When you add CloudFront, your origin EC2 load drops. These architecture changes alter your compute baseline and your compute baseline is what determines how much you can save through AWS Savings Plans and Reserved Instances.

A more stable, predictable compute baseline is easier to commit against. Teams that have done a data transfer optimization pass typically see their EC2 utilization patterns stabilize, which makes commitment purchasing recommendations more accurate.

Usage.ai automates commitment purchasing for eligible compute and database workloads. After a network optimization changes compute demand, recalculate the stable eligible baseline before buying commitments. Uncovered spend during a recommendation delay is not itself lost savings; the opportunity depends on eligibility, actual discounts and utilization.

Usage.ai Insured Flex Commitments carry no multi-year lock-in. Commitments adjust quarterly. Scale down? No penalty. Underutilized? Cashback paid in real money — not credits. Every commitment purchased through the platform includes a buyback guarantee.

This matters specifically for teams who are mid-optimization: your compute baseline is still shifting as you move workloads to the same AZ, add CloudFront, and remove NAT Gateway traffic. A platform that penalizes you for changing your commitment size is the wrong tool when your architecture is in flux. See how Usage.ai handles dynamic workloads.

Common Data Transfer Cost Mistakes

  • Using public IPs for intra-VPC communication. EC2 instances communicating via public or Elastic IP addresses within the same Region trigger $0.01/GB charges even in the same AZ. Use private IP addresses for all intra-VPC traffic.
  • NAT Gateway for AWS service access. Gateway endpoints are free for S3 and DynamoDB. Interface endpoints for other services add hourly and processing charges, so compare net savings rather than assuming the replacement is free.
  • Cross-Region replication without traffic modeling. Multi-Region active-active architectures, DynamoDB Global Tables, S3 Cross-Region Replication, all generate cross-region data transfer charges that need to be explicitly budgeted.
  • Confusing ElastiCache replication with application transfer. Same-Region cache-node traffic is free; chargeable cross-AZ application-side bytes and cross-Region replication need separate models.

Multi-AZ RDS confusion. Multi-AZ RDS replication between primary and standby is free. Cross-Region read replica replication is not. These are different features and carry different billing treatments.

 

You’re Overpaying AWS. See by How Much in 60 Seconds.Upload your AWS bill and get your exact overspend number for free. No account access, or commitment required.FIND MY SAVINGS

 

Frequently Asked Questions

1. How much does AWS data transfer cost per GB in 2026?

For N. Virginia public internet egress, the shared monthly 100-GB allowance is followed by $0.09/GB for the first 10 TB billable, $0.085 for the next 40 TB, $0.07 for the next 100 TB and $0.05 thereafter. Apply each marginal tier; do not multiply all traffic by the final tier. Cross-AZ and inter-Region paths have separate rates and exceptions.

2. Is data transfer between EC2 and S3 in the same Region free?

Yes. Data transferred from S3 to EC2 instances in the same AWS Region is free, regardless of whether they are in the same or different AZs. Data transferred from EC2 to S3 in the same Region is also free. Charges apply when data leaves the Region or when S3 serves content directly to the public internet.

 

3. What is the difference between cross-AZ and cross-Region data transfer costs?

A chargeable EC2-to-EC2 cross-AZ transfer can cost $0.01/GB at each endpoint, or $0.02 per GB transferred. Request and response volumes are separate. Inter-Region rates depend on the source/destination pair; N. Virginia to Oregon is $0.02/GB outbound. Service-specific free paths must be excluded.

4. Does AWS charge for data transfer within the same Availability Zone?

Private EC2-to-EC2 traffic in the same AZ has no transfer fee. This does not make every same-AZ architecture free: NAT, PrivateLink, Transit Gateway and load-balancer processing can still incur charges. Public-address paths and other services require their own pricing checks.

5. How do I reduce NAT Gateway data transfer costs?

Use free gateway endpoints for suitable S3/DynamoDB traffic. Other services generally need paid interface endpoints, commonly $7.30 per endpoint AZ at 730 hours plus $0.01/GB in the first tier in N. Virginia. Compare these with the NAT processing and fixed charges actually avoided.

6. Is AWS Direct Connect cheaper than internet egress for data transfer?

It depends on the complete connection cost and traffic path. A dedicated 1-Gbps port costs $219 at 730 hours outside Japan, before circuit, partner and redundancy costs. At illustrative $0.09 internet and $0.02 Direct Connect rates, port-only break-even is 3,128.57 billable GB if the internet allowance is already used. Do not treat that as a complete deployment quote.

7. How do I find data transfer costs in AWS Cost Explorer?

Inspect all relevant services, not only EC2-Other. Group by Usage Type and inspect Operation separately. Regional usage patterns commonly identify cross-AZ transfer; inter-Region usage types include location information. Use Cost and Usage Report line_item_usage_type, line_item_operation and resource fields to establish the actual path before assigning rates.

8. Does CloudFront reduce AWS data transfer costs?

CloudFront can reduce total delivery cost, but it does not universally reduce egress by 85–90%. The first paid US/Europe tier is $0.085/GB, with a 1-TB monthly allowance and additional request pricing. The 100-TB transfer-only example saves $848.04 before requests and optional features. Compare viewer geography, traffic volume, origin costs and flat-rate plans.

See cloud commitment management in action.
More from Usage.ai
Latest from our blogs