Object Storage Pricing Guide: 5 Costs | DeployCue Skip to content
DeployCue
Cloud Storage

Object Storage Pricing Guide: The Five Costs That Matter

Jun 20, 2026

A complete guide to object storage pricing: $/GB-month vs egress vs request fees, S3-compatibility, free egress, durability, hot and cold tiers, and minimum storage durations.

The headline price of object storage - often $0.005 to $0.025 per GB-month - tells you almost nothing about what you will actually pay. The real bill is the sum of five separate meters, and which one dominates depends entirely on your access pattern. This guide breaks down each cost component, explains the gotchas (minimum durations, tier penalties, request fees), and shows how to estimate a total that reflects reality.

The five costs of object storage

Every object-storage bill is built from these components, even when a provider folds some of them into a single number:

  1. Storage - $/GB-month for bytes at rest, billed on average stored volume.
  2. Egress - $/GB for data leaving to the internet or another region.
  3. Requests - per-1,000 charges for operations like GET, PUT, LIST, DELETE.
  4. Tier transitions and retrieval - fees to move data to colder tiers and to read it back.
  5. Minimum duration and minimum object size - charges that apply even if you delete early.

Storage: the smallest number on the bill

Per-GB-month storage is the figure everyone quotes and the one that matters least for active workloads. At $0.02/GB-month, a terabyte costs about $20 a month to hold. That is rarely where the money goes. Compare base storage rates across providers on the object storage page, but treat it as the starting point, not the conclusion.

Egress: usually the line that hurts

For any workload that serves data outward - downloads, media, public datasets, backups restored frequently - egress often exceeds storage by a wide margin. Hyperscaler egress sits around $0.05 to $0.09 per GB after a free tier, while a growing set of S3-compatible providers offer free egress or a generous bundled allowance. The presence or absence of egress fees is frequently the deciding factor between two providers, so model it explicitly.

Free egress changes the whole calculation

If a provider charges nothing for egress but $0.006 more per GB-month for storage, an egress-heavy workload still comes out far ahead. Always compute the total, not the per-component price.

Request fees: the trap for small objects

Providers typically charge per 1,000 operations - for example, a fraction of a cent per 1,000 GETs and a higher rate per 1,000 PUTs and LISTs. This is invisible for big-file workloads but brutal for many-tiny-object patterns: thumbnails, sensor readings, per-event JSON. A million tiny GETs can cost more than the bytes themselves. Batch where you can, and favor fewer larger objects.

Durability and availability

Mainstream object storage advertises eleven nines of durability (99.999999999%), achieved by replicating or erasure-coding each object across multiple devices and often multiple facilities. Single-region or single-zone tiers cost less but trade some availability resilience. Durability and availability are different guarantees: durability is whether your bytes survive; availability is whether you can reach them right now. Cheaper one-zone tiers usually keep high durability but lower the availability SLA.

Hot, cool, and cold tiers

Most providers offer multiple access tiers that trade storage price against retrieval cost and latency:

TierStorage $/GB-moRetrievalLatencyBest for
Hot / standardHighestFree or cheapMillisecondsActive data, frequent reads
Cool / infrequentLowerPer-GB feeMillisecondsMonthly access, backups
Cold / archiveLowestHigh fee + delayMinutes to hoursCompliance, long-term archive

The catch is that colder tiers carry retrieval fees and minimum durations. If you put data in a cold tier and read it back next week, the retrieval charge plus the early-deletion penalty can exceed what hot storage would have cost. Tiers reward data you genuinely will not touch.

Minimum duration and minimum object size

Cool and cold tiers commonly impose a minimum storage duration - 30, 90, or 180 days - meaning you are billed for that full period even if you delete the object after a day. Some tiers also bill a minimum object size (for example, charging every object as at least 128 KB). For workloads that churn data rapidly or store many tiny files, these minimums can quietly inflate the bill. Read the fine print before choosing a cold tier for short-lived data.

S3 compatibility and lock-in

Most alternative providers expose the S3 API, which means your existing SDKs, CLI tools, and infrastructure code work with a changed endpoint and credentials. S3 compatibility is what makes the free-egress providers viable: migration is largely a configuration change rather than a rewrite. Verify that the specific operations your application uses (multipart upload, presigned URLs, lifecycle rules, object versioning) are actually supported, since compatibility is rarely 100 percent.

How to estimate your real monthly cost

  1. Estimate average stored GB and multiply by the storage rate.
  2. Estimate monthly egress GB and multiply by the egress rate (zero for free-egress providers).
  3. Estimate GET/PUT/LIST counts and apply the per-1,000 request rates.
  4. If using a cold tier, add expected retrieval GB times the retrieval fee, and check the minimum-duration penalty against your churn.
  5. Sum all four and compare the totals across providers - not the per-GB-month numbers in isolation.

Use the egress cost calculator for the transfer portion, and pull current per-component rates from the live object storage and egress comparison tables. If you also run block volumes alongside buckets, our block storage page covers that separate pricing model.

Takeaway

Object storage pricing is a five-meter system, and the cheapest $/GB-month provider is rarely the cheapest overall. For active, outward-serving workloads, egress and requests dominate; for true archives, tier penalties and minimum durations dominate. Model all five components against your actual access pattern, lean on S3 compatibility to keep your options open, and always validate against the live tables - the right provider depends on your numbers, not the headline rate.