Cloud Data Egress & Storage Cost Calculator (2026)

Calculate and compare in real-time your monthly object storage spend, public internet egress fees, and the hidden cross-AZ network tax across AWS S3, Cloudflare R2, Google Cloud Storage, and Backblaze B2.

Infrastructure Workload Parameters

Adjust the sliders or choose a pre-configured architecture workload

Monthly Stored Data: 25 TB
1 TB 250 TB 500 TB
Internet Outbound Egress: 15 TB
0 TB (Cache local) 150 TB 300 TB
Cross-AZ Network Traffic: 20 TB
0 TB (Single-AZ) 150 TB 300 TB
API Requests (Class A / B): 2M / 20M
1M GETs 50M GETs 100M GETs
FINOPS COST AVOIDANCE OPPORTUNITY

Savings using Cloudflare R2 vs AWS S3: $1,840.00 / mes

That totals $22,080.00 / año by eliminating public egress bandwidth surcharges.

View Migration Playbook
AWS S3

Amazon S3

Standard (us-east-1)
$2,382.00
Total Monthly Estimate
Storage ($0.023/GB) $575.00
Internet Egress ($0.09/GB) $1,341.00
Cross-AZ Tax ($0.02/GB) $400.00
API Requests $18.00
★ ZERO EGRESS

Cloudflare R2

S3 API Compatible
$387.60
Total Monthly Estimate
Storage ($0.015/GB) $375.00
Internet Egress $0.00 (FREE)
Cross-AZ Tax $0.00
API Requests $12.60
Google Cloud

GCS Standard

us-central1
$2,518.00
Total Monthly Estimate
Storage ($0.020/GB) $500.00
Internet Egress ($0.12/GB) $1,800.00
Inter-zone / Region $200.00
API Requests $18.00
Backblaze B2

Backblaze B2

Cloud Storage
$155.00
Total Monthly Estimate
Storage ($0.006/GB) $150.00
Egress (3x Storage Free) $0.00
Cross-AZ Tax $0.00
API Requests $5.00

AWS S3 Cost Breakdown: Where Does Your Cloud Spend Actually Go?

Notice how bandwidth transfer fees (Internet Egress + Cross-AZ) heavily outweigh storage costs at rest:

Storage at Rest: 24% Internet Egress: 56% Cross-AZ Network Tax: 17% API Requests: 3%

Engineering Playbook: 3 Concrete Blueprints to Eliminate Egress Fees

Deploy these production-tested architectural configurations to immediately slash your AWS cloud invoice:

# Python Boto3 Drop-In Replacement for Cloudflare R2
import boto3
from botocore.config import Config

# Configure S3 client pointing directly to your Cloudflare R2 Bucket
s3_client = boto3.client(
    service_name='s3',
    endpoint_url='https://<ACCOUNT_ID>.r2.cloudflarestorage.com',
    aws_access_key_id='YOUR_R2_ACCESS_KEY_ID',
    aws_secret_access_key='YOUR_R2_SECRET_ACCESS_KEY',
    region_name='auto',
    config=Config(signature_version='s3v4')
)

# Reads and writes execute via S3 API with 100% zero outbound bandwidth charges
response = s3_client.get_object(Bucket='production-assets', Key='large-dataset.parquet')
data = response['Body'].read()
print(f"Successfully read {len(data):,} bytes with $0.00 egress fee!")
# Terraform: Provision AWS S3 Gateway Endpoint (Bypasses NAT Gateway $0.045/GB tax)
resource "aws_vpc_endpoint" "s3" {
  vpc_id            = aws_vpc.main.id
  service_name      = "com.amazonaws.us-east-1.s3"
  vpc_endpoint_type = "Gateway"
  route_table_ids   = aws_route_table.private[*].id

  tags = {
    Name        = "s3-gateway-endpoint-zero-egress"
    Environment = "Production"
    ManagedBy   = "Terraform"
  }
}
# Eliminates NAT Gateway hourly fees ($0.045/hr) and data processing surcharges ($0.045/GB)
# Kubernetes Service Spec: Enable Local-AZ Routing (Eliminates $0.02/GB cross-AZ tax)
apiVersion: v1
kind: Service
metadata:
  name: internal-catalog-service
spec:
  type: ClusterIP
  # Prefer routing requests to pods in the exact same Availability Zone:
  trafficDistribution: PreferClose
  ports:
    - port: 8080
      targetPort: 8080
  selector:
    app: catalog-backend

1. The Anatomy of Egress: Why Bandwidth is Cloud Computing's Highest-Margin Business

In modern cloud infrastructure, data storage at rest has undergone aggressive commoditization. Storing 1 TB in Amazon S3 costs $23/month, and in Backblaze B2 just $6/month. Yet extracting that exact same terabyte to the public internet costs $90 in AWS ($0.09/GB) and $120 in Google Cloud Platform ($0.12/GB).

Wholesale IP transit for Tier-1 network operators over 100 Gbps circuits currently trades between $0.0002 and $0.0005 per gigabyte. This reveals that hyperscaler public egress pricing operates at gross margins exceeding 95%. Bandwidth pricing is not a reflection of underlying technical transit costs, but a calculated financial moat designed to penalize multi-cloud architectures and hybrid on-premise migrations.

2. The Silent Network Tax: Cross-AZ Egress and the NAT Gateway Trap

Many engineering teams incorrectly assume that if their data never traverses the public internet, network transfer fees are non-existent. In AWS, any packet traversing Availability Zone boundaries within the same geographical region (e.g., us-east-1a to us-east-1b) incurs a $0.01/GB egress fee plus a $0.01/GB ingress fee, totaling $0.02 per gigabyte ($20/TB).

In distributed Kubernetes architectures (EKS), Apache Kafka clusters with cross-AZ partition replication, or multi-AZ database read replicas, this silent East-West bandwidth frequently comprises 30% to 50% of the aggregate AWS network bill. Furthermore, if compute pods in private subnets reach Amazon S3 through a managed AWS NAT Gateway rather than a free Gateway VPC Endpoint, an extra $0.045/GB data processing fee plus $0.045/hr instance fee is applied.

3. How Cloudflare R2 Disrupts Cloud Storage Unit Economics

Launched with complete S3 API parity, Cloudflare R2 fundamentally changed cloud unit economics by guaranteeing zero egress bandwidth fees permanently. Because R2 implements the standard S3v4 signing protocol, any existing codebase (Python Boto3, Node.js AWS SDK, Go, or Java) transitions seamlessly simply by overriding the endpoint URL.

For organizations hosting AI datasets, vector repositories, user-generated media, or Parquet lakehouse tables queried by DuckDB or ClickHouse, using Cloudflare R2 as a primary store or caching tier routinely yields net expenditure reductions exceeding 75% compared to identical setups on AWS S3.

JA
José Andrade
Architect

Architect and founder of CloudBizStack, applying architectural planning discipline and structured cost estimation to independent software research.