The Real Cost of Cloud Storage: What S3 and Google Cloud Actually Charge
July 7, 2026
Cloud storage pricing looks simple on the surface—a few cents per gigabyte per month—until you actually try to understand what you’re paying for and why your bill keeps coming in higher than expected. The headline storage rate is just the starting point. Between request charges, retrieval fees, egress costs, replication overhead, and the complexity of different storage classes, the actual cost of using cloud object storage can be three to five times the storage rate alone.
This isn’t hidden—all of these charges are documented in the providers’ pricing pages. But the pricing pages are long, the terminology is specific, and the interactions between different cost components are not obvious until you’ve been surprised by a bill. Here’s a clear breakdown of what major cloud storage providers actually charge and where the surprises tend to come from.
The Storage Rate: Just the Beginning
Amazon S3 (Simple Storage Service) is the dominant cloud object storage service and the one most other providers are compared to. S3 storage in its standard tier in the US East (N. Virginia) region costs approximately $0.023 per GB per month in mid-2026. That’s roughly $23 per terabyte per month, or about $276 per year per terabyte.
Google Cloud Storage’s standard tier in the US multiregion costs approximately $0.026 per GB per month. Microsoft Azure Blob Storage’s hot tier runs around $0.018 per GB per month in the East US region. Cloudflare R2, a competing service designed specifically to eliminate egress fees, charges around $0.015 per GB per month.
These headline rates are for standard/hot storage—frequently accessed data. Each provider also offers multiple tiers for less frequently accessed data:
- S3 Standard-Infrequent Access: $0.0125/GB/month storage, but with per-retrieval charges and a minimum storage duration of 30 days
- S3 Glacier Instant Retrieval: $0.004/GB/month, millisecond retrieval, higher retrieval costs
- S3 Glacier Deep Archive: $0.00099/GB/month—under $1/TB/month—but retrieval takes hours and costs significantly per GB retrieved
- Google Nearline: $0.01/GB/month, minimum 30-day storage, retrieval costs per GB
- Google Coldline: $0.004/GB/month, minimum 90-day storage
- Google Archive: $0.0012/GB/month, minimum 365-day storage, highest retrieval cost
The tiering logic is designed to match storage cost to access frequency. If you genuinely won’t access data for months or years, deep archive is dramatically cheaper. If you access it regularly, the retrieval fees on infrequent-access tiers will often make them more expensive than standard tier for your actual usage pattern.

Request Charges: The Hidden Tax on Small Objects
Every time something reads from, writes to, or lists objects in cloud storage, you’re charged for the request. These charges seem small in isolation—typically fractions of a cent per thousand requests—but they add up significantly when you’re dealing with large numbers of small files or high-traffic applications.
S3 charges:
- PUT, COPY, POST, LIST requests: $0.005 per 1,000 requests
- GET, SELECT, and other requests: $0.0004 per 1,000 requests
For a static website serving 10 million page views per month, each page view triggering several GET requests to S3 for HTML, CSS, JS, and image files, request charges alone can reach hundreds of dollars per month—potentially exceeding the storage cost itself if the files are small and frequently requested.
This is one reason CDNs (content delivery networks) are often used in front of S3: caching files at the CDN edge reduces the number of origin S3 requests dramatically, turning millions of requests into a smaller number of cache-misses and periodic refreshes. The CDN cost is usually less than the request charges it eliminates.
For workloads involving millions of small files—log archives, sensor data, IoT telemetry—request charges can dominate the bill. Batching writes into fewer larger files, using multipart uploads efficiently, and minimizing unnecessary LIST operations are standard cost optimization techniques.
Egress Fees: The Big One
Data transfer out of cloud storage to the public internet is charged separately from storage, and it’s often where the biggest surprises occur. All major providers (Amazon, Google, Microsoft) charge for outbound data transfer, and these charges are substantial:
S3 data transfer out to the internet: approximately $0.09 per GB for the first 10 TB/month, decreasing with volume to $0.05 per GB above 150 TB/month.
Google Cloud Storage: $0.12/GB for outbound data to the internet from North America regions (lower for outbound from some regions).
Microsoft Azure: $0.087/GB for the first 10 TB/month outbound to the internet.
At $0.09/GB, a terabyte of outbound data transfer costs $92. If you’re serving video, large datasets, or high-traffic downloads directly from S3, egress fees quickly become the dominant cost. A media platform serving 100 TB per month of video content from S3 would pay $9,200/month in egress alone—far exceeding its storage costs.
This is why large-scale applications serving content to users almost never do so directly from S3. They use CloudFront (Amazon’s CDN), Google Cloud CDN, or third-party CDNs. Data transfer from S3 to CloudFront is free (within the same region); you pay CloudFront’s pricing instead, which is lower than S3 direct egress for high volumes, and more importantly, caching at the CDN edge dramatically reduces the total data transferred from origin storage.
Cloudflare R2’s most prominent differentiator is zero egress fees. If you’re using Cloudflare’s CDN to serve content, retrieving objects from R2 for delivery is free. This can make R2 dramatically cheaper than S3 for read-heavy workloads with significant outbound transfer, even if R2’s base storage rate is comparable to S3. The trade-off is a less mature ecosystem and fewer features.

