The per-GB price is the smallest number on your bill
Amazon S3 Standard is about $0.023 per GB-month in US East. Roughly $23 to keep a terabyte sitting still for a month. That number is real, and it is also the only number most people read before they sign. Then the bill arrives bigger, because storage-at-rest is one of at least five metered line items. The other four charge you for what you do with the data, not for how much of it you hold: you pay to move it out, to make requests against it, to pull it back from a cold tier, and to replicate it for durability. None of them appear in the headline rate. All of them scale with usage rather than with capacity, which is exactly why a forecast built off the pricing page comes in low.
Line item 1: storage at rest
This is the honest part of the bill, and the one everyone budgets for. S3 Standard is tiered: about $0.023/GB for the first 50 TB a month, sliding to $0.022 and then $0.021 as volume grows. Azure Blob and Google Cloud Storage land in the same neighbourhood. If your usage were nothing but bytes resting on a disk, forecasting would be arithmetic — terabytes times rate, done.
Almost nobody uses storage that way. The instant data is accessed, tiered, or replicated, four more meters start turning, and those are the ones that push a bill to two or three times the figure you penciled in.
Line item 2: egress, or paying to read your own files
Egress is the line that catches people, because it bills you to take your data out. AWS charges internet data-out at roughly $0.09/GB for the first ~10 TB a month, easing to $0.085 and then $0.07 at higher volume. Putting data in is free. The asymmetry is the point: cheap to move in, expensive to leave. That is the economic shape of a lock-in.
Run the numbers. Storing a terabyte runs about $23 a month. Downloading that same terabyte once runs about $92. A workload that actually serves its own data — restored backups, streamed media, analytics jobs reading the raw files — can spend more on egress than on storage. Finance forecasts this line wrong every time, because the storage line is predictable and the egress line tracks behaviour nobody modelled.
European regulators noticed. The EU Data Act became applicable on 12 September 2025 and caps cloud-switching and egress charges at the provider's actual cost with no margin, with switching fees eliminated entirely by 12 January 2027. Google, Microsoft, and AWS have all waived or trimmed transfer fees in response. It is a genuine improvement. It is also narrow: it targets the egress you pay to leave a provider, not the day-to-day egress of serving your own files to your own users. That still meters.
Line item 3: API and request charges
Every operation against an object is a billable request. On S3 Standard, a PUT, COPY, POST, or LIST runs about $0.005 per 1,000; a GET is roughly $0.0004 per 1,000, so a million reads costs around $0.40. Fractions of a cent — until your access pattern is small-object-heavy.
A photo library. A logging pipeline writing thousands of tiny objects an hour. A static site with ten thousand assets. These generate millions of requests, and the request line can rival the storage line even when you have barely stored anything. Request pricing punishes granular access, which is the access pattern of most real applications. It is the line a cost calculator hides best and the one teams discover after the invoice.
Line item 4: retrieval from cold tiers
Cold storage is sold as the easy win. Park rarely-touched data in S3 Glacier and the rest rate drops toward $0.004/GB-month or lower. The catch: the cost moves, it does not vanish. Glacier Instant Retrieval adds a retrieval fee on the order of $0.03/GB read back, on top of a GET surcharge far above Standard — about $10 per million GETs against $0.40. The Flexible and Deep Archive tiers are cheaper to hold, slower to read, and dearer per restored GB, sometimes with hours of wait built in.
So the cold-tier discount is a bet that you will rarely read the data. Win the bet and you save real money. Lose it — one audit, one recovery, one compliance pull — and the retrieval fees can swallow months of the storage savings that justified the move. "As low as a tenth of a cent per GB" is true for bytes you never touch, and misleading for the ones you do.
Line item 5: replication for durability
One copy in one region is a single point of failure, so any serious setup replicates across regions. That replication is itself a metered transfer. AWS cross-region replication moves data at roughly $0.02/GB, and you then pay the per-GB storage rate again at the destination, plus a replication PUT per object. Want the latency guarantee of Replication Time Control? Add about $0.015/GB on top.
The durability you actually wanted — your data surviving a datacentre fire — shows up as three stacked charges: a second storage line, an inter-region transfer line, and a per-object request line. Each looks trivial alone. Together they are why a "redundant" architecture costs materially more than the single-region quote that won the deal.
Five meters, one cause
The pattern under all five is the same. You are billed for activity, not capacity, and activity is the one thing you cannot forecast cleanly twelve months out. Storage at rest behaves; the other four track how hard you lean on the data, which is precisely what a budget cannot predict. That is not a quirk of pricing — it is the model. A meter on every verb is how the per-GB rate stays advertisably low while the bill stays unpredictable.
A flat per-TB price collapses the stack by removing the meters. You pay for the terabytes and the verbs are free. Beebeeb storage scales up to 99 TB self-serve at €10.99 per extra terabyte, with a custom quote beyond that, and there is no separate egress meter, no per-request line, no cold-tier retrieval surcharge, and no replication transfer bolted on. Downloading your own files is not a billable event. The number on the page is the number on the bill.
That model is a deliberate constraint, and it costs us the cheapest-possible cold tier. We do not offer a sub-cent archive class, because a sub-cent archive class only stays sub-cent if the retrieval fees do the earning. For data you read back, a flat rate wins outright. For a true write-once archive you genuinely never touch, a hyperscaler's Deep Archive can be cheaper per byte — worth stating plainly so you can run your own numbers.
There is a second reason the line items shrink here. Your data is end-to-end encrypted before it leaves your device, so the server cannot read it. Files are sealed with AES-256-GCM under keys derived from a 12-word BIP39 phrase through Argon2id (256 MiB, 4 iterations), with X25519 for sharing and OPAQUE for login, and key material is zeroized after use. That changes what you are buying. With a hyperscaler you pay per verb for storage you have to trust them not to read; with a zero-knowledge provider, encryption is the floor rather than an add-on tier — on every plan, including the free one.
The per-GB number was never the price. It was the entry fee. The five meters are the price, and a flat per-TB rate is what it looks like to stop paying four of them.