Cloud Native Architecture

Reducing Cloud Egress Costs in Observability

Anais Dotis
August 2, 2026
 |  
7
min read
August 2, 2026
7
min read
Cloud Native Architecture

Telemetry volume grew 93% year over year on average, and one in five organizations saw growth above 150%, according to a Coleman Parkes survey of 450 enterprise leaders commissioned by Dynatrace. Every gigabyte of that data that leaves your VPC for a SaaS backend pays a toll, and usually more than one. The cloud egress costs observability pipelines generate stack across separate meters: internet egress, cross-AZ transfer, NAT gateway processing, and flow-log delivery, often on the same bytes. For a platform engineer the fix is architectural: process telemetry on the node that produces it, and pay transfer fees only on bytes that earn their trip.

What are cloud egress costs

Egress is data leaving a cloud provider's network or crossing a billable boundary inside it; ingress is data coming in. All three major providers make the trade asymmetric: inbound transfer is free, and providers meter outbound transfer per gigabyte. On AWS, internet egress starts at $0.09/GB for the first 10 TB per month, so a pipeline shipping 10 TB of telemetry monthly to an external endpoint pays roughly $900 before any other charge applies.

Why providers charge for outbound but not inbound data

The asymmetry is an economic design, and Dave McCrory named the underlying force in 2010: data gravity. Data accumulates mass, applications and services move toward it, and, in McCrory's words, "data if large enough can be virtually impossible to move." Free ingress builds that mass; egress fees raise the escape velocity. The UK Competition and Markets Authority investigates egress fees as switching barriers that distort competition, and IDC's egress fee analysis states plainly that "data egress fees are difficult for organizations to forecast."

How egress pricing works across AWS, Azure, and GCP

Platform teams choose different architectures because each traffic path carries a different rate. The table below shows first-tier rates for North American traffic as of July 2026, from the official AWS, Azure, and GCP pricing pages:

Traffic path AWS Azure GCP
Internet egress (first paid tier) $0.09/GB (first 10 TB/mo) $0.087/GB (next 10 TB after free tier) $0.12/GiB (Premium Tier, 1–1,024 GiB)
Free monthly allowance 100 GB across services 100 GB 1 GiB (Premium); 200 GiB (Standard Tier)
Inter-region $0.01/GB from us-east-1; $0.02/GB most regions $0.02/GB intra-continental (NA/EU); $0.05/GB inter-continental $0.02/GiB within NA; up to $0.14/GiB to South America
Cross-AZ $0.01/GB each direction $0.01/GB in each direction as of a 2025 change — verify before publishing $0.01/GiB

Three details matter in practice. AWS aggregates the internet tiers across EC2, S3, RDS, CloudWatch Logs, and other services, so volume discounts kick in on your total footprint. Azure eliminated its cross-AZ fee on May 21, 2024, which means multi-AZ collector topologies on Azure avoid an intra-region tax that identical AWS and GCP deployments still pay. And GCP prices in GiB (1 GiB = 1.0737 GB), which shifts break-even math at scale.

The hidden drivers in cloud-native architectures

Teams usually find the surprise when several meters apply to the same bytes. These paths generate egress charges that most teams discover only on the invoice:

How observability telemetry amplifies your egress bill

SaaS observability generates egress by design: the model requires raw telemetry to leave your infrastructure and transit to vendor-managed cloud. Datadog operates isolated sites (US1, US3, US5, EU1) that cannot share data, and its own documentation notes that cloud providers charge egress fees when agents ship over public IPs. The recommended fix, private networking, is site-specific: AWS PrivateLink covers US1 plus AP1/AP2 but not US3, US5, EU1, or Gov sites. New Relic explicitly charges nothing for egress on its side, but the customer pays inter-region transfer costs when using VPC peering or cross-region PrivateLink to reach it.

