The cost of object storage compared: S3, GCS, and Blob Storage
Object storage bills for stored GB, requests, and data retrieval or egress, with storage classes that trade retrieval cost for lower storage price. Here is how S3, Google Cloud Storage, and Azure Blob compare and how to pick the right tier.
Quick answer
Object storage bills three ways: storage per GB per month, requests (per thousand or per ten thousand operations), and data retrieval or egress. S3, Google Cloud Storage, and Azure Blob price in the same shape (standard storage around a couple of cents per GB per month in cheap regions), and all offer tiered storage classes that lower the per-GB price in exchange for higher retrieval cost and minimum storage durations. The right tier depends on access frequency: hot data in standard, infrequently accessed in a cool or infrequent-access tier, archival in a cold or archive tier.
Object storage is cheap per GB, which makes it easy to ignore until the bill grows. The subtlety is that storage is only one of three charges, requests and retrieval or egress often matter more, and the storage classes each provider offers can cut the per-GB price dramatically if you match them to how often data is actually accessed. Comparing providers means comparing all three charges and the class structure.
The three charges
| Charge | What it covers |
|---|---|
| Storage | Per GB per month, by storage class and region |
| Requests | PUT, GET, LIST and similar, per thousand or ten thousand |
| Retrieval / egress | Retrieving from colder tiers, plus data transfer out to the internet |
Storage is priced per GB per month and is cheapest in the standard hot tier in low-cost regions (around a couple of cents per GB). Requests bill per operation, so workloads with millions of small objects can see request charges rival storage. Retrieval and egress are where colder tiers bite: they store cheaply but charge more to read, and internet egress follows the same rates as data transfer out.
S3, GCS, and Blob side by side
| Provider | Hot tier | Cool / infrequent | Archive |
|---|---|---|---|
| AWS S3 | Standard | Standard-IA, One Zone-IA | Glacier, Glacier Deep Archive |
| Google Cloud Storage | Standard | Nearline, Coldline | Archive |
| Azure Blob | Hot | Cool | Cold, Archive |
All three follow the same pattern: a hot tier for frequently accessed data, one or more cool tiers for infrequent access (lower storage price, higher retrieval cost, and a minimum storage duration), and an archive tier for rarely accessed data (very cheap storage, higher retrieval cost and latency). Headline per-GB rates are similar across providers; the practical differences are in retrieval pricing, minimum durations, and how well lifecycle rules automate tiering.
Picking the right storage class
Match the class to access frequency. Hot data (served often) belongs in standard. Data accessed a few times a month belongs in a cool or infrequent-access tier, cheaper storage that pays off if you do not read it too much. Rarely-accessed data (backups, compliance archives) belongs in archive, cheapest storage but with retrieval cost and delay. Beware minimum storage durations: colder tiers charge as if data stayed for a minimum period (30, 90, or 180 days), so churning short-lived data through them can cost more than standard.
Keeping object storage cost low
Use lifecycle rules to move data to colder tiers automatically as it ages, delete data you no longer need (old versions, incomplete multipart uploads, and stale logs are common silent growth), consolidate small objects to cut request charges, and front frequently-read objects with a CDN so egress is cheaper and requests hit the cache. Watch cross-region and replication costs if you copy data between regions. Model your buckets and their class mix against the resource catalog so storage cost is intentional, not a slow drift.
FAQ
How is object storage cost calculated?
Three ways: storage per GB per month (by storage class and region), requests (PUT, GET, LIST, and similar, per thousand or ten thousand operations), and data retrieval or egress (reading from colder tiers plus data transfer out to the internet). Storage is cheapest in the hot tier, but requests and retrieval often matter more for workloads with many small objects or colder-tier data.
Is S3, GCS, or Blob Storage cheapest?
They price in the same shape, standard storage around a couple of cents per GB per month in cheap regions, with similar request and egress structures. There is no single cheapest; the practical differences are in retrieval pricing, minimum storage durations, and lifecycle automation. The bigger lever than provider choice is picking the right storage class for your access frequency.
What are object storage classes?
Tiers that trade storage price for retrieval cost. Hot tiers (S3 Standard, GCS Standard, Azure Hot) cost more to store but nothing extra to read, for frequently accessed data. Cool tiers (Standard-IA, Nearline, Cool) store cheaper but charge more to retrieve, for infrequent access. Archive tiers (Glacier, Coldline, Archive) are cheapest to store but slowest and costliest to retrieve, for rarely accessed data.
How do I choose the right storage class?
Match it to access frequency. Frequently served data goes in the hot standard tier. Data read a few times a month goes in a cool or infrequent-access tier. Rarely accessed backups and archives go in an archive tier. Watch minimum storage durations: colder tiers charge as if data stayed a minimum period (30 to 180 days), so churning short-lived data through them can cost more than standard.
How do I reduce object storage cost?
Use lifecycle rules to move aging data to colder tiers automatically, delete data you no longer need (old versions, incomplete multipart uploads, stale logs), consolidate small objects to cut request charges, front frequently-read objects with a CDN to lower egress, and watch cross-region and replication costs. Matching storage class to access frequency and cleaning up silent growth are the biggest levers.
Does C3X price object storage?
C3X prices infrastructure from your Terraform against a live catalog, so buckets and their configuration are visible before deploy. Exact storage cost depends on runtime data volume and access patterns, but pricing the buckets and their storage-class setup upfront helps you plan tiering and lifecycle rules before data accumulates, rather than discovering drift on the bill.
What to do next
Plan your storage tiers before data accumulates. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.