AWS Egress vs DigitalOcean
The Cloud Bill That Broke the Camel's Back Wasn't Compute โ It Was Data Leaving the Building
Published: 2026-06-21 | jslet Research | 12 min read | Classification: Unrestricted
Executive Summary
Everyone benchmarks compute. vCPU cores, GB of RAM, IOPS on the block device — those numbers are clean, comparable, and prominently displayed on every pricing page. But egress is the line item nobody talks about until the bill arrives.
AWS charges $0.05–$0.09/GB for public internet egress after the first 100 GB/month. DigitalOcean includes 500 GB to 11 TB of free egress per Droplet, depending on the plan tier, with overages at $0.01/GB. For many workloads, this single line item determines whether your unit economics work.
This article runs three real-world workload profiles through both pricing models — a small SaaS API, a media processing pipeline, and a centralized logging sink — and computes the actual egress cost difference. The numbers are not close.
Raw Pricing: Side by Side
Before we model the workloads, here is the baseline. All prices are public, non-discounted rates as of June 2026.
| Tier | AWS (us-east-1) | DigitalOcean (NYC3) |
|---|---|---|
| First 100 GB / month | Free | Free† |
| Next 10 TB | $0.09 / GB | Free (within Droplet allowance) |
| Next 40 TB | $0.085 / GB | Free (within Droplet allowance) |
| Next 100 TB | $0.07 / GB | Free (within Droplet allowance) |
| > 150 TB | $0.05 / GB | Custom pricing |
| Overage rate (above allowance) | N/A (always metered) | $0.01 / GB |
† DigitalOcean Droplet egress allowance scales with plan: Basic $6/mo = 500 GB, General Purpose $24/mo = 4 TB, CPU-Optimized $48/mo = 11 TB. The allowance resets each billing cycle.
The headline difference is obvious. But the real question is: for your actual workload, how much of that AWS egress tier do you burn through?
Workload A: The API Platform
Small SaaS ยท 50,000 DAU ยท REST JSON responses
Scenario
A REST API serving mobile clients. Average response payload is 8 KB. Each user makes ~30 API calls per session. That's 240 KB per daily active user. At 50,000 DAU, the application layer pushes 12 GB/day in response bodies. Add TLS handshake overhead (~15%) and HTTP headers, and the wire-level number is closer to 15 GB/day.
15 GB/day × 30 days = 450 GB/month of application-layer egress.
| Provider | Egress Cost | Compute | Total |
|---|---|---|---|
| AWS | $31.50 (350 GB × $0.09) | ~$50 (t3.large) | $81.50/mo |
| DigitalOcean | $0 (within 4 TB allowance) | $48 (CPU-Opt 4 vCPU) | $48.00/mo |
Takeaway: At 450 GB/month, the absolute egress cost on AWS is modest — $31.50. But relative to the $50 compute bill, it's a 63% surcharge. That pattern only intensifies as the product grows. When this API hits 200,000 DAU and egresses 1.8 TB/month, the AWS egress line item reaches $155 while DigitalOcean stays at $0.
Workload B: The Media Pipeline
UGC Platform ยท 200,000 images/day ยท On-the-fly thumbnail generation
Scenario
A user-generated content platform. Users upload 200,000 images per day. Each source image is processed into 4 derivative sizes (thumbnail, small, medium, full) and served back to clients. Average processed asset size across all variants: 120 KB. 200,000 × 4 × 120 KB = 96 GB/day of served assets.
Before a proper CDN origin-shield strategy is in place, a 2× cache-miss multiplier is realistic during the early growth phase: 192 GB/day. 192 GB/day × 30 days = 5,760 GB/month (~5.6 TB).
| Provider | Egress Cost | Compute | Total |
|---|---|---|---|
| AWS | $509.40 (5.66 TB × $0.09) | ~$280 (c5.2xlarge) | $789.40/mo |
| DigitalOcean | $0 (within 11 TB allowance) | $192 (CPU-Opt 16 vCPU) | $192.00/mo |
Takeaway: This is where the AWS egress tax becomes existential. $509/month in egress on a $280 compute bill is a 182% surcharge. The same workload runs for $192/month total on DigitalOcean — a 76% overall cost reduction from changing providers. A media startup burning $790/month on AWS could reinvest that $597/month difference into an additional 16 vCPU Droplet and still have budget left over.
Workload C: The Log & Telemetry Sink
Observability ยท 500 hosts ยท 10 KB/s per host ยท 24/7 continuous egress
Scenario
A platform team centralizing observability data. 500 application hosts each emit ~10 KB/s of structured logs, metrics, and trace spans to an external SaaS. That's 5 MB/s aggregate, or 432 GB/day. Every day. Weekends included.
432 GB/day × 30 days = 12,960 GB/month (~12.7 TB).
| Provider | Egress Cost | Compute | Total |
|---|---|---|---|
| AWS | $1,205.57 (10 TB × $0.09 + 2.7 TB × $0.085) | ~$600 (m5.4xlarge × 2) | $1,805.57/mo |
| DigitalOcean | $0 (within 22 TB pooled allowance) | $384 (CPU-Opt 32 vCPU × 2) | $384.00/mo |
Takeaway: At ~13 TB/month, the AWS egress line item alone is larger than three DigitalOcean Droplets combined. The $1,421.57/month savings funds an additional engineering headcount. This is the workload profile that most aggressively makes the case for a provider switch on financial grounds, before any technical argument enters the discussion.
The Breakeven Math
For a workload that doesn't lean heavily on AWS-native managed services, the decision simplifies to a single inequality:
DOmonthly = compute + max(0, egress_GB − allowance) × $0.01
Where allowance depends on the Droplet tier — 500 GB for Basic, 4 TB for General Purpose, and 11 TB for CPU-Optimized. For any workload under 11 TB/month on a single CPU-Optimized Droplet, the DigitalOcean egress term is zero. On AWS, that same 5 TB costs $441 in egress before you've paid for a single CPU cycle.
Plug your own numbers into our AWS Egress Cost Calculator and Cloud Storage Comparison tool. The math takes 30 seconds.
The Full Cost Curve
Here is the same comparison across the egress volume spectrum, assuming a single CPU-Optimized Droplet (11 TB allowance) on DigitalOcean:
| Monthly Egress | AWS Egress Cost | DO Egress Cost | Savings | Savings % |
|---|---|---|---|---|
| 500 GB | $36.00 | $0 | $36.00 | 100% |
| 1 TB | $82.94 | $0 | $82.94 | 100% |
| 5 TB | $441.00 | $0 | $441.00 | 100% |
| 10 TB | $891.00 | $0 | $891.00 | 100% |
| 15 TB | $1,316.00 | $40.96 | $1,275.04 | 97% |
| 50 TB | $4,016.00 | $399.36 | $3,616.64 | 90% |
The savings are near-total until the 15 TB mark, and still exceed 90% at 50 TB/month. For the vast majority of startups and mid-market teams, the AWS egress premium is not a rounding error. It's the single largest avoidable line item in the bill.
The CloudFront Counterargument
The standard AWS response to egress concerns is: "Put CloudFront in front of it." And yes, CloudFront origin-to-edge transfer is free, and CloudFront egress ($0.085/GB for the first 10 TB in US) is marginally cheaper than direct S3/EC2 egress. But four problems remain:
- CloudFront only helps cacheable content. API responses, WebSocket streams, real-time data, and dynamic content all bypass the cache and hit origin egress. That's the entire workload of Profile A and C above.
- Operational complexity is real. Cache invalidation strategy, origin-shield configuration, stale-content debugging — these are engineering hours that could be spent on product.
- At any scale, you're still paying. CloudFront egress bottoms out at $0.02/GB for high-volume commitments. DigitalOcean's overage rate is $0.01/GB — half the price of CloudFront's best negotiated rate.
- Origin fetches cost money too. The CloudFront-to-origin leg is free, but the response body leaving your origin still counts as regional data transfer if your origin and CloudFront edge are in different AWS regions.
CDN offload is a cost-optimization tactic, not a cost-elimination strategy. On DigitalOcean, the baseline free egress allowance means many teams never need to think about CDN economics until they're well past 10 TB/month.
When AWS Makes Sense (and When It Doesn't)
This isn't an "AWS bad" argument. AWS wins on ecosystem breadth, IAM granularity, and depth of managed services. If your architecture genuinely depends on SQS, DynamoDB Streams, Lambda@Edge, and VPC Transit Gateway, the egress premium is the price of that integration surface — a reasonable trade-off.
But a large fraction of workloads don't need that surface. They need VMs that boot quickly, block storage that doesn't surprise you, and a network pipe that doesn't charge by the byte on the way out. For those workloads, the AWS egress premium is pure deadweight loss.
| AWS Wins When | DigitalOcean Wins When |
|---|---|
| Heavy use of AWS-native managed services (SQS, DynamoDB, Lambda) | Compute + bandwidth are the dominant cost drivers |
| Multi-region active-active with Global Accelerator | Single-region or simple multi-region failover |
| Existing team deep in AWS tooling and certifications | Small team optimizing for simplicity and cost predictability |
| Compliance requirements needing AWS GovCloud | Standard SOC 2 / ISO 27001 is sufficient |
| Egress perpetually below 200 GB/month | Egress exceeds 500 GB/month or is growing linearly with users |
How to Act on This
If this article has you looking at your AWS invoice differently, here is the order of operations:
1. Tag your egress. Use AWS Cost Explorer with cost allocation tags to identify which service is generating the egress. It's rarely what you assume — the biggest contributor is often a sidecar you forgot about.
2. Model the alternative. Take the tagged egress number from your last three invoices, compute the average, and plug it into the formula above. If your compute is roughly comparable across providers but egress is $400+/month, the business case writes itself.
3. Identify the migration surface. Which services are tightly coupled to AWS primitives (SQS, DynamoDB, IAM Roles, Lambda)? Which are portable (Docker on EC2 → Docker on Droplet; RDS PostgreSQL → Managed Database)? Only migrate the portable surface first.
4. Run both in parallel for one billing cycle. The only way to validate the estimate is to run production-identical workloads on both providers for a full month and compare the actual invoices. Pricing calculators are an approximation; invoices are ground truth.
5. Redirect traffic gradually. DNS-weighted routing: 10% to the new provider for one week. If p99 latency, error rate, and cost metrics are clean, ramp to 50%, then 100%. Rollback is a DNS change.
๐งฐ Model your own numbers with our calculators: TB Egress to AWS Cost ยท Cloud Storage Comparison ยท CDN Cache Hit Ratio Impact ยท Concurrent Users to Bandwidth
Frequently Asked Questions
Why is AWS egress so expensive?
AWS charges for data leaving its network on a per-GB basis because egress represents real infrastructure cost โ peering, transit, and the global network fabric that connects AWS regions to the public internet. The pricing is tiered: the first 100 GB/month is free, then $0.09/GB for the next 10 TB, tapering to $0.05/GB above 150 TB. Unlike compute which is priced for resource reservation, egress is a consumption-based cost that grows linearly with usage. The business model makes AWS the default cloud because switching costs are real โ and egress fees are a significant part of those switching costs. For bandwidth-heavy workloads, this single line item can exceed compute costs by 2× or more.
Does CloudFront eliminate AWS egress charges?
No. CloudFront reduces but does not eliminate AWS egress costs. The origin-to-CloudFront leg is free (when using AWS origins), and CloudFront egress starts at $0.085/GB โ marginally cheaper than direct EC2/S3 egress at $0.09/GB. But four caveats apply: (1) CloudFront only helps cacheable content โ API responses, WebSocket streams, and dynamic data bypass the cache and still incur origin egress. (2) Cache invalidation, origin-shield configuration, and stale-content debugging add operational complexity. (3) Even CloudFront's best negotiated rate (~$0.02/GB) is still double DigitalOcean's $0.01/GB overage. (4) Origin fetches from cross-region AWS origins may incur additional regional data transfer charges. CDN offload is a cost-optimization tactic, not a cost-elimination strategy.
How much free bandwidth does DigitalOcean include?
DigitalOcean includes a generous free egress allowance that scales with the Droplet plan tier. The $6/month Basic Droplet includes 500 GB of free egress. The $24/month General Purpose Droplet includes 4 TB. The $48/month CPU-Optimized Droplet includes 11 TB โ enough for most small-to-medium production workloads. The allowance resets each billing cycle (monthly). Usage beyond the included allowance is charged at a flat $0.01/GB, which is 9× cheaper than AWS's standard $0.09/GB rate and roughly half of CloudFront's best negotiated rate. Most teams on DigitalOcean never pay an egress bill until they're well past 10 TB/month.
Is AWS still cheaper for low-traffic workloads?
For workloads with very low egress โ under 100 GB/month โ the cost difference is negligible since AWS's first 100 GB is free. Between 200โ500 GB/month, AWS egress costs $9โ$36 while DigitalOcean stays at $0 within its allowance. The crossover where AWS becomes difficult to justify on pure cost grounds is around 500 GB/month, when the egress surcharge exceeds 50% of typical compute costs. However, cost isn't everything: if your architecture depends heavily on AWS-native managed services (SQS, DynamoDB Streams, Lambda@Edge, VPC Transit Gateway), the integration surface and team expertise may warrant the egress premium. For portable, VM-heavy workloads, the math strongly favors providers with free egress allowances.
At what traffic level should you consider migrating?
A practical rule of thumb: when monthly egress consistently exceeds 500 GB, run a side-by-side cost projection. At 1 TB/month the AWS egress premium is ~$83. At 5 TB/month it reaches $441. At 10 TB/month it hits $891. For most teams, the 1โ5 TB range is the sweet spot where savings justify the migration engineering effort. The decision should also factor in: CDN offload potential for cacheable content, team AWS expertise and recertification cost, dependency on AWS-native services that lack direct equivalents, and compliance requirements. We recommend running production-identical workloads on both providers for one full billing cycle to compare real invoices โ pricing calculators approximate, but invoices are ground truth. DNS-weighted traffic shifting (10% โ 50% โ 100%) provides a safe rollout with instant rollback.
Methodology & Disclosure
AWS pricing is based on us-east-1 (N. Virginia) public on-demand rates as of June 2026. DigitalOcean pricing is based on publicly listed rates for NYC3. All compute instances are comparable in vCPU count, RAM, and network tier. No reserved-instance, committed-use, or volume-negotiated discounts are applied to either provider. Your actual costs may vary based on region, workload pattern, sustained-use discounts, and negotiated enterprise agreements.
Disclosure: jslet is an independent research project. We are not sponsored by any cloud provider. This analysis was produced using our own infrastructure cost tooling and publicly available pricing data.
๐ Copyright & Attribution
ยฉ 2026 jslet Research. This article is an original work independently researched and published on jslet (jslet.com). All rights reserved.
Sharing & Reprinting: You may share excerpts (up to 200 words) with a mandatory, do-follow link back to this article's canonical URL. Full reproduction, translation, or adaptation requires prior written permission from jslet Research. Commercial republication, AI/LLM training corpus ingestion, and paywalled syndication are expressly prohibited without a licensing agreement.
Preferred citation format:
"AWS Egress vs DigitalOcean: Real Cost Comparison (2026)" — jslet Research, June 2026.
https://www.jslet.com/aws-egress-vs-digitalocean
๐ก Enjoyed this? AWS egress pricing is a masterclass in opaque billing. The RSS feed delivers one similarly uncomfortable truth each week. No ads. No trackers. No cloud provider sponsors. RSS Feed โ | More options โ