machine-learningnetworkingcost-optimizationawsfinops

AI workload data transfer cost: the line item nobody forecasts

Training pulls terabytes from object storage, distributed jobs push gradients across zones, and inference ships embeddings between services. At $0.01 to $0.09 per GB, AI data movement turns into a five-figure line quickly.

The C3X Team··7 min read

Quick answer

AI workloads move far more data than typical applications, and cloud networking charges per GB. Cross-AZ traffic costs about $0.01 per GB in each direction, cross-region about $0.02 per GB, and internet egress about $0.09 per GB for the first 10 TB. A distributed training job pushing 50 TB of gradient traffic across zones costs roughly $1,000 in transfer alone. Pulling a 20 TB dataset from another region costs about $400 per run. The fixes are keeping GPUs, data, and storage in one availability zone, caching datasets locally, and using VPC endpoints for object storage.

Data transfer is the classic invisible cloud cost, and AI workloads are the worst offenders because they move data by the terabyte as a matter of routine. Training reads the dataset repeatedly, distributed jobs exchange gradients on every step, checkpoints are written constantly, and inference services ship embeddings and documents between components. Every one of those hops may be metered.

The rates that apply

PathTypical AWS rateNotes
Within one AZ, private IPfreeThe configuration to aim for
Cross-AZ, same regionabout $0.01/GB each waySo about $0.02/GB round trip
Cross-regionabout $0.02/GBVaries by region pair
Internet egressabout $0.09/GB first 10 TBTiered down at volume
S3 to EC2, same regionfreeWith a gateway VPC endpoint
NAT gateway processingabout $0.045/GBPlus about $0.045/hr per gateway

Full background on the AWS model is in AWS data transfer costs explained. GCP and Azure have similar structures with different numbers.

Where AI workloads generate volume

Dataset reads. A 20 TB dataset read once per epoch over 5 epochs is 100 TB of reads. If storage and compute are in the same region and you use a gateway endpoint, that is free. If the bucket is in another region, it is about $2,000. If the traffic routes through a NAT gateway instead of an endpoint, add $0.045 per GB, about $4,500 for the same 100 TB. The difference between the best and worst configuration here is thousands of dollars for identical work.

Distributed training gradients. All-reduce traffic scales with model size and step count. A 7B model in FP16 exchanges roughly 14 GB per all-reduce; at 20,000 steps across 8 workers that is a very large number, which is exactly why multi-GPU instances with NVLink and single-placement-group clusters exist. Keep distributed workers in one availability zone and inside a cluster placement group, and this traffic is free. Spread them across zones for availability and you pay $0.01 per GB each way on every step.

Checkpoint writes. A 70B model checkpoint near 800 GB, written every 30 minutes over a 48-hour run, is about 77 TB of writes. Same-region writes to object storage are free of transfer charges but do incur PUT request fees and storage. Cross-region replication of that data at $0.02 per GB would be about $1,540 per run.

Inference serving. Each response is small, but volume is enormous. Ten million responses a day at 4 KB each is 40 GB a day, about 1.2 TB a month, roughly $108 at internet egress rates. Streaming responses and retrieved documents can multiply that by ten.

A worked monthly bill

ComponentVolumeRateMonthly
Cross-AZ gradient traffic50 TB$0.01/GB each wayabout $1,000
Cross-region dataset pulls30 TB$0.02/GBabout $600
NAT-routed S3 reads15 TB$0.045/GBabout $675
Inference egress3 TB$0.09/GBabout $270
Totalabout $2,545

Three of those four lines are avoidable with configuration changes alone, taking the bill to roughly $270.

The fixes, ranked

Add a gateway VPC endpoint for S3 and DynamoDB. It costs nothing and removes NAT processing charges on object storage traffic entirely, which is often the single biggest avoidable line. Keep training data in the same region as the GPUs, and copy once rather than reading cross-region repeatedly. Place distributed training workers in one availability zone and one cluster placement group. Cache the dataset on the instance's included local NVMe on the first epoch so subsequent epochs read locally at zero cost. Put a CDN in front of high-volume inference responses if they are cacheable. And compress payloads: gzip on JSON responses routinely cuts egress volume by 70 percent, which is a 70 percent cut on that line.

Multi-cloud and hybrid make it worse

Teams that train in one cloud and serve in another, or that pull data from an on-premises store, pay egress at the full internet rate on every byte crossing the boundary. Moving a 20 TB dataset out of a cloud at about $0.09 per GB costs roughly $1,843 per copy, and doing it monthly because the pipeline re-exports rather than syncing incrementally turns that into a $22,000 annual line for data that barely changed. Incremental sync, one-way replication with lifecycle cleanup, and doing the compute where the data already lives are all cheaper than moving terabytes repeatedly. If a workload genuinely must span providers, put the heavy data movement on a one-time migration and keep the ongoing traffic to metadata and results.

Design it in, do not discover it

Transfer cost is a property of topology, and topology is defined in Terraform. Subnet placement, endpoint configuration, bucket region, and NAT routing are all code, which means they can be reviewed and priced before they run. Price the network layout against the resource catalog so a bucket placed in the wrong region is caught in a pull request rather than in a quarterly bill review.

FAQ

Why is data transfer expensive for AI workloads?

Because AI moves data by the terabyte as routine work. Training reads the dataset once per epoch, distributed jobs exchange gradients every step, checkpoints are written constantly, and inference ships documents and embeddings between services. At about $0.01 per GB cross-AZ, $0.02 cross-region, and $0.09 for internet egress, terabyte-scale movement becomes thousands of dollars quickly.

How do I avoid cross-AZ charges in distributed training?

Place all distributed workers in a single availability zone and, on AWS, inside a cluster placement group. Traffic between instances in the same AZ over private IPs is free, while cross-AZ traffic costs about $0.01 per GB in each direction, which all-reduce gradient exchange incurs on every step. Single-AZ placement trades some availability for a large transfer saving on training jobs.

Does reading training data from S3 cost anything?

Within the same region and through a gateway VPC endpoint, no transfer charge applies, only GET request fees. If the traffic routes through a NAT gateway instead, you pay about $0.045 per GB of processing, which on 100 TB of reads is about $4,500. If the bucket is in another region, cross-region transfer at about $0.02 per GB adds roughly $2,000 for the same volume.

How much does inference egress cost?

Ten million responses a day at 4 KB each is about 40 GB a day, roughly 1.2 TB a month, or about $108 at the $0.09 per GB internet egress rate. Streaming responses, returned source documents in a retrieval system, or image outputs can multiply that tenfold. Gzip compression on JSON responses typically cuts the volume by around 70 percent.

What is the single biggest transfer saving for ML workloads?

Adding a gateway VPC endpoint for object storage. It costs nothing and eliminates NAT gateway processing charges of about $0.045 per GB on all S3 traffic, which for a training pipeline reading tens of terabytes is often the largest avoidable line on the bill. Second is keeping datasets and GPUs in the same region so no cross-region charge applies.

How does C3X help with AI data transfer cost?

Transfer cost is a property of topology, and topology is defined in Terraform: subnet placement, VPC endpoints, bucket regions, and NAT routing are all code. C3X prices that infrastructure against a live catalog before it deploys, so a bucket in the wrong region or a missing gateway endpoint is caught in the pull request rather than in a quarterly bill review.

What to do next

Catch transfer cost in the pull request. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.

Try C3X on your own Terraform

Free and open source. No API key required. One command to install, one command to estimate.