In hyperscaler cloud environments (AWS, Google Cloud Platform, and Microsoft Azure), data ingress (`PUT` and `POST` payloads entering an object storage bucket from the public internet) is priced at $0.00/GB. Conversely, outbound data transfer to the public internet (egress) is billed at progressive per-gigabyte rates ranging from $0.05/GB to $0.16/GB depending on monthly volume and geographic routing territory.
This asymmetric pricing model creates severe financial friction for read-heavy architectures. For media delivery, software package distribution, AI dataset hydration, and SaaS asset workloads where monthly outbound transfer exceeds stored disk capacity by a factor of 3x or more, bandwidth egress charges routinely represent 65% to 88% of the total monthly cloud storage invoice.
Piecewise Linear Formula for Tiered Internet Egress
AWS S3 Data Transfer Out to the public internet from North American and European regions (`us-east-1`, `us-west-2`, `eu-west-1`, `eu-central-1`) is not billed at a flat rate. Instead, it follows a marginal bracket function $E(x)$ where $x$ represents total monthly outbound gigabytes across the consolidated AWS Payer Account after deducting the 100 GB monthly free tier:
Because the brackets are cumulative rather than retroactive, reaching the 150 TB tier does not re-price your first 150 TB at $0.05/GB. For a workload transferring 220 TB (`220,000 GB`) in `us-east-1` during a billing cycle, the exact invoice calculation is:
- First 10,000 GB (minus 100 GB free): 9,900 GB × $0.090 = $891.00
- Next 40,000 GB (10 TB to 50 TB): 40,000 GB × $0.085 = $3,400.00
- Next 100,000 GB (50 TB to 150 TB): 100,000 GB × $0.070 = $7,000.00
- Remaining 70,000 GB (150 TB to 220 TB): 70,000 GB × $0.050 = $3,500.00
- Total Monthly Egress Charge: $14,791.00 ($0.0672/GB effective blended rate)
Regional Egress Disparity Across Global Territories
Subsea fiber transit consortium fees and regional telecom peering structures cause hyperscalers to charge substantially higher egress rates in Asia-Pacific, South America, and the Middle East. Serving global users directly from regional buckets in these territories inflates bandwidth TCO by 30% to 65% over US/EU baselines:
| AWS / GCP Region | First 10 TB ($/GB) | Next 40 TB ($/GB) | Next 100 TB ($/GB) | Cost for 50 TB Egress |
|---|---|---|---|---|
| US-East / EU-Central | $0.090 | $0.085 | $0.070 | $4,291.00 |
| APAC (Tokyo / Singapore) | $0.114 | $0.089 | $0.086 | $4,688.60 |
| APAC (Mumbai / India) | $0.109 | $0.085 | $0.082 | $4,479.10 |
| Australia (Sydney) | $0.114 | $0.098 | $0.094 | $5,048.60 |
| South America (São Paulo) | $0.150 | $0.140 | $0.130 | $7,085.00 |
Intra-Region Cross-AZ vs. Inter-Region Routing Boundaries
Public internet egress is only one component of cloud network billing. Systems architects must account for four internal VPC and storage routing boundaries that frequently appear on monthly invoices:
- EC2/EKS to S3 in the Same Region (Via Gateway VPC Endpoint): Priced at $0.00/GB regardless of which Availability Zone (`us-east-1a`, `1b`, `1c`) the compute node resides in, provided the subnet route table directs S3 prefix traffic through a free S3 Gateway VPC Endpoint.
- EC2/EKS to S3 in the Same Region (Via Managed NAT Gateway): If a private subnet lacks an S3 Gateway Endpoint, traffic to S3 routes through the public subnet's NAT Gateway. While S3 still charges $0.00/GB for the transfer, the NAT Gateway bills a mandatory $0.045/GB data processing fee ($45.00/TB).
- EC2-to-EC2 / RDS Cross-AZ Transfer (`DataTransfer-Regional-Bytes`): Billed at $0.01/GB egress from Zone A and $0.01/GB ingress into Zone B—resulting in an effective $0.02/GB ($20.00/TB) charge for every gigabyte transferred between Availability Zones in the same region.
- Cross-Region Replication (`S3 CRR` / Inter-Region Transfer): Replicating objects from `us-east-1` to `eu-west-1` or reading an `us-east-1` S3 bucket from an `us-west-2` EC2 instance incurs a flat $0.02/GB inter-region transfer charge, plus destination Class A `PUT` fees and duplicate storage capacity charges.
What We Measured: Reconciling AWS Cost Explorer SKU Output
Cloud invoices often bundle storage capacity, API requests, and multiple bandwidth tiers under a single service heading (`Amazon Simple Storage Service`). To isolate exact monthly gigabyte volume and dollar spend across internet egress, inter-region transfer, and cross-AZ flows, run the following AWS CLI Cost Explorer query against your master payer account:
aws ce get-cost-and-usage \
--time-period Start=2026-07-01,End=2026-08-01 \
--granularity MONTHLY \
--metrics "UnblendedCost" "UsageQuantity" \
--filter '{
"And": [
{ "Dimensions": { "Key": "SERVICE", "Values": ["Amazon Simple Storage Service", "Amazon Elastic Compute Cloud - Compute"] } },
{ "Dimensions": { "Key": "USAGE_TYPE_GROUP", "Values": [
"S3: Data Transfer - Internet (Out)",
"S3: Data Transfer - Inter-Region",
"EC2: Data Transfer - Region to Region",
"EC2: Data Transfer - Inter AZ"
]
}}
]
}' \
--group-by Type=DIMENSION,Key=USAGE_TYPE
Below is an actual Cost Explorer response excerpt from a production `us-east-1` workload before we added an S3 Gateway VPC Endpoint and migrated public asset delivery to a peered zero-egress store:
{
"Groups": [
{
"Keys": ["USE1-DataTransfer-Out-Bytes"],
"Metrics": {
"UnblendedCost": { "Amount": "3621.85", "Unit": "USD" },
"UsageQuantity": { "Amount": "42127.64", "Unit": "GB" }
}
},
{
"Keys": ["USE1-DataTransfer-Regional-Bytes"],
"Metrics": {
"UnblendedCost": { "Amount": "614.20", "Unit": "USD" },
"UsageQuantity": { "Amount": "61420.11", "Unit": "GB" }
}
},
{
"Keys": ["USE1-EU-AWS-Out-Bytes"],
"Metrics": {
"UnblendedCost": { "Amount": "188.40", "Unit": "USD" },
"UsageQuantity": { "Amount": "9420.00", "Unit": "GB" }
}
}
]
}
Notice how `USE1-DataTransfer-Regional-Bytes` (`61,420.11 GB` at `$0.01/GB` per direction) quietly added `$614.20/mo` because worker nodes in `us-east-1b` and `us-east-1c` were pulling S3 payloads through a centralized Nginx proxy in `us-east-1a` rather than reading directly from S3 inside each local AZ.
Peering & Zero-Egress Breakeven Thresholds
When evaluating whether to keep active objects on a hyperscaler (`AWS S3`) versus migrating to a zero-egress store (`Cloudflare R2` or `Backblaze B2 + Bunny CDN`), calculate your workload's dimensionless Egress-to-Storage Ratio ($R_{es}$):
Model Your Exact Egress & Storage Ratio
Input your monthly TB volume and CDN cache-hit percentage into the Daktan TCO Calculator.