GCP Egress Costs Explained: Pricing Tiers, Hidden Charges and How to Cut Them
Google Cloud Platform charges for data leaving its network — egress — and the costs surprise many teams during their first billing cycle. Premium Tier egress starts at $0.12 per GiB for internet traffic from US regions, while Standard Tier offers $0.085 per GiB. Cross-zone traffic within the same region costs $0.01 per GiB each way, and many architectural patterns quietly turn modest microservices deployments into four-figure monthly egress bills.
This guide breaks down GCP's tiered egress pricing, explain commonly-missed internal transfer costs, and provides tactical approaches to reduce your egress spend without sacrificing reliability.
Last updated: September 2026
What Is GCP Egress and What Does It Cost?
Data egress on Google Cloud means network traffic leaving a GCP resource — whether that traffic goes to the internet, crosses zones within a region, moves between regions, or exits through a load balancer or Cloud Interconnect. Ingress (data entering GCP) is free; egress is metered and billed.
Premium Tier Internet Egress Pricing (US Regions)
Volume (monthly) | Premium Tier Rate | Standard Tier Rate |
|---|---|---|
0–1 GiB | Free | Free |
1–200 GiB | $0.12/GiB | Free |
200 GiB–1 TiB | $0.12/GiB | $0.085/GiB |
1–10 TiB | $0.11/GiB | $0.085/GiB |
10–150 TiB | $0.08/GiB | $0.065/GiB |
150+ TiB | $0.08/GiB | $0.045/GiB |
Premium Tier routes traffic over Google's private network to the destination's edge PoP, optimizing for latency and reliability. Standard Tier uses peering and the public internet, trading performance for cost. For workloads sending 10 TiB per month, Premium costs ~$1,137; Standard costs ~$853.
Rates vary by destination: North America and Europe start at $0.12/GiB, while destinations including Australia, Indonesia, Korea, and South America start at $0.19/GiB. Standard Tier pricing is based on source region and starts at $0.085/GiB after the 200 GiB free tier.
Free allowances differ significantly: Premium Tier includes only 1 GiB free per month; Standard Tier includes 200 GiB free per account. This 200x difference means teams serving modest static assets can avoid egress charges entirely by switching non-critical traffic to Standard Tier.
Internal GCP Egress — The Costs Nobody Budgets For
Most teams assume traffic inside GCP is free. It's not.
Intra-Zone Traffic
Traffic between resources in the same zone (e.g., us-central1-a to us-central1-a) incurs no charge. A three-tier application (web, app, database) deployed in a single zone generates zero internal egress costs.
Inter-Zone Traffic Within a Region
Traffic crossing zones in the same region — us-central1-a to us-central1-b — costs $0.01 per GiB each way. This applies to:
- Multi-zone GKE clusters with pods scheduling across zones
- Cross-zone database replicas for high availability
- Load balancer backends distributed across zones
Inter-Region Traffic
Traffic between North American regions costs $0.02/GiB (e.g., us-central1 to us-east1), while other inter-region rates vary by geography. Common triggers:
- Global database replication (Spanner, Cloud SQL with read replicas)
- Multi-region storage buckets with frequent cross-region reads
- Centralized logging pipelines pulling from regional workloads
Load Balancer, Cloud NAT, and Cloud Interconnect Egress
- Cloud Load Balancing: Egress from backends to the LB is billed at internal rates; LB-to-internet egress uses Premium or Standard Tier rates depending on the tier selected when creating the LB.
- Cloud NAT: Outbound internet traffic via NAT costs $0.045/GiB processed + applicable data transfer charges for the destination.
- Cloud Interconnect: Egress through Dedicated or Partner Interconnect is priced by geography, starting at $0.02/GiB in the US, Canada, and Europe and reaching higher rates in other regions.
A common pattern is that teams deploy a global load balancer to serve low-latency responses, not realizing that backends in three regions generate cross-region traffic to sync state, and the load balancer itself becomes an egress multiplier when serving assets that could have been cached.
Did Google Really Eliminate Egress Fees?
In January 2024, Google Cloud announced it would waive egress fees for customers migrating data off Google Cloud to another cloud provider or on-premises environment. This does not eliminate operational egress costs.
What the policy covers:
- Data transfer out of GCP as part of a permanent migration to AWS, Azure, or on-prem
- One-time export of stored data when closing a GCP project
- Transfer to competitor clouds for archival or regulatory compliance
What it does not cover:
- Normal application egress (serving users, API responses, CDN origin fetches)
- Cross-zone or cross-region traffic during active workloads
- Data leaving GCP for non-migration purposes (backups to third-party storage, ETL to external data warehouses)
The 2024 change helps customers avoid exit lock-in fees but does not reduce the ongoing egress costs of running production workloads.
How to Find What Is Driving Your Egress Bill
Knowing GCP charges for egress is one thing — knowing which workload, team, or bucket is actually generating the bill is a different problem
Reading Network Egress in Billing Exports
GCP bills network egress as SKUs under the Network service category in billing exports. Key SKUs to filter:
- Internet Egress (Premium Tier):
Network Internet Egress from Americas to... - Internet Egress (Standard Tier):
Network Internet Egress from Americas to... (Standard Tier) - Inter-Zone Egress:
Network Inter Zone Egress - Inter-Region Egress:
Network Inter Region Egress
Export your billing data to BigQuery and query by SKU, project, and region to identify high-egress workloads.
VPC Flow Logs for Traffic Attribution
VPC Flow Logs sample network traffic and capture flow metadata: source/destination IP, port, protocol, bytes transferred. Enable Flow Logs on high-traffic subnets, export logs to BigQuery, and join with GCE instance metadata to attribute egress to services, teams, and environments.
Flow Logs start at $0.25/GiB for the first 10 TiB of network telemetry logs. (5% sampling keeps costs negligible). Use them to answer:
- Which service generates the most cross-zone chatter?
- Is egress concentrated in specific hours (batch jobs) or constant (websockets)?
- Are there unexpected external destinations (unapproved third-party APIs)?
Attributing Egress to Services, Teams, and Environments
Use labels on Compute Engine instances, GKE clusters, and Cloud Storage buckets to tag resources by team, service, or cost center. Billing exports include resource labels; pivot egress costs by labels.team or labels.service to identify which workloads drive spend. For teams managing Kubernetes cost allocation, GKE cluster egress can be attributed down to the pod and namespace level using labels combined with VPC Flow Logs.
How to Reduce GCP Egress Costs
The strategies we recommend for reducing costs systematically include:
Cloud CDN for Cacheable Content
Cloud CDN caches responses at Google's global edge PoPs. Origin egress from your GCP region to the CDN is billed once at internal rates; subsequent cache hits serve from the edge with no origin egress.
Cost delta example (10 TB served per month, calculated from GCP CDN pricing and Network egress rates):
- Without CDN: 10 TiB Premium Tier egress to North America = ~$1,137/month
- With CDN (95% hit rate): ~10 TiB cache egress at $0.08/GiB + ~512 GiB cache fill at $0.01/GiB = ~$824/month before request and load-balancing charges
- Net savings: ~$313/month (~28% reduction)
Cloud CDN costs $0.02–$0.20/GiB for cache egress, depending on destination and monthly volume, significantly less than origin Premium Tier egress. Best for static assets, API responses with cache headers, and video/image delivery.
Co-Locate Compute and Storage in the Same Zone and Region
Cross-zone and cross-region data transfer costs add up for high-throughput workloads. Tactical fixes:
Where it comes from | The fix |
|---|---|
Multi-zone replicas kept in live sync — billed at $0.01/GiB each way, continuously, not just during failover | Run stateful workloads in a single zone and fail over via DNS to a standby zone (us-central1-a → us-east1-a) instead of keeping a second copy warm |
HA replication handled at the application layer | Use regional persistent disks instead — GCP's storage layer replicates underneath the disk, so it's never billed as workload egress |
Storage buckets in a different region than the compute reading them | Put the bucket in the same region as the compute accessing it — inter-region egress is charged on every read |
GKE pods scheduled across zones by default, turning chatty inter-service traffic into billed cross-zone egress | Use pod affinity or topology spread constraints to keep tightly-coupled services co-located |
Load balancer backends spread evenly across zones | Weight or restrict backends toward the zone closest to the bulk of your compute where latency allows |
Private Google Access and Private Connectivity
Private Google Access lets VMs without external IPs reach Google APIs (Cloud Storage, BigQuery, Pub/Sub) via internal routes. This avoids NAT egress fees and reduces exposure.
For hybrid cloud workloads, Cloud Interconnect (Dedicated or Partner) provides private connectivity to on-prem starting at $0.02/GiB egress, far cheaper than internet egress. At 50 TiB per month, Interconnect egress starts at ~$1,024 vs. $6,000+ via the internet. Teams operating in multi-cloud environments can apply similar strategies to minimize AWS data transfer costs between regions using VPC peering and PrivateLink.
Downgrade Non-Critical Traffic to Standard Tier
Standard Tier saves about 23–29% at these volume levels ($0.085/GiB vs. $0.11–$0.12/GiB) at the cost of higher latency and reduced SLA. Here are a few example use cases.
- Replication to off-site backups: Disaster recovery data syncing to a third-party archive doesn't need Premium Tier performance.
- ETL to external data warehouses: Nightly exports from BigQuery to Snowflake or Redshift tolerate Standard Tier latency.
- Logs to third-party SIEMs: Security event streams to Splunk or Datadog can run on Standard Tier.
Compression, Batching, and Protocol Optimization
Egress is billed by bytes transferred, so reducing bytes — not just where they go — is often the fastest win available.
Compression
- gzip/brotli on API responses and static assets: 70–85% reduction for typical JSON, turning 100 GB of uncompressed egress into 15–30 GB.
- Skip compression on already-compressed formats. Images (JPEG, already-optimized PNG), video, and pre-gzipped payloads gain little to nothing from another compression pass — you're spending CPU to shave bytes off data that's already dense. Compressing a JPEG API response is wasted work.
Batching
- Combine many small requests into fewer, larger ones to cut per-request overhead: 10 million single-record queries a day (100 bytes each) move 1 GB of data but pay connection/header overhead 10 million times; batching into 10,000 requests of 1,000 records moves the same 1 GB while paying that overhead 10,000 times instead.
- Watch the other end of the tradeoff. Batch size has a ceiling — past a certain point, larger batches add latency (waiting to fill the batch) or retry cost (one failed record can force a full-batch resend) that offsets the egress savings. Tune batch size against your latency budget, not just against bytes saved.
Protocol Optimization
- Binary serialization: gRPC with protobuf uses 40–60% less bandwidth than REST+JSON for equivalent payloads.
- Connection reuse: HTTP/2 multiplexing and keep-alive connections avoid repeated TCP/TLS handshake overhead on every request — significant for high-frequency internal service calls where the handshake can outweigh the payload itself.
- Push over poll: for real-time or near-real-time data, a WebSocket or server-sent-events connection held open avoids the repeated request/response overhead of clients polling an endpoint every few seconds.
Architecture Patterns That Avoid Cross-Region Traffic Entirely
Preventive design beats optimization after the fact:
- Regional stickiness: Route users to the nearest region and keep their data local. A user in Europe should hit
europe-west1, store data ineurope-west1buckets, and never trigger cross-region fetches. - Event-driven replication: Instead of synchronous cross-region database writes, use Pub/Sub to asynchronously replicate state. A write to
us-central1publishes an event;europe-west1subscribers update their regional read replica. Eventual consistency reduces the need for synchronous cross-region traffic. - Regional Cloud Functions: Deploy Cloud Functions per region rather than globally routing traffic to a single-region function.
These patterns require upfront architectural investment but eliminate ongoing egress costs at scale.
Egress as Part of the Bigger GCP Cost Picture
Egress optimization works best when it’s treated as part of the broader GCP cost picture, with the same visibility, attribution, and anomaly monitoring teams apply to compute and storage.
Network Spend Visibility Alongside Compute and Storage
Egress typically represents 10–15% of total GCP spend for data-intensive workloads (industry observation from FinOps practitioners) but gets less attention than compute or storage. Treat egress as a first-class cost dimension: set budgets per project, alert on anomalies (>20% month-over-month increase), and include egress in quarterly cost reviews. For comprehensive GCP cost monitoring across compute, storage, and network spend, centralized dashboards with per-resource tagging provide the visibility needed for proactive optimization.
Attribution of Egress to the Teams and Workloads Generating It
Chargeback models that ignore egress create misaligned incentives. A team building a real-time analytics dashboard that polls a central API 10 times per second generates egress costs borne by the API owner. Attribute egress to the consuming service (via VPC Flow Logs + tagging) to surface true per-service costs and drive optimization.
Anomaly Alerts When Transfer Volume Spikes
Set up Cloud Monitoring alerts on egress byte metrics (e.g., compute.googleapis.com/instance/network/sent_bytes_count). A sudden 3x spike in egress can signal problems like:
- A misconfigured cron job pulling full datasets instead of incremental changes
- A DDoS attack amplifying response traffic
- A developer accidentally enabling verbose logging to an external endpoint
Tracking and Optimizing GCP Egress Costs
For centralized GCP cost visibility and egress tracking alongside compute, storage, and commitment spend, nOps provides multi-cloud cost management with anomaly detection, budget alerts, and per-service attribution across AWS, Azure, and GCP.
- Unified visibility: Get all of your spending from GCP, AWS, Azure, AI, and SaaS in one place, with cost allocation by application, customer, team, or business unit to understand what is driving spend and where optimization will have the greatest impact.
- Commitment Management: Automatically maximize discounts and minimize commitment risk across eligible cloud infrastructure supporting your GCP workloads. Customers typically save ~20% by switching to nOps — and with results-based pricing, you pay only when you get better results.
We’ve talked to companies that can save millions on their cloud bills by switching to nOps from competitors. Book a free savings analysis to quantify exactly how much more you could save across the infrastructure supporting GCP and the rest of your cloud environment.
nOps manages $5B+ in cloud spend and was recently rated #1 in G2’s Cloud Cost Management category.
Demo
AI-Powered Cost Management Platform
Discover how much you can save in just 10 minutes!
Book a Demo
FAQ
Does GCP charge for egress?
Yes. GCP charges for data leaving its network (egress). Rates vary by destination, volume, and network tier. Premium Tier internet egress from US regions starts at $0.12/GiB. Ingress (data entering GCP) is free.
How much does GCP egress cost per GB?
Premium Tier: $0.12/GiB for 0–1 TB, $0.11/GiB for 1–10 TB, $0.08/GiB above 10 TB (US regions). Standard Tier: 200 GiB free per month, then $0.085/GiB up to 10 TiB, $0.065/GiB from 10–150 TiB, and $0.045/GiB above 150 TiB.
What is the difference between Premium Tier and Standard Tier networking?
Premium Tier routes traffic over Google's private network to the destination's edge, optimizing for latency and reliability. Standard Tier uses peering and the public internet, trading performance for 23–29% cost savings. Premium is default; Standard can be configured at the project or resource level.
Is data transfer between GCP zones free?
No. Traffic crossing zones within the same region (e.g., us-central1-a to us-central1-b) costs $0.01/GiB each way. Only intra-zone traffic (same zone) is free. Multi-zone GKE clusters and replicated databases incur these charges.
Is ingress free on Google Cloud?
Yes. Data entering GCP from the internet or other networks is free. GCP only charges for egress (data leaving GCP resources).
Did Google remove egress fees?
No. In January 2024, Google waived egress fees for customers permanently migrating data off Google Cloud to another provider. This does not eliminate operational egress costs for running workloads, serving users, or transferring data between GCP regions.
How do I reduce GCP egress costs?
1. Enable Cloud CDN for cacheable content
2. Co-locate storage and compute in the same zone
3. Use Standard Tier for non-latency-sensitive traffic
4. Compress payloads (gzip/brotli)
5. Batch API requests to reduce protocol overhead
6. Architect for regional stickiness (keep user data in the nearest region)
How do I find out what is driving my egress bill?
Export GCP billing data to BigQuery and filter by Networking service SKUs containing Egress. Enable VPC Flow Logs on high-traffic subnets and join with instance metadata to attribute egress to services, teams, and environments. Use resource labels to track costs by cost center or project.









