Cloud storage is one of the most deceptively complex line items in any cloud bill. The headline price per gigabyte is only a fraction of what you actually pay. Retrieval fees, egress charges, API operation costs, and replication overhead routinely push real-world spend two to five times higher than raw storage rates. This guide breaks down what AWS S3, Azure Blob Storage, and Google Cloud Storage actually cost in 2026 — and what you can do to reduce that number.
Most engineers and finance teams underestimate cloud storage costs because they anchor on a single number — the per-GB storage rate. In practice, cloud providers charge for at least five distinct cost dimensions:
Understanding all five dimensions is the only way to model what a workload will actually cost. The sections below cover each major provider in that framework.
This is part of a series of articles about Cloud Cost Management.
Pricing is for US regions, single-region redundancy, excluding requests, retrieval, and egress. All figures are monthly per-GB.
| Provider | Hot / Standard | Infrequent Access / Cool | Cold | Archive |
|---|---|---|---|---|
| AWS S3 | $0.023/GB (first 50 TB) | $0.0125/GB (S3 Standard-IA) | $0.004/GB (Glacier Instant) · $0.0036/GB (Flexible) | $0.00099/GB (Glacier Deep Archive) |
| Azure Blob | $0.018/GB (Hot, LRS) | $0.010/GB (Cool) | $0.0045/GB (Cold) | $0.00099/GB (Archive) |
| Google Cloud Storage | $0.020/GB (Standard, regional) | $0.010/GB (Nearline, regional) | $0.004/GB (Coldline) | $0.0024/GB (Archive, US/EU multi-region) |
| Oracle OCI | $0.0255/GB (Object Standard) | $0.015/GB (Infrequent Access) | — | $0.0026/GB (Archive) |
Sources: AWS S3, Azure Blob, Google Cloud Storage, Oracle OCI. Prices subject to change; always verify against official pricing pages for your region and redundancy tier.
Amazon S3 is the reference standard for object storage, and its pricing is more layered than most competitors. All prices below are for the US East (N. Virginia) region, which typically has the lowest S3 rates globally. Other regions run 5–20% higher.
| Storage Class | Price (US East) | Best For |
|---|---|---|
| S3 Standard (first 50 TB) | $0.023/GB/mo | Frequently accessed data |
| S3 Standard (50–500 TB) | $0.022/GB/mo | Volume tiering kicks in |
| S3 Standard (>500 TB) | $0.021/GB/mo | Large data lakes |
| S3 Intelligent-Tiering | $0.023/GB/mo + monitoring fee | Unpredictable access patterns |
| S3 Standard-IA | $0.0125/GB/mo | Monthly access, 30-day minimum |
| S3 One Zone-IA | $0.01/GB/mo | Recreatable data, single AZ |
| S3 Glacier Instant Retrieval | $0.004/GB/mo | Quarterly access, ms retrieval |
| S3 Glacier Flexible Retrieval | $0.0036/GB/mo | Annual access, minutes-to-hours |
| S3 Glacier Deep Archive | $0.00099/GB/mo | 7+ year retention, 12-hour retrieval |
A 100 TB S3 Standard workload looks like $2,304/month on paper. Add 500M GET requests ($200), 50M PUT requests ($250), and 5 TB egress ($450), and you're at $3,200. That's the real number FinOps has to budget against.
Azure's four-tier model (Hot, Cool, Cold, Archive) gives you more granularity than AWS on the warm end — Cold at $0.0045/GB splits the difference between IA and Glacier Instant — but redundancy drives the bill as much as the tier does.
| Access Tier (LRS) | Storage Cost | Retrieval | Min. Retention |
|---|---|---|---|
| Hot | $0.018/GB/mo | Free | None |
| Cool | $0.010/GB/mo | $0.01/GB | 30 days |
| Cold | $0.0045/GB/mo | $0.03/GB | 90 days |
| Archive | $0.00099/GB/mo | $0.022/GB | 180 days |
Redundancy multiplies fast. LRS (Locally Redundant Storage) is the baseline. ZRS is roughly 1.25× LRS. GRS (Geo-Redundant) is roughly 2× LRS. RA-GRS (Read-Access Geo-Redundant) is about 2.5× LRS. If your compliance team defaults every bucket to GRS, your Hot tier is effectively $0.036/GB — double the rate card.
Azure also applies a 128 KiB minimum billable object size to Cool, Cold, and Archive tiers. Store 1 million 4 KB log files in Cool and you're billed for 128 GB instead of 4 GB.
GCS is the most structurally simple of the big four. Four classes, priced by location type (regional, dual-region, multi-region). Google made two notable 2026 changes: Nearline multi-region pricing went up (from $0.010 to $0.015/GB), and Archive multi-region pricing went down (from $0.004 to $0.0024/GB in US/EU). Run the new numbers before you assume your old lifecycle policies still make sense.
| Storage Class (Regional, US) | Storage Cost | Retrieval Fee | Min. Retention |
|---|---|---|---|
| Standard | $0.020/GB/mo | None | None |
| Nearline | $0.010/GB/mo | $0.01/GB | 30 days |
| Coldline | $0.004/GB/mo | $0.02/GB | 90 days |
| Archive | $0.0012/GB/mo (regional) / $0.0024/GB (multi-region) | $0.05/GB | 365 days |
GCP's differentiator is that inter-region traffic inside the same multi-region is free for reads — a real savings for globally distributed apps. The catch: multi-region storage itself is priced higher than regional, and operation charges (Class A and Class B ops) can spike on list-heavy workloads.
Oracle's pitch is consistent global pricing — the same rate in Frankfurt, Ashburn, Tokyo, and Sao Paulo — and an aggressive egress allowance (10 TB/month free across all OCI services, then $0.0085/GB). That's roughly 10× cheaper than AWS egress at scale, which makes OCI genuinely attractive for egress-heavy workloads.
| Tier | Storage Cost | Notes |
|---|---|---|
| Object Storage (Standard) | $0.0255/GB/mo | Frequent access |
| Object Storage (Infrequent Access) | $0.015/GB/mo | 31-day minimum retention |
| Archive Storage | $0.0026/GB/mo | 90-day minimum, ~1-hour retrieval |
The tradeoff: OCI Standard is the most expensive hot tier of the big four. OCI wins on egress-heavy patterns (video delivery, data distribution, multi-cloud architectures) and loses on storage-heavy, low-egress patterns (backups, cold archives). Don't pick OCI on the storage rate. Pick it on the total cost including transfer.
Until 2025, AI storage was just "more S3 or GCS, billed the same way." That's no longer true. AWS added two AI-native storage classes that sit outside the object-storage pricing model, and they're reshaping how teams budget for RAG pipelines and data lakes.
Amazon S3 Vectors went GA in December 2025 and is now live in 17+ regions. It's purpose-built for vector embeddings used in retrieval-augmented generation (RAG) and semantic search — the workloads that have been eating Pinecone, Weaviate, and managed vector DB bills alive.
Storage is roughly 3× the rate of S3 Standard. That looks expensive — until you compare it to a managed vector database running on dedicated compute. AWS claims up to 90% cost reduction versus traditional vector DBs for upload, storage, and query combined. For RAG pipelines with billions of embeddings and moderate QPS, the math usually checks out.
S3 Tables is the first object store with native Apache Iceberg support — a storage class purpose-built for analytical queries against tabular data at object-store scale.
The 15% storage premium is fine. The surprise is the $0.05/GB processed charge for maintenance operations — compactions and snapshot expiration can run continuously on active tables. Teams have reported 20× bill increases when they forgot that managed Iceberg is still billed operationally. Model the maintenance cost before you migrate.
Model artifacts, training datasets, and inference logs share a common pattern: write-heavy, read-heavy in bursts (training runs), then cold for long stretches. The default of leaving everything in Standard is the single biggest AI storage mistake we see.
A better pattern: Standard during active training, Intelligent-Tiering or Nearline for the 90 days after, Glacier/Archive after that. Apply lifecycle policies at the prefix level so training checkpoints, raw datasets, and inference logs each follow their own decay curve. A 500 TB training bucket stored entirely in Standard is $11,500/month. The same bucket tiered correctly is closer to $2,800/month — and the accessed subset is still hot.
If the rate card were the whole bill, FinOps wouldn't exist. Here's what actually shows up on the invoice:
The best FinOps practices for storage don't start with "pick the cheapest tier." They start with allocation — knowing which team, product, and workload owns each byte.
1. Allocate before you optimize. If you can't attribute a 200 TB bucket to a team, you can't ask that team to clean it up. This is where Virtual Tags matter — you can reallocate cost ownership based on prefix, account, or workload pattern without waiting on engineering to re-tag resources. Allocation that updates in hours, not quarters.
2. Automate lifecycle policies. Every tier transition should be automatic. Manual "let's archive Q3 logs" projects never happen. Lifecycle rules at the bucket or prefix level move data through tiers as it ages.
3. Monitor access patterns, not just storage size. The 500 TB bucket growing at 20 TB/month isn't the problem. The 50 TB bucket where 80% of data hasn't been read in 6 months is. Access pattern visibility is how you decide what to tier.
4. Model egress and requests alongside storage. Total cost of ownership for storage is storage + requests + egress + retrieval. Pick providers and architectures based on all four.
5. Apply unit economics. What does it cost to store one customer's data? One year of logs? One trained model? FinOps maturity is measured in whether you can answer those questions on demand — and whether engineering, finance, and product all see the same number.
Related content:
Read our guide on What Is Cloud Computing
Storage is one of the easiest FinOps wins — if your cost data is clean, allocated, and visible. It's one of the hardest if it isn't.
Finout is built for FinOps teams managing multi-cloud storage at scale:
If your FinOps team is still stitching together dashboards from AWS Cost Explorer, Azure Cost Management, and a Google Sheet, you don't have a FinOps practice — you have a spreadsheet habit. Finout is the system of record for allocation, ownership, and unit economics in the agentic era. It's what the best FinOps teams run on.