Per-GB math gets painful at telemetry scale. If your nodes sit in private subnets, every byte of that traffic also transits a NAT gateway at the combined rate above. Filtering before transmission works: Halodoc cut ingestion from 2 TB/day to roughly 550 GB/day by dropping HTTP request logs in FluentBit before they left the EKS cluster.

Key strategies to reduce egress costs

The list orders the levers below roughly by effort-to-impact for a Kubernetes environment, and every figure comes from a published benchmark or case study:

Monitoring egress without making it worse

The obvious instrument, VPC flow logs, is itself expensive:

Flow logs also stop at IP pairs. As a 2025 KubeCon talk put it, "cloud vendor reports lack the granularity of information to tell which pods or workloads are responsible for the elevated cross-zone traffic." eBPF closes that gap from inside the cluster. Polar Signals built Polar Signals Kubezonnet specifically because Cilium could not provide per-pod cross-zone reporting; it exposes a pod_cross_zone_network_traffic_bytes_total metric. Grafana Beyla exports an experimental beyla.network.inter.zone.bytes metric with src.zone and dst.zone attributes. Cilium/Hubble, despite 20% production adoption, has cross-AZ attribution only as an open feature request.

The same in-cluster principle applies to the full telemetry pipeline. groundcover's Flora sensor deploys as a DaemonSet, captures every network call at the Linux kernel level, and runs stream processing at the node before anything is stored. Storage lands in ClickHouse and VictoriaMetrics inside your own VPC, so the observability data itself crosses no billable boundary.

Attributing egress to services and teams

Attribution is where cloud-native billing falls down: providers offer only IP-to-IP breakdowns for data transfer costs, and pod IPs are ephemeral. Two tools have documented per-workload cost attribution. Coroot v1.4+ calculates egress costs per application on the three major providers and on-prem. Datadog Cloud Network Monitoring exposes source and destination AZ and region tags with kube_service aggregation.

The payoff from attribution is concrete. Datadog's own engineering team used its network monitoring to discover that roughly two-thirds of all data its applications fetched lived in a different availability zone; configuring rack-awareness saved an estimated $630,000 annually in cross-AZ transfer. For chargeback, join per-pod byte counts from an eBPF exporter with your provider's transfer rates and namespace-to-team ownership labels; the result is a per-microservice egress line item that flow logs alone cannot produce.

When private interconnects beat public internet

Dedicated links trade a fixed monthly port fee for a discounted per-GB rate, so the decision is a volume threshold. The table computes break-even points from official pricing against first-tier internet egress:

Link Monthly fixed cost Transfer-out rate Break-even volume
AWS Direct Connect 1 Gbps $219 $0.020/GB ~3.1 TB/mo
AWS Direct Connect 10 Gbps $1,642.50 $0.020/GB ~22.9 TB/mo
Azure ExpressRoute 1 Gbps Metered $436 $0.025/GB (Zone 1) ~6.9 TB/mo
Azure ExpressRoute 10 Gbps Metered $3,400 $0.025/GB ~53.6 TB/mo
GCP Partner Interconnect 1 Gbps VLAN $200 $0.020/GiB ~3.0 TiB/mo
GCP Dedicated 10 Gbps + VLAN $1,748 $0.020/GiB ~26.3 TiB/mo

Port fees are not the whole cost. AWS port prices exclude cross-connect, colocation, and local loop fees; a third-party analysis puts an all-in 1 Gbps non-redundant setup near $1,500/month, moving break-even to roughly 21 TB/month. Azure requires a Virtual Network Gateway for private peering at $0.19–$1.87/hr on top of the circuit, and GCP redundancy doubles connection costs. Below a few TB per month of steady transfer, stay on the public internet and spend the effort on volume reduction instead.

How egress costs fit the multi-cloud and vendor lock-in picture

