Free calculator

AWS data transfer cost calculator

Data transfer is the line nobody models in advance and everybody argues about afterwards. Four directions, four prices, and the one that catches people is traffic that never leaves AWS.

Everything leaving AWS for a browser or a third party. First 100 GB a month is free.

App to database, service to service, replication. Enter the traffic once; the charge applies to both ends.

Cross-region replication, multi-region reads, DR copies.

Traffic from private subnets, including pulls from S3 and ECR that a VPC endpoint would carry for free.

Internet egress

$171.00/month

$2,052.00/year · ≈ £133/month

Cross-AZ, both ways

$100.00/month

$1,200.00/year · ≈ £78/month

Inter-region

$0.00/month

$0.00/year · ≈ £0/month

NAT processing

$45.00/month

$540.00/year · ≈ £35/month

Total data transfer

$316.00/month

$3,792.00/year · ≈ £246/month

Internet egress is tiered from $0.09/GB after the first 100 GB free. Cross-AZ is $0.01/GB in each direction, so $0.02 per GB moved. Inter-region is about $0.02/GB and varies by pair. NAT processing is $0.05/GB on top of the $0.05/hour gateway charge, which is not counted here.

The scan reads real transfer volumes from Cost Explorer and CloudWatch rather than asking you to guess, and flags the traffic a free S3 or DynamoDB gateway endpoint would remove.

Estimate the whole bill

Where transfer charges come from

  • Cross-AZ chatter. Charged $0.01 per GB in each direction, so $0.02 per GB moved. A service mesh spread across three zones for resilience pays this on every internal call, and it is invisible unless you group Cost Explorer by usage type.
  • NAT gateway processing on AWS-bound traffic. $0.045 per GB, applied to traffic going to S3, ECR and DynamoDB that never reaches the internet. A free gateway endpoint removes it entirely, which makes this the best-value fix on the list.
  • Egress without a CDN. Serving files straight from S3 or an ALB to the internet bills from $0.09 per GB with no caching. CloudFront is cheaper per GB and serves repeats from the edge.
  • Cross-region replication left on. Enabled once for a bucket or a database that no longer matters, still copying every write across a region boundary at around $0.02 per GB, and doubling the storage bill while it does.
  • Interface endpoints added everywhere. An interface endpoint costs about $7.30 per availability zone per month plus $0.01 per GB. Below roughly 160 GB a month to that service, the NAT gateway you were avoiding was cheaper.

Frequently asked questions

How much does AWS charge for data transfer?

Internet egress is tiered from $0.09 per GB after the first 100 GB a month across the account. Traffic between availability zones is $0.01 per GB in each direction, so $0.02 per GB moved. Inter-region is around $0.02 per GB depending on the pair. Traffic inbound from the internet is free. Traffic through a NAT gateway adds $0.045 per GB on top of whatever else applies.

Why is cross-AZ transfer charged twice?

AWS bills the sending side and the receiving side separately, at $0.01 per GB each. Spreading services across three availability zones for resilience means a chatty service mesh pays that on every internal hop. It appears in Cost Explorer as DataTransfer-Regional-Bytes under EC2-Other, which is why almost nobody attributes it correctly.

Does CloudFront reduce data transfer cost?

Yes, twice over. CloudFront egress is cheaper per GB than S3 or EC2 egress, transfer from AWS origins into CloudFront is free, and cached responses never touch the origin at all. For anything serving repeat content to the internet, putting CloudFront in front is usually the largest single transfer saving available.

Is data transfer into AWS free?

Inbound from the internet is free. Everything else has a price: cross-AZ is charged in both directions, inter-region is charged on the sending side, and traffic through a NAT gateway or an interface endpoint is charged per GB regardless of direction.

What is the cheapest way to cut a transfer bill?

In order: add free gateway VPC endpoints for S3 and DynamoDB, put CloudFront in front of anything public, then look at whether cross-AZ chatter can be reduced by keeping request paths inside a zone. The first two are configuration changes; the third is an architecture change and should come last.