Glacier/Deep Archive cost optimization (reduce restores and requests)
Archive storage is optimized for rare reads. If you frequently restore, you may be better served by a warmer tier or by changing workflow patterns so you do fewer restores.
Start with the real lever: reduce restores
Glacier/Deep Archive is not "cheap storage" if you repeatedly rehydrate the same data. Cost optimization is mostly a workflow problem: avoid restores, reduce restored GB, and reduce the number of objects you retrieve.
1) Reduce restores and rehydration
- Cache restored datasets for a short time instead of re-restoring repeatedly.
- For frequent analytics, consider a warmer storage class or a separate analysis copy.
- Avoid restoring "just in case" - restore based on explicit demand.
Practical pattern: keep "hot last 30 days" in a warm tier, keep long retention in archive, and only restore when you have a concrete job that needs it.
2) Reduce small-object request volume
- Package small files into larger objects when it fits the access pattern.
- Batch retrieval and avoid per-file interactive restores.
- Prefer workflows that read sequentially from fewer objects.
Retrieval is billed on both GB and requests. The same 1 TB restored can be a few hundred objects or tens of millions of objects - and the request bill is very different.
3) Avoid minimum duration and early deletion penalties
- Be mindful of minimum storage duration rules when deleting/overwriting.
- Use lifecycle policies intentionally to avoid churn-driven early deletion.
- Keep short-lived data out of tiers with long minimum duration.
4) Choose a retrieval strategy (do not treat restores as "free")
- Batch work: do restores as a scheduled job, not ad-hoc clicks that restore the same data repeatedly.
- Restore scope: restore only the prefixes/partitions you need for the job, not the entire archive.
- Restore frequency: if you restore weekly, you may not be an archive workload anymore.
5) Quantify changes (before you implement)
Use S3 Glacier / Deep Archive Cost Calculator to estimate savings from fewer restores or fewer retrieval requests.
- Create a baseline scenario with current restores/month, restored GB/month, and retrieved objects/month.
- Create an optimized scenario where you reduce restore frequency, batch objects, and avoid early deletion.
- Use the calculator's Save scenario to compare the two without losing inputs.
Common pitfalls (what breaks cost savings)
- Archiving data that is actually read frequently (analytics, compliance audits, backfills).
- Many tiny objects: request costs and operational complexity explode.
- Transition churn: moving objects between tiers too often creates transition fees.
- Short-lived data in tiers with long minimum duration.
- Restoring the same dataset repeatedly because the workflow has no cache or persisted restored copy.
How to validate the optimization
- Track restores/month and restored GB/month before and after (at least one full billing period).
- Confirm the object-count effect: did you reduce retrieved objects/month, not just total GB?
- Validate SLA: restore completion time and downstream job success rate should not regress.