TL
The short answer

On Cloud Storage the cost surprise is almost never the storage, it is the egress, the charge for moving data out of the bucket. Keeping data is cheap and getting steadily cheaper across the storage classes, but reading it out to the internet or across regions is billed by the gigabyte and rises with distance. The saving grace is that a large share of reads can be free: access from Google Cloud services in the same region as the bucket generally costs nothing, and so does ingress. The whole discipline is therefore architectural, keep the data and the things that read it in the same region so reads stay free, and treat internet and cross region egress as a cost to design down with caching, batching, and deliberate bucket placement.

Egress is the line that grows when nothing about your storage changed. Here is which paths are free, which are billed, and how to shape the bill.

Why is egress the line that surprises people?

Storage cost is predictable: you store a known volume in a known class and the monthly charge barely moves. Egress is reactive: it scales with how often and how far your data is read, which depends on traffic patterns, application design, and where things sit, none of which appear when you look at the bucket size. A dataset that has been cheap to store for a year can generate a large network bill the moment a new service in another region starts reading it, or a public download link goes viral. Because the charge is buried in network line items rather than under the bucket, it is easy to miss until it is large. Reading the billing export for the egress lines is how you see it.

Which paths are free and which are billed?

The rule of thumb is that distance costs money. The table maps the common read paths.

Read pathBilled?Buyer implication
Ingress (writing data in)Generally freeLoading data is not where the cost is
Read to a Google service in the same regionGenerally freeColocate compute and analytics with the bucket
Read to a different region or continentBilled, rising with distanceCross region access turns routine reads into cost
Read out to the public internetBilled by volumeCache or use a CDN for repeated downloads
Cross region replication trafficBilledMulti region buckets move data and bill for it

The practical consequence is that bucket location is a cost decision, not a default. A multi region bucket gives resilience but replicates and serves across regions with the egress that implies, while a regional bucket placed next to its readers keeps the busiest reads free. Choose location for the access pattern, not out of habit.

How do you design the egress bill down?

The first and largest lever is colocation: put buckets in the same region as the services and users that read them most, so the high volume reads fall on the free path. The second is caching: for data read repeatedly over the internet, a CDN or cache serves most requests without repeatedly egressing from the bucket. The third is transfer hygiene: batch and compress data that must cross a billed path so you move fewer bytes, and avoid chatty patterns that read the same object many times. The fourth is deliberate replication: only use multi region or dual region buckets where the resilience is worth the replication egress, and keep purely internal datasets regional. Finally, review the egress line items in the billing export so you know which paths actually dominate before you optimize.

The buyer test

Check where your busiest buckets sit relative to the services that read them. If a bucket in one region is read constantly by compute in another, you are paying cross region egress on traffic that colocation would make free.

A worked example of cutting egress

Worked example

A European SaaS company stored a large asset library in a multi region bucket and served it both to an analytics pipeline running in a single region and to customers over the internet. The billing export showed cross region egress to the pipeline and internet egress for downloads together forming most of the bucket network cost. We moved a regional copy next to the pipeline so its reads became free, put a CDN in front of customer downloads so repeated reads were cached, and kept multi region only for the small set of assets that genuinely needed it. Egress cost fell substantially with no change to what was stored, and the figures are verified against billing data and anonymized.

Where this fits in the GCP estate

Egress is part of the wider GCP network and data cost picture. See how replication adds traffic in cross region replication costs on GCP, the broader transfer map in data transfer costs on GCP explained, and the storage side in the economics of GCP data lakes. The full estate view lives in the GCP cost optimization guide.

Frequently asked questions

What is egress on Cloud Storage?
Egress is the charge for data read out of a Cloud Storage bucket to a destination that GCP bills for, such as the public internet or another region. Storing the data and reading it within the same region to many Google Cloud services is generally free, so the cost is about where the data goes, not how much you keep.
Which Cloud Storage egress is free and which is billed?
Reads to Google Cloud services in the same region as the bucket are generally free, as is ingress. Egress to the internet, egress to a different region or continent, and cross region replication traffic are billed, with the rate rising the further the data travels. A bucket placed far from the services that read it turns routine reads into cross region egress.
How do you reduce Cloud Storage egress cost?
Colocate buckets in the same region as the services and users that read them so reads stay free, cache or use a CDN for repeated internet reads, batch and compress transfers, choose bucket location and replication deliberately rather than defaulting to multi region, and review the billing export for the egress line items to see which paths dominate.

Get the buyer side network cost playbook

We map your Cloud Storage egress to the paths that drive it and redesign placement, caching, and replication so routine reads stop costing money. Our guarantee: we reduce your cloud spend or we reimburse our service fee. Pricing is either a Fixed Fee scoped up front or Gainshare, a share of verified savings with no retainer and no risk.

Independent · buyer-side

Put a defensible number on your cloud spend.

No provider in the room, no published price list. Tell us your footprint and we will scope the savings against your billing data — we reduce your cloud spend or we reimburse our service fee.

Buyer-side intelligence, monthly.

The Cloud Spend Navigator: what changed in cloud pricing, commitments, and FinOps — no vendor spin.