S3 storage classes: how they change cost (and when archive fees matter)
Storage classes are a common source of confusion. Cheaper per-GB tiers can introduce retrieval, transition, and minimum storage duration effects that matter for bursty access patterns.
Storage class decision inputs
- Access frequency: how often objects are read.
- Retrieval latency: acceptable minutes vs hours.
- Minimum duration: avoid early deletion fees.
When storage classes change total cost
Storage classes are a trade: you pay less per GB-month in exchange for constraints (access latency, retrieval and transition fees, and minimum storage duration). The correct choice depends on access pattern shape, not on "how cold it feels".
How to model storage classes safely
- Split your data into a few access tiers (hot / warm / archive).
- Estimate average GB-month stored in each tier.
- Estimate retrieval GB/month for colder tiers.
- Model transitions if you move objects between tiers regularly.
Decision checklist (pick the right tier)
- Restore SLA: do you need seconds, minutes, or hours to access cold data?
- Read frequency: monthly reads are different from weekly reads (archive can become expensive fast).
- Object count: many small objects increase request-like costs and operational overhead.
- Lifecycle churn: do you overwrite/delete frequently (minimum duration matters)?
- Transition volume: how much data you move between tiers each month.
When archive fees matter
- Large restores for backfills or audits.
- Frequent "read after long retention" workflows.
- Short-lived data placed into tiers with minimum duration.
Common pitfalls
- Ignoring minimum duration: deleting early can create effective waste.
- Ignoring retrieval: even small retrieval GB/month can matter at scale.
- Over-transitioning: moving objects too often creates transition fees.
- Forgetting transfer: delivery to users/CDNs can dominate storage cost.
- Assuming archive is best for analytics datasets that are rehydrated repeatedly.
Worked estimate template (copy/paste)
- Hot storage = GB-month (hot tier)
- Warm storage = GB-month (warm tier) + transitions/month (if applicable)
- Archive = GB-month (archive tier) + retrieval GB/month + retrieval requests/month
How to validate a tiering plan
- Run a 30-day access analysis: bytes retrieved and objects retrieved by prefix/age bucket.
- Simulate a baseline and a peak month (backfills/audits) for retrieval volume.
- After rollout, reconcile retrieval and transition usage types against the model.
Related tools
Sources
Related guides
EBS snapshot cost: how to estimate storage from change rate
A practical guide to estimate EBS snapshot storage: incremental snapshots, daily change rate, retention, copies, and a workflow to validate estimates against real data.
S3 Glacier Pricing & Cost Guide (storage, retrieval, Deep Archive)
Practical S3 Glacier cost model: storage GB-month, retrieval volume and requests, and minimum duration fees.
Aurora pricing (what to include): compute, storage, I/O, and backups
A practical checklist for estimating Aurora costs: instance hours (or ACUs), storage growth, I/O-heavy workloads, backups/retention, and the line items that commonly surprise budgets.
CloudFront logs cost: estimate storage, retention, and queries
How to estimate CloudFront log costs: log volume (GB/day), retention (GB-month), and downstream query/scan costs (Athena/SIEM). Includes practical cost-control levers.
DynamoDB cost optimization: reduce read/write and storage drivers
A practical playbook to reduce DynamoDB spend: fix access patterns, reduce item size, avoid scan-heavy queries, control index amplification, and validate changes safely.
DynamoDB pricing: what to model (reads, writes, storage, extras)
A practical DynamoDB pricing checklist: model reads and writes (RCU/WCU), storage (GB-month), and the common add-ons (backups, streams, global tables). Includes pitfalls and validation steps.
FAQ
Why can cheaper storage cost more?
Because cold tiers often add retrieval and transition fees, and may enforce minimum storage duration. If your data is short-lived or frequently retrieved, the effective cost can be higher.
What inputs should I estimate first?
Average GB-month stored per tier, retrieval GB/month for cold tiers, and how often objects transition between tiers.
When do archive fees matter most?
Large restores (audits/backfills), frequent cold reads, and short-lived objects placed into tiers with minimum duration.
How do I validate a tiering plan?
Run a 30-day analysis of access patterns (GETs and bytes retrieved) and simulate tiering with conservative retrieval assumptions.
Last updated: 2026-02-07