All posts
Cost Optimization

Where AWS Charges for Data Transfer: A Map of Every Hop, with 2026 Prices

By

October 25, 2026

7 min read

Data transfer is the AWS cost people understand least, because it is spread across a dozen line items. Every hop a byte can take (same AZ, cross-AZ, cross-Region, internet, NAT, Transit Gateway, PrivateLink, CloudFront) with US East prices and the architecture patterns that quietly multiply them.

Data Transfer
Networking
NAT Gateway
CloudFront
Cost Optimization

AWS does not bill data transfer as one thing. The same gigabyte can be charged for leaving an Availability Zone, passing through a NAT gateway, crossing a Transit Gateway and leaving for the internet, each on a different line of the bill. Knowing the hops is most of the work of reducing it.

The hops

Hop

Price (US East)

Notes

Into AWS from the internet

Free

Within one AZ, private IPs

Free

Including across accounts, when the AZ ID matches

Across AZs in one Region

$0.01/GB each direction

So $0.02 per GB for a request and its response of equal size

Between public IPs in one Region

$0.01/GB each direction

Using public addresses inside a Region costs like cross-AZ

Across Regions

Typically $0.02/GB from US Regions

Varies by Region pair

To the internet

$0.09/GB for the first 10 TB, lower above

First 100 GB a month free, account-wide

S3, ALB or API Gateway to CloudFront

Free

CloudFront then bills its own delivery, or a flat-rate plan covers it

Through a NAT gateway

$0.045/GB processed, plus the transfer itself

The largest avoidable charge in most accounts

Through Transit Gateway

$0.02/GB processed

Plus cross-AZ or cross-Region transfer where it applies

Through a PrivateLink endpoint

$0.01/GB processed

To S3 or DynamoDB through a gateway endpoint

Free

In the same Region

Want a second opinion on this for your system?

Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.

Patterns that multiply the bill

  • Chatty services spread across three AZs. Every call between pods or tasks has a two-in-three chance of crossing an AZ. Kubernetes topology-aware routing and keeping caches zonal cut it substantially.

  • NAT for AWS traffic. ECR image pulls, S3 reads and CloudWatch Logs through NAT pay $0.045/GB for traffic that has a free or cheaper path.

  • Self-managed replication across AZs. Databases, Kafka or Elasticsearch you run yourself pay cross-AZ for every replicated byte. Managed services often absorb this: RDS Multi-AZ replication and MSK broker replication are not billed as data transfer.

  • Network Load Balancers with cross-zone load balancing enabled, which is billed as cross-AZ transfer. ALB cross-zone traffic is not.

  • Serving files from S3 or EC2 directly to the internet instead of through CloudFront.

  • Logging and metrics agents shipping everything to a vendor outside AWS, paying internet egress on every byte of telemetry.

How to see it

In Cost Explorer, filter to the EC2-Other service and group by usage type: DataTransfer-Regional-Bytes is cross-AZ, NatGateway-Bytes is NAT processing, DataTransfer-Out-Bytes is internet. VPC Flow Logs, queried with Athena, tell you which sources and destinations make up each number. Do this before redesigning anything; the biggest line is usually one or two flows.

hoolco Monthly Review

Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.

As of October 25, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.