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

ChargePriceUnit
First 100 GB per month (all services, global)$0.00per GB
Up to 10 TB per month$0.09per GB
Next 40 TB$0.085per GB
Next 100 TB$0.07per GB
Above 150 TB$0.05per 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

  1. Billing and Cost Management > Cost Explorer > group by Usage type, filter DataTransfer-Out-Bytes, then group by Service.
  2. For S3: bucket > Metrics tab > Request metrics > create a filter; look at BytesDownloaded by prefix after a day.
  3. For EC2/ALB: CloudWatch > Metrics > EC2 NetworkOut or ApplicationELB ProcessedBytes, per resource.
  4. Enable compression on the application, or add caching headers on static files.
  5. 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=SERVICE
aws 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.

See a sample result

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

Part of the guide: Why is my AWS bill so high? Check these 8 line items first