AWS bill line item: DataTransfer-Out-Bytes
DataTransfer-Out-Bytes: what you pay to send data to the internet
DataTransfer-Out-Bytes is the gigabytes your resources in an AWS region sent out to the internet. In US East (N. Virginia) it is priced in tiers, starting at $0.09 per GB for the first 10 TB a month beyond the free allowance [price-list-dt]. It is one of the few lines that grows with your users rather than with your infrastructure, so it can rise without any change on your side.
What DataTransfer-Out-Bytes means
Amazon S3's billing guide defines it as "the amount of data transferred from Amazon S3 to the internet" [s3-usage-types], and the same name is used for data going out to the internet from other services in a region, such as Amazon EC2. In US East (N. Virginia) the usage type has no region prefix; elsewhere it does, for example APN1-DataTransfer-Out-Bytes for Asia Pacific (Tokyo) [region-codes].
The current US East (N. Virginia) tiers, per month [price-list-dt]:
- $0.09 per GB for the first 10 TB beyond the free allowance
- $0.085 per GB for the next 40 TB
- $0.07 per GB for the next 100 TB
- $0.05 per GB above 150 TB
At the first-tier rate, each 100 GB costs $9.00. Since December 1, 2021, the first 100 GB a month of data transfer out to the internet from AWS regions is free, up from 1 GB per region; the expansion does not apply to the AWS GovCloud or China regions [aws-blog-free-tier].
Data moving between regions or between Availability Zones has its own usage types (for example USE1-USE2-AWS-Out-Bytes between regions [s3-usage-types]) and is not part of this line. Amazon CloudFront uses the same usage type name for delivery from its edge locations, at CloudFront's own prices, which are on the CloudFront price history page. This page covers data out from AWS regions.
How to find it in Cost Explorer or your Cost and Usage Report
Cost Explorer. Group by Usage type and filter to usage types ending in DataTransfer-Out-Bytes. Then group by Service to see which service the egress is billed under; the same usage type can appear under several.
Cost and Usage Report (CUR).
SELECT line_item_product_code,
line_item_usage_type,
line_item_resource_id,
SUM(line_item_usage_amount) AS gb,
SUM(line_item_unblended_cost) AS cost
FROM cur
WHERE line_item_usage_type LIKE '%DataTransfer-Out-Bytes'
GROUP BY 1, 2, 3
ORDER BY cost DESC;
With resource IDs in the report, line_item_resource_id points at the bucket, instance or load balancer that sent the data. Your table and column names depend on how the export was set up.
Who is downloading. The bill says how much, not to whom. VPC Flow Logs for instances, and server access logs or CloudFront logs for buckets and distributions, show the destinations and the objects.
Typical causes of a growing line
- More users, or bigger responses. A larger page, an uncompressed API payload or a new video or download feature raises the bytes per request.
- Files served straight from S3 or EC2 instead of through a CDN cache, so every download is a full transfer out of the region.
- A public bucket or endpoint found by crawlers or scripts that download the same objects repeatedly.
- Data leaving for outside services: backups or replication to another cloud, log and metrics shipping to a third-party platform, or an on-premises system pulling data over the internet.
- Crossing the free allowance. The first 100 GB a month is free [aws-blog-free-tier], so traffic growing from a small base first appears as a brand new charge.
Price history
CostPulse's price history (every version of the AWS Price List since 2015) has 16 like-for-like On-Demand price changes for DataTransfer-Out-Bytes in Amazon Simple Storage Service, AWS Data Transfer, shown below.
In US East (N. Virginia) the history records no like-for-like change to this rate. The changes it does record are regional cuts: in Asia Pacific (Tokyo, Osaka and Sydney), published October 2018, and in South America (Sao Paulo), where every tier fell 40% in a publication of April 27, 2020. Before December 2018 these prices were published in each service's own price list; this page uses the Amazon S3 price list up to then and the AWS Data Transfer price list after. The rows that are not like-for-like include a restructuring published December 13, 2021, effective December 2021, the month the free allowance grew to 100 GB [aws-blog-free-tier].
| Published | Effective | Region | AWS description | Old | New | Change |
|---|---|---|---|---|---|---|
| 2018-10-12 | Mar 2018 | Asia Pacific (Osaka) and 2 more | $0.114 per GB - first 10 TB / month data transfer out beyond the global free tier (tier from 1 GB) was: $0.140 per GB - first 10 TB / month data transfer out beyond the global free tier |
$0.14 | $0.114 | −18.57% |
| 2018-10-12 | Mar 2018 | Asia Pacific (Osaka) and 1 more | $0.089 per GB - next 40 TB / month data transfer out (tier from 10240 GB) was: $0.135 per GB - next 40 TB / month data transfer out |
$0.135 | $0.089 | −34.07% |
| 2018-10-12 | Mar 2018 | Asia Pacific (Sydney) | $0.098 per GB - next 40 TB / month data transfer out (tier from 10240 GB) was: $0.135 per GB - next 40 TB / month data transfer out |
$0.135 | $0.098 | −27.41% |
| 2018-10-12 | Mar 2018 | Asia Pacific (Osaka) and 1 more | $0.084 per GB - greater than 150 TB / month data transfer out (tier from 153600 GB) was: $0.120 per GB - greater than 150 TB / month data transfer out |
$0.12 | $0.084 | −30.00% |
| 2018-10-12 | Mar 2018 | Asia Pacific (Sydney) | $0.092 per GB - greater than 150 TB / month data transfer out (tier from 153600 GB) was: $0.120 per GB - greater than 150 TB / month data transfer out |
$0.12 | $0.092 | −23.33% |
| 2018-10-12 | Mar 2018 | Asia Pacific (Osaka) and 1 more | $0.086 per GB - next 100 TB / month data transfer out (tier from 51200 GB) was: $0.130 per GB - next 100 TB / month data transfer out |
$0.13 | $0.086 | −33.85% |
| 2018-10-12 | Mar 2018 | Asia Pacific (Sydney) | $0.094 per GB - next 100 TB / month data transfer out (tier from 51200 GB) was: $0.130 per GB - next 100 TB / month data transfer out |
$0.13 | $0.094 | −27.69% |
| 2020-04-27 | Apr 2020 | South America (Sao Paulo) | $0.150 per GB - up to 10 TB / month data transfer out (tier from 1 GB) was: $0.250 per GB - up to 10 TB / month data transfer out |
$0.25 | $0.15 | −40.00% |
| 2020-04-27 | Apr 2020 | South America (Sao Paulo) | $0.138 per GB - next 40 TB / month data transfer out (tier from 10240 GB) was: $0.230 per GB - next 40 TB / month data transfer out |
$0.23 | $0.138 | −40.00% |
| 2020-04-27 | Apr 2020 | South America (Sao Paulo) | $0.114 per GB - greater than 150 TB / month data transfer out (tier from 153600 GB) was: $0.190 per GB - greater than 150 TB / month data transfer out |
$0.19 | $0.114 | −40.00% |
| 2020-04-27 | Apr 2020 | South America (Sao Paulo) | $0.126 per GB - next 100 TB / month data transfer out (tier from 51200 GB) was: $0.210 per GB - next 100 TB / month data transfer out |
$0.21 | $0.126 | −40.00% |
One row per publication, price and tier; regions that got the same old and new price are grouped. Each published date links to that publication's page in the AWS price change tracker. Published vs effective dates.
The history also has 59 rows for these usage types that are not like-for-like price changes, so they are not shown as cuts or increases: published 2016-10-15 (10: 10 where the unit or what the price measures changed), published 2016-12-12 (13: 13 where the unit or what the price measures changed), published 2021-12-13 (36: 16 where a price that started at $0; 20 where the unit or what the price measures changed).
What to do about it
- Find the sender with the CUR query above, then the receivers with flow logs or access logs.
- Put Amazon CloudFront in front of cacheable content. CloudFront has its own free allowance of 1 TB a month of data transfer out [aws-blog-free-tier], and cached responses are served from the edge instead of being transferred out of the region again. The egress and CloudFront article on the CostPulse blog covers when this helps.
- Compress text responses and avoid sending fields clients do not use.
- Use Requester Pays for S3 buckets that share large datasets with other AWS accounts, so the downloader pays for the transfer [s3-requester-pays].
- Check where the traffic goes before moving it. Traffic to another AWS region or zone is billed under different usage types; the cross-AZ data transfer article covers those.
- Alert on it daily. Egress follows traffic, so a spike from a crawler or a new feature shows up within a day in the billing data, long before the invoice.
Sources
- AWS Price List API: AWS Data Transfer, DataTransfer-Out-Bytes, US East (N. Virginia), version 20260916132208 (published 2026-09-16)
- Amazon S3 User Guide: Understanding your AWS billing and usage reports for Amazon S3
- AWS News Blog: AWS Free Tier Data Transfer Expansion: 100 GB From Regions and 1 TB From Amazon CloudFront Per Month (November 24, 2021)
- Amazon S3 User Guide: Using Requester Pays buckets
- AWS Region billing codes
Page last reviewed 2026-10-13. Prices quoted as "current" are from the AWS Price List version named next to them and can change; the AWS pricing pages are authoritative.