Egress fees function as a portability tax, and the CMA's analysis draws the distinction that matters for observability: switching-cost distinction covers one-off switches that incur egress costs once and integrated multi-cloud architectures that incur recurring fees. A telemetry pipeline that spans providers pays internet rates on every crossing, every month, and single-cloud cost tooling that reads only one provider's billing data never sees the other side of the flow. The 2024 exit-fee waiver programs do not help here: Azure's waiverexplicitly excludes multi-cloud and hybrid customers who keep any Azure footprint, and AWS and Google both require moving all data off the platform. The EU Data Act mandates zero switching charges from January 12, 2027, but that covers exit events, not ongoing operational egress.

BYOC removes the observability portion of this exposure structurally. A common misconception: teams assume BYOC means self-hosting the entire product. It does not, unless you choose the fully on-premises or air-gapped modes.

In groundcover's Bring Your Own Cloud architecture:

  • The data plane runs inside your VPC. ClickHouse stores telemetry events, including logs and traces; VictoriaMetrics stores metrics.
  • groundcover manages the control plane and UI.
  • Telemetry never transits to a vendor's cloud, so there is no per-byte egress meter running on it.
  • Pricing is flat per node (around $35/node/month) rather than per GB, so cost is decoupled from volume in both directions: no cloud egress on the data and no ingestion penalty for keeping all of it.

To measure that architecture on your own cluster, the Free tier deploys through the groundcover Console in 20–30 minutes with no credit card.

What's next for egress cost management

Several mechanisms are moving from niche to standard practice, and each attacks a different meter:

FAQs

Providers disclose the pricing asymmetry as a business design rather than a pure network-cost artifact. Free ingress accumulates data mass, and McCrory's data gravity model describes the consequence: services migrate toward stored data, and moving it out requires paying the meter. The CMA treats egress fees as a competition-relevant switching barrier for exactly this reason.

For first-tier internet egress, yes: $0.087–$0.12 per GB/GiB in North America. The structural difference is cross-AZ traffic, which Azure made free in May 2024 while AWS and GCP still charge $0.01 per GB/GiB each direction. For multi-AZ collector topologies, that single policy difference removes an entire compounding layer.

Compounding usually drives the hidden cost. Telemetry from a private subnet pays NAT processing plus internet egress ($0.135/GB combined on AWS), rising to $0.155/GB if the NAT gateway sits in another AZ, and default kube-proxy routing sprays pod-to-pod traffic across zones at $0.02/GB round trip.

Cloud billing alone stops at IP-to-IP breakdowns. eBPF tools close the gap: Coroot v1.4+ computes cross-AZ and internet egress cost per application, Datadog CNM tags flows with source and destination AZ, and Kubezonnet exports per-pod cross-zone byte counters you can join with team ownership labels.

Tail sampling keeps errors and slow requests while discarding routine traffic: Pismo cut trace data costs near 80%, and one production agent/gateway pipeline retained about 18% of traces while extending retention from 7 to 30 days. The trick is deciding what to keep after seeing the full trace, not before.

Four changes need no re-architecture: gateway VPC endpoints for S3-bound traffic (zero processing charges), trafficDistribution: PreferSameZone for in-cluster traffic, switching collector compression to zstd, and dropping health-check spans, which one team measured at 40% of total span volume.

At list port prices, AWS Direct Connect 1 Gbps breaks even near 3.1 TB/month against $0.09/GB internet egress. Include cross-connect and colocation fees and the realistic threshold is closer to 21 TB/month. Below that, volume reduction beats dedicated circuits.

Only if the collected data ships out. Kubezonnet and Beyla export Prometheus metrics scraped in-cluster, and groundcover's Flora sensor processes telemetry at the node and stores it in ClickHouse and VictoriaMetrics inside your VPC, so kernel-level visibility into egress adds no billable transfer of its own.

Sign up for Updates

Keep up with all things cloud-native observability.

We care about data. Check out our privacy policy.

Observability
for what comes next.

Start in minutes. No migrations. No data leaving your infrastructure. No surprises on the bill.