Skip to main content
Amazon S3 storage classes trade storage price, access price, minimum duration, resilience scope, and retrieval delay. The key distinction is whether an ordinary GET works immediately or an asynchronous restore is required. Updated October 9, 2026. A storage class changes an object’s cost and access contract; it does not change its key or create a different resource.

Choose by access pattern and recovery time

S3 Standard fits frequently accessed or unpredictable data. Standard-IA and One Zone-IA retain millisecond access but add retrieval charges and 30-day minimum storage durations. One Zone-IA stores data in one Availability Zone, so use it only for recreatable data or data protected elsewhere. S3 Intelligent-Tiering moves eligible objects among access tiers. Frequent, Infrequent, and Archive Instant Access tiers provide millisecond access; optional archive tiers require asynchronous retrieval. The Glacier classes are not identical. Glacier Instant Retrieval serves GET requests in milliseconds. Glacier Flexible Retrieval and Glacier Deep Archive require a restore first. Glacier Instant Retrieval is online; Flexible Retrieval and Deep Archive are asynchronous archive classes.

Lifecycle transitions are object operations

An S3 Lifecycle configuration can transition current or noncurrent versions, expire objects, remove expired delete markers, and abort incomplete multipart uploads. Rules filter by prefix, tags, and object size. Each transition is a request, and the destination class’s billing rules begin. Versioned buckets need separate actions for current and noncurrent versions. Old versions remain billable until another rule removes them. A lifecycle transition can reduce storage cost while creating transition, retrieval, metadata, and early-deletion charges.

A practical archive flow

Suppose monthly reports must remain available for seven years:
  1. Write each report and verify its checksum.
  2. Enable Versioning for overwrite recovery.
  3. Use Object Lock if retention must be immutable.
  4. Transition reports after active use to Flexible Retrieval or Deep Archive.
  5. Monitor outcomes with S3 Inventory or storage metrics.
  6. When a report is needed, issue RestoreObject with a retrieval tier.
  7. Poll metadata or notifications until restoration completes.
  8. Perform a normal GET before the temporary copy expires.
Lifecycle actions are asynchronous. Design automation around observed object state rather than assuming every object transitions at a precise time.

Minimum durations are billing floors

Minimum storage duration does not prevent deletion. You can delete or transition an object earlier, but AWS can charge the prorated remainder. Short-lived objects are therefore poor archive candidates. Minimum billable object size also matters. Standard-IA, One Zone-IA, and Glacier Instant Retrieval bill at least 128 KB per object. Archive classes have documented metadata overhead. Minimum storage duration is a billing commitment, not a retention lock.

Restore behavior is temporary

For Flexible Retrieval or Deep Archive, restoration does not move the original object. S3 creates a temporary accessible copy. HEAD Object reports restoration status and expiry. Flexible Retrieval supports Expedited, Standard, and Bulk retrieval where available. Deep Archive supports Standard and Bulk. AWS documents typical completion ranges, but applications should observe status instead of promising exact times. You pay for the archived object, applicable retrieval, and the temporary restored-copy storage. Reissuing a restore can extend availability. Restoring an archived object creates temporary access; it does not permanently change the storage class.

Make an online copy deliberately

If restored data must remain immediately accessible, wait for restoration and use CopyObject while selecting an online class. Decide whether to overwrite the same key or create a new one, especially when Versioning or Object Lock applies. S3 Intelligent-Tiering archive tiers behave differently. A restore moves the object back to the Frequent Access tier instead of creating the same temporary copy controlled by a number of days.

Test the recovery path

Record recovery-time requirements, annual retrieval volume, object sizes, retention, deletion schedules, and restore concurrency. Test with representative objects. Permissions must cover restoration, reads, and KMS key use where applicable. An archive policy is complete only after a measured restore and downstream delivery test succeeds.

Frequently asked questions

No. Submit a restore request, choose a supported retrieval tier, and wait for S3 to create a temporary accessible copy. After restoration completes, use a normal GET before the copy expires or copy it into an online class.
Not necessarily. If the object has not met its minimum storage duration, AWS can charge the prorated remainder. Versioned buckets can also retain noncurrent versions that continue accruing storage until separately expired or deleted.
Use Instant Retrieval when reads must begin in milliseconds. Use Flexible Retrieval when minutes-to-hours restoration is acceptable and lower archive storage economics justify an asynchronous step. Model request count, retrieval bytes, object sizes, and retention before choosing.

Sources and further reading

Last modified on October 8, 2026