Egress Costs: The Line Item Nobody Provisioned
You choose an instance size. You do not choose an egress bill — it arrives as a consequence of decisions made elsewhere.
Compute and storage are provisioned deliberately. Egress is not — it is the byproduct of how your system moves data, which means nobody decides on it and everybody is surprised by it.
Two very different pricing models
| Model | Providers | How it works |
|---|---|---|
| Included allowance | Hetzner, DigitalOcean, Linode, UpCloud, OVHcloud, Kamatera | A large transfer allowance per plan, overage billed modestly |
| Metered per gigabyte | AWS, Azure, Google Cloud, Oracle, IBM, Alibaba | Free tier, then per-GB with volume tiers |
The gap is large. A VPS plan may include 20 TB of transfer at no extra cost; the same 20 TB metered can exceed the compute cost several times over. For media-heavy workloads this single difference often dominates the total.
Note that Oracle Cloud includes a notably large monthly egress allowance relative to other hyperscalers, which is a genuine differentiator worth checking against your volume.
What is billed, and what is not
- Ingress — data into the cloud. Free almost everywhere.
- Egress to the internet — the main charge.
- Cross-region — billed, sometimes at close to internet rates.
- Cross-availability-zone — billed on several platforms, in both directions, which surprises people.
- Through a NAT gateway — a per-gigabyte processing charge on top of egress.
- Within one zone, private addresses — usually free.
- To the provider’s own services over a private endpoint — usually free or reduced.
Cross-zone charges are the quiet one. A multi-zone deployment with chatty services can generate significant internal transfer cost that appears nowhere in the architecture diagram.
Where the volume comes from
- Media served from the origin. Images and video that should be behind a CDN.
- Uncompressed API responses. Enabling compression can cut this by 70 per cent for JSON.
- Backups leaving the provider. Necessary, but worth measuring.
- Log shipping to an external platform. Volume grows quietly with traffic.
- Cross-region replication configured once and never revisited.
- Container images pulled repeatedly from an external registry by every node on every deploy.
- Scrapers and abusive traffic, which cost real money in bandwidth.
Reducing it
- Use a CDN. CDN egress is cheaper than origin egress on most platforms, and cached responses skip the origin entirely. This is the single biggest lever.
- Compress everything textual. Brotli or gzip on HTML, CSS, JavaScript and JSON.
- Serve modern image formats. WebP or AVIF at appropriate dimensions cuts image bytes dramatically.
- Use private endpoints for object storage and provider APIs so traffic avoids NAT and internet paths.
- Keep chatty services in one zone, with redundancy at the service level rather than constant cross-zone chatter.
- Cache container images in a registry within the same region.
- Rate limit abusive clients before they consume bandwidth.
Estimate before you commit
A rough calculation prevents most surprises:
- Average response size, including assets, multiplied by monthly page views.
- Add API traffic: average payload multiplied by request count.
- Add file downloads and media streaming, which usually dominate if present.
- Add backups and log shipping.
- Add 30 per cent for retries, bots and growth.
- Multiply by the provider’s per-gigabyte rate, or compare against the included allowance.
Do this for two candidate providers and the comparison often looks very different from the instance-price comparison.
The egress-out clause
Several major providers now waive egress charges for customers permanently leaving the platform, following regulatory pressure in Europe. It typically requires a formal request and applies to a full migration rather than ongoing transfer.
It is worth knowing about if you are planning a move, and it does not change the economics of day-to-day operation.
Common questions
Is a CDN cheaper than serving directly?
Usually, yes, on metered platforms — the per-gigabyte CDN rate is lower and cached hits avoid origin egress. On VPS providers with a generous included allowance the saving is smaller, but the latency benefit stands.
Why is my bill high when traffic is low?
Check cross-zone transfer and NAT gateway processing. Internal traffic between services can exceed user-facing traffic in a microservice architecture.
Does the free tier cover much?
Typically 100 GB per month across most hyperscalers, which covers a small site and nothing more. Oracle Cloud is a notable exception with a much larger allowance.
Do VPS allowances pool across servers?
On some providers yes, so unused allowance on one server offsets overage on another. Check the specific provider’s terms; it materially changes the maths for multi-server setups.