Home › Decoder › DataTransfer-Out-Bytes: internet egress on your bill
DataTransfer-Out-Bytes: internet egress on your bill
DataTransfer-Out-Bytes is the charge for data that leaves AWS to the internet, $0.09 per GB for the first 10 TB a month in US East (N. Virginia) after the first 100 GB of the month, which AWS documents as free.
In your bill the usage type reads: DataTransfer-Out-Bytes, USE1-DataTransfer-Out-Bytes
What it costs
| Charge | Price | Unit |
|---|---|---|
| First 100 GB per month (all services, global) | $0.00 | per GB |
| Up to 10 TB per month | $0.09 | per GB |
| Next 40 TB | $0.085 | per GB |
| Next 100 TB | $0.07 | per GB |
| Above 150 TB | $0.05 | per GB |
US East (N. Virginia); other regions differ. Checked 2026-11-04. Sources: AWS EC2 on-demand pricing, data transfer, AWS price list file, data transfer, us-east-1.
Example with made-up numbers
3,100 GB sent to the internet in the month, 100 GB free: 3,000 GB billable
3,000 GB x $0.09 = $270.00 on DataTransfer-Out-Bytes
If 1,800 GB of it is downloads of the same static files, serving them through a CDN or caching layer removes part of that; compare your CDN's own price first
Typical causes
Public downloads served straight from S3 or EC2
Large files, images and videos delivered from the origin to every visitor, with no caching layer in front.
API responses that are much larger than needed
Uncompressed JSON, unpaginated lists or full objects returned when the client needs a few fields.
Data shipped to an outside vendor or partner
Logs, backups, analytics exports and replication to services outside AWS leave through the same internet egress line.
Traffic you did not intend to serve
Public buckets or endpoints being scraped, hot-linked or abused by bots.
The fix, step by step
Verify first
Check these before you change anything: the steps below are suggestions, and only you can see your own configuration.
- Find the source before changing anything: in Cost Explorer group DataTransfer-Out-Bytes by service and then by resource (CUR) or check S3 request metrics, ALB ProcessedBytes and CloudWatch NetworkOut for the instances involved.
- For S3, turn on request metrics or access logs for a day on the suspect bucket to see which objects and clients are responsible. Do not assume it is customers.
- If you consider a CDN, check the CDN's own pricing and your cache hit ratio expectations first. This page does not quote CDN prices.
- Check whether the traffic is legitimate (customers, partners) before blocking it; blocking a real consumer is worse than the bill.
In the console
- Billing and Cost Management > Cost Explorer > group by Usage type, filter DataTransfer-Out-Bytes, then group by Service.
- For S3: bucket > Metrics tab > Request metrics > create a filter; look at BytesDownloaded by prefix after a day.
- For EC2/ALB: CloudWatch > Metrics > EC2 NetworkOut or ApplicationELB ProcessedBytes, per resource.
- Enable compression on the application, or add caching headers on static files.
- Re-check the daily view in Cost Explorer after the change.
With the CLI
aws ce get-cost-and-usage --time-period Start=2026-10-01,End=2026-11-01 --granularity DAILY --metrics UnblendedCost UsageQuantity --filter '{"Dimensions":{"Key":"USAGE_TYPE","Values":["DataTransfer-Out-Bytes"]}}' --group-by Type=DIMENSION,Key=SERVICEaws s3api put-bucket-metrics-configuration --bucket EXAMPLE-BUCKET --id all --metrics-configuration Id=all
Rollback
Caching and compression changes are reversible by reverting the configuration. Keep the old origin settings in version control.
Find your egress in your own bill
Drop in your Cost Explorer or CUR CSV. Billtrim reads it in your browser, finds the data-transfer lines and shows the dollars and steps for your numbers.
Paste your export: how to export a Cost Explorer CSV or CUR file in two minutes.
Questions people ask
Is inbound data free?
AWS documents data transfer into AWS from the internet as free; this line is about data going out.
Is the 100 GB free tier per service?
AWS documents it as 100 GB per month aggregated across services and regions. Check the EC2 pricing page for current terms.
Why does the same GB sometimes show on NatGateway-Bytes too?
A NAT gateway charges $0.045 per GB it processes in addition to normal data-transfer charges. They are two different lines for the same traffic.
Related
- NatGateway-Bytes: the NAT Gateway data-processing line
- DataTransfer-Regional-Bytes: cross-AZ traffic on your bill
- TimedStorage-ByteHrs: the S3 Standard storage line
Part of the guide: Why is my AWS bill so high? Check these 8 line items first