Egress fees: the hidden cost of cloud storage

An egress fee is a charge for each GB that leaves your cloud storage for the internet. Uploading files is usually free, but downloading them is billed by volume.

Updated 4 min read

Learning objectives

After reading this article you will be able to:

  • Understand what egress is and when it is billed
  • Estimate the egress cost of a project with simple math
  • Reduce or avoid egress fees when choosing storage
On this page

When you compare cloud storage, everyone looks at the price per GB stored. But storing is the cheap part. With many providers, the bill really grows when files are downloaded.

That charge is called an egress fee. It tends to go unnoticed until the first invoice of a download-heavy project: an image site, a video app, an API that serves files.

UploadingressfreeBucketegressInternetusersbilled per GBAnotherregionalso billedSame-regionservicefree
Uploading is free; what costs is the data going out, mainly to the internet. Within the same region, reads are often free.

What is egress, in practice?#

Egress is any data that leaves the provider's network. In object storage, that means every time someone downloads a file from your bucket: a visitor opening an image, an app fetching a PDF, another server pulling a dump.

The opposite, ingress, is data coming in. Amazon S3 and Azure state that inbound transfer from the internet is free. That makes the model asymmetric: uploading is free, downloading costs money, and leaving a provider costs money too, because pulling your data out is egress.

How is egress billed?#

The standard is a price per GB transferred, with tiers that vary by region and volume. The major providers follow a similar design:

  • Amazon S3: there is a free monthly allowance for outbound traffic to the internet, aggregated across all AWS services and regions. Above it, the price per GB depends on the region and drops in tiers as volume grows.
  • Azure: there is also a free monthly allowance, and the price per GB varies with the source region: traffic leaving South America usually costs much more than traffic leaving North America or Europe.

Prices are in US dollars and change over time, so check the official AWS and Azure pages before you run your own numbers.

Internal transfer has its own rules. On S3, it is free between buckets in the same region and billed between regions. Think of egress as a rule about where the data goes, not only how much.

What does it cost in an example?#

The numbers in this section are hypothetical, chosen to keep the math easy. They are not any provider's prices; real prices are on the official pages linked above.

Hypothetical example: picture a site that serves images and delivers 2 TB per month (2,000 GB) to visitors, on a provider that charges $0.10 per GB with a 100 GB free allowance:

(2000 GB - 100 GB) x $0.10 = $190 per month

Storing those same 2 TB would cost a fraction of that: at a hypothetical $0.02 per GB-month, $40. If the same content were downloaded ten times as often, the bill would reach $1,990 without a single stored byte changing.

The general formula is simple:

egress cost = (GB downloaded in the month - free allowance) x price per GB

To estimate, multiply the average file size by the number of downloads and add up your popular files. A 5 MB file downloaded 400,000 times is 2,000 GB.

What are the hidden costs?#

  • Traffic spikes. A viral post or a scraping bot multiplies downloads without warning. With per-GB billing, the surprise lands on the invoice.
  • Hotlinking. Another site embedding direct links to your images generates egress on your account.
  • Migration. Downloading everything to switch providers is egress on the whole volume.
  • Cross-region transfer. Replicating data to another region is billed too.
  • Stacked CDNs. A CDN cuts requests to storage, but the transfer from storage to the CDN and from the CDN to the user may be priced separately. Read each vendor's rules.

How do you reduce or avoid egress?#

  1. Put a CDN in front of public files, with long Cache-Control headers. The file leaves storage once and the rest comes from cache. See the difference between public and private files.
  2. Compress and resize. An 80 KB WebP in place of a 2 MB JPEG cuts egress by more than 90%.
  3. Keep compute and data in the same region, so internal reads are not billed as outbound traffic.
  4. Limit hotlinking and use temporary links (presigned URLs) for files that should not be public.
  5. Choose a provider with friendlier egress. Some charge less or nothing. Backblaze B2, for example, offers a free egress allowance proportional to your stored data and charges a low price per GB beyond it. Some S3-compatible storage services have no egress fee; check each one's policy.

When comparing, read the whole transfer policy: free allowance, price per GB, whether requests are billed, and whether a fair-use policy applies. For the basics, see what object storage is.

How to do this on Square Cloud#

Square Cloud Blob Storage is object storage with an S3-compatible API, and it charges no egress or ingress fee. In the example above, the traffic line simply disappears, because downloads carry no bandwidth charge. The limit that does exist is a different one: a per-plan rate limit on S3 requests.

The included storage quota runs from 5 GB to 250 GB depending on the plan, and the figures for each one are on the Blob and pricing pages. Public files are served by a global CDN at the edge.

Because the protocol is S3-compatible, you use the tools you already know, such as aws-cli, rclone and boto3. That also makes a future move easier: taking your data out does not turn into an egress charge.

See how it works on the Blob Storage page.

Blob Storage

S3-compatible object storage with no egress fees

Learn more

FAQs

What does egress mean in the cloud?

Egress is traffic leaving a cloud service toward the internet or another provider. In object storage, it is every file download by users, apps or other servers.

Is ingress (inbound data) charged too?

Usually not. Amazon S3 and Azure state that data transferred in from the internet is free. The charge falls on outbound traffic.

How do I avoid egress fees?

Pick storage with no egress fee or a generous free allowance, put a CDN in front of public files, use caching, and keep your app and data in the same region, where internal transfer is often free.

Do I pay egress when my app reads a file in the same region?

On Amazon S3, transfer between buckets in the same region and to AWS services in the same region is free. What is usually billed is traffic to the internet and between regions.

Next articleObject vs block vs file storageObject, block and file storage keep data in different ways. See how each one works, a side-by-side table and when to pick each for databases, files or media.

More in Storage

See all 15 articles