AI Unit Economics, FinOps & Infrastructure Cost ModelingPlaybook3 min readUpdated September 2026

Cutting Cloud Egress Fees Without Losing Multi-Cloud Visibility

Egress fees are the cloud cost that catches finance off guard most often, because the charge shows up on the bill for moving data, not for storing or computing it, and nobody budgets for a line item they didn't know existed. Once a team is running workloads across more than one cloud, or even across regions within one cloud, that charge can grow quietly.

The fix isn't a single tool. It's a handful of specific safeguards, plus enough visibility that finance can see the trend before the invoice does.

Vendors Covered in this Article

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Where the charge actually comes from

Cloud providers generally don't charge for data coming in, only for data leaving their network, whether that's to the public internet, to another cloud, or in some cases between regions of the same provider. A model serving inference results across regions, a data pipeline replicating between two clouds, or a backup job shipping data to a second provider for redundancy are the usual sources. The charge is per gigabyte moved, so it scales directly with traffic volume in a way that's easy to underestimate when a workload is first designed.

Safeguard one: keep compute and data in the same region

The single largest lever is architectural: put the compute that processes data in the same region, and ideally the same cloud, as the data it reads. Cross-region and cross-cloud calls that could be same-region are the most common source of avoidable egress charges, and they're usually the result of a service being added later without anyone revisiting where it should live relative to the data it needs.

Safeguard two: cache and compress before you transfer

A CDN or edge cache in front of anything served repeatedly cuts egress by serving repeat requests locally instead of pulling from origin every time. For data that does need to move, compressing it before transfer reduces the billed volume directly. Neither fix is exotic, but both require someone to actually implement them rather than assume the default configuration is already doing it.

Safeguard three: negotiate the contract, not just the architecture

Large cloud contracts increasingly have room to negotiate egress rates or caps, especially once your committed spend crosses a threshold that gets a vendor's attention. This is a conversation for whoever owns the cloud relationship, not something architecture alone can fix, and it's worth raising explicitly rather than assuming the published rate is fixed.

Safeguard four: tag traffic so finance can actually see it

None of the above works if finance can't see which team or workload is generating the transfer. Tag egress-heavy resources at the point of deployment and pull transfer volume into whatever cost dashboard finance already reviews, broken out by tag. Without that visibility, egress fees tend to get absorbed into a general "cloud costs" line and nobody ever traces the trend back to the specific workload causing it, which is exactly how the same avoidable charge repeats quarter after quarter.

Reviewing the trend, not just the total

A single month's egress number tells you less than the trend across several months next to traffic volume. If egress is growing faster than the traffic that should be driving it, something architectural has likely shifted, a new cross-region call, a removed cache, a new replication job, and it's worth tracing down while it's still a small number rather than after it's a material one.

Put the ratio of egress spend to total traffic on the same recurring review as your other infrastructure metrics, rather than reviewing egress as its own isolated line once a year. A ratio that holds steady quarter to quarter means the architecture is behaving as designed; one that creeps up is worth a conversation before it becomes a large number on its own.

Use these checks in each monthly review:

  • Compare egress growth against the traffic that should be driving it, rather than judging a single month's total on its own.
  • Look for a new cross-region call, a removed cache or a new replication job whenever egress grows faster than traffic.
  • Confirm compute runs in the same region, and ideally the same cloud, as the data it reads.
  • Verify egress heavy resources carry tags, so transfer volume appears by team or workload in the cost dashboard finance already reviews.
  • Check whether disaster recovery replication runs continuously when the backup only needs a scheduled copy.
  • Raise egress rates or caps in your next cloud contract conversation once committed spend is large enough to matter.

A common source that hides in a disaster recovery plan

One egress source teams routinely miss is their own disaster recovery or backup replication design. Copying a full dataset to a second cloud provider for redundancy is a reasonable choice, but if that replication runs continuously rather than on a schedule matched to how often the backup actually needs refreshing, it generates a steady egress charge that has nothing to do with product traffic and won't show up if you're only comparing egress against user activity.

Check whether your backup or replication jobs copy a full dataset every run or only the changes since the last one. An incremental approach that only transfers what changed cuts the egress volume substantially compared with a full copy each time, and it's a change that touches infrastructure configuration, not application code, so it rarely gets revisited once the original job is working.

The same applies to log shipping and analytics exports sent to a separate provider for warehousing. Those are legitimate uses of egress, but they belong in the same tagged, visible category as anything else moving data across a boundary, rather than sitting in a data pipeline nobody thinks to check when the cloud bill is reviewed.

Executive Capability Standard

What Good Looks Like

Good looks like egress spend that finance can trace to a specific team and workload, growing in line with traffic rather than faster than it.

Building The Capability (5-Stage Skill Ladder)

1. Learn:Understand which of your workloads actually cross a region or cloud boundary before assuming egress fees are unavoidable overhead.
2. Do Manually:Review the billing export for egress line items by hand each month and match the largest ones to a specific service.
3. Delegate:Have your infrastructure team own tagging egress-heavy resources at deployment time so finance doesn't need to trace it after the fact.
4. Automate:Set up a recurring cost report that breaks out egress by tag automatically instead of pulling the billing export manually each month.
5. Buy:Bring in a cloud cost management tool once you're running workloads across more than one cloud provider and manual tracing stops scaling.

How to Get Started

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

BILL

Egress charges are exactly the kind of line item that gets missed on a quick invoice review, so running the bill through an AP tool like BILL helps catch a spike before it's approved without a second look.

Visit BILL→

Frequently Asked Questions

Is egress always avoidable?

No. Some transfer, like serving customers in multiple geographic regions or maintaining redundant backups across clouds, is a deliberate and reasonable cost of doing business that way. The goal isn't zero egress, it's making sure every dollar of it is a choice you made on purpose rather than an accident of where a service happened to get deployed.

How do we know if our egress spend is high relative to our size?

Compare it against your own traffic and data volume trend over time rather than against another company's number, since architecture and customer geography vary enormously. A rising ratio of egress to traffic is the signal worth investigating, regardless of what the absolute number is.

Should egress fees be treated as cost of goods sold?

If the transfer is directly tied to serving customers, such as delivering inference results or serving product traffic, it typically belongs in cost of goods sold alongside your other infrastructure spend. Transfer tied to internal analytics or backups is more often an operating expense. Confirm the specific classification with your accountant.

About the numbers

This guide doesn't quote a sourced benchmark. Figures in it are estimates or general guidance, so check them against your own numbers.

Related Guides