Replication and Redundancy Costs
S3 Standard storage is automatically replicated across multiple availability zones within a region—this is included in the standard price. S3 Cross-Region Replication (CRR), which copies objects to a different geographic region, costs extra: you pay the storage cost in both regions, plus data transfer charges for the replication traffic.
Google Cloud Storage’s multi-regional and dual-region options—which automatically store copies in two or more geographically separated locations—cost significantly more than single-region storage. The multi-region US configuration costs $0.026/GB/month versus $0.020/GB/month for single-region US.
If you need geographic redundancy for disaster recovery, you’ll pay for it in one form or another—either higher storage tier prices or explicit replication charges.
Where Costs Compound: A Real-World Example
Consider a media company storing 50 TB of video content on S3 Standard and serving 20 TB per month directly from S3 to users:
- Storage: 50 TB × $0.023/GB/month = $1,150/month
- Egress (20 TB): 20 TB × $0.085/GB average = ~$1,740/month
- GET requests (say 5 million video loads): 5M × $0.0004/1000 = $2/month (negligible for video)
- Total: ~$2,892/month
If instead they use CloudFront in front of S3 with a 70% cache hit rate:
- Storage: $1,150/month (unchanged)
- S3 to CloudFront transfer: 6 TB (only misses) × $0 (free within region) = $0
- CloudFront to users: 20 TB × $0.0085/GB = $170/month (at 100 TB committed level)
- Total: ~$1,320/month
The CDN addition more than halves the total cost in this scenario while also improving performance through geographic distribution of cached content.
The Comparison That Actually Matters
Raw storage price comparisons between providers are somewhat misleading because the cost structure differs enough that the “cheapest” option depends heavily on your access patterns:
High-read, low-write, content delivery: Cloudflare R2 with zero egress fees is often cheapest if you’re already using Cloudflare’s CDN.
Mixed workloads, AWS ecosystem: S3 with CloudFront makes sense if you’re already on AWS—the integration is seamless and the combined economics are good.
Cold archive: S3 Glacier Deep Archive at under $1/TB/month has no serious competition for rarely-accessed data where retrieval speed is not critical. Google Archive is comparable.
Egress-heavy outside CDN context: Backblaze B2 charges $0.006/GB/month storage and $0.01/GB egress (much lower than AWS/GCP/Azure), making it significantly cheaper for applications with heavy outbound transfer that don’t need the full AWS ecosystem.
Monitoring and Optimization
Cost optimization in cloud storage is largely about access pattern analysis. AWS Cost Explorer and S3 Storage Lens provide analytics on where your spending is going—which buckets, which request types, which data transfer flows. S3 Intelligent-Tiering automatically moves objects between access tiers based on actual access patterns, which can reduce costs for objects with variable access frequency—though Intelligent-Tiering has its own per-object monitoring charge that makes it uneconomical for very small objects.
S3 Lifecycle policies—rules that automatically transition objects to cheaper storage classes or delete them after a specified time—are essential for managing costs in storage that accumulates over time. Log archives that are needed for compliance but rarely accessed should almost always have lifecycle rules transitioning them to Glacier after 30–90 days.
The key insight is that cloud storage pricing is not a simple per-GB rate—it’s a system of interacting charges that respond differently to different usage patterns. Understanding your access patterns, transfer volumes, and request rates is a prerequisite for choosing the right provider and storage class, and for estimating actual costs before you’re surprised by a bill.