JSTGTECH
← Back to blog

Service spotlight: when S3 Intelligent-Tiering beats hand-rolled lifecycle rules

3 min read

S3 lifecycle rules that move objects to Infrequent Access after 30 days and Glacier after 90 are a reasonable default when access patterns are predictable. They’re a bad fit when they’re not — and “predictable access pattern” is an assumption worth questioning for a lot of buckets that actually hold a mix of hot and cold data with no clean age-based line between them.

What it actually is

S3 Intelligent-Tiering is a storage class that automatically moves objects between access tiers based on observed access patterns instead of a fixed age threshold you define upfront. Objects start in the Frequent Access tier; after 30 consecutive days with no access, they move to Infrequent Access automatically; after 90 days with no access, optionally to Archive Instant Access; and, if you opt in to the deeper tiers, after 180 days to Archive Access and Deep Archive Access — with the key property that if an object in a colder tier is accessed again, it moves back to Frequent Access automatically, and there’s no retrieval fee for the Frequent, Infrequent, or Archive Instant Access tiers (retrieval from the two deepest archive tiers works like Glacier and does require a restore request with retrieval time).

This is the core difference from a manual lifecycle policy: a lifecycle rule moves objects on a **fixed schedule regardless of whether they’re still being accessed**, so an object accessed on day 89 still transitions to Glacier on day 90 if that’s what the rule says, and pulling it back out means eating a retrieval cost and (for Glacier-class tiers) a wait. Intelligent-Tiering only moves objects that have genuinely gone cold, and un-cools them automatically the moment access resumes.

Where it earns its keep

  • Unpredictable or mixed access patterns. A bucket holding user uploads where some files get accessed constantly and others never again, with no way to know in advance which is which per object, is exactly the case a fixed-age lifecycle rule handles badly and Intelligent-Tiering handles by design.
  • No operational tuning required. There’s no age threshold to pick, monitor, and revisit as access patterns change over the life of the bucket — Intelligent-Tiering adapts continuously, so a bucket’s usage pattern shifting six months from now doesn’t require anyone to notice and adjust a lifecycle rule.
  • No retrieval fees on tier transitions within the standard tiers. Pulling an infrequently-accessed object back out doesn’t carry the same per-GB retrieval charge a Standard-IA or Glacier object would, which matters for buckets where “infrequent” doesn’t mean “never.”

Where a plain lifecycle rule is still cheaper

Intelligent-Tiering charges a small per-object monthly monitoring and automation fee on top of storage costs, for every object over 128 KB (objects smaller than that are charged at Frequent Access rates and never monitored or transitioned, since the monitoring fee would exceed any storage savings). For a bucket with millions of small objects, that per-object fee adds up fast and can exceed what you’d pay just leaving everything in Standard, let alone what a manual lifecycle-to-IA rule would cost. And if access patterns genuinely are predictable — logs that are always hot for 30 days and never touched again, backups that are written once and only ever read during a disaster recovery event — a fixed lifecycle rule with no monitoring fee at all is strictly cheaper, because you already know the answer Intelligent-Tiering would spend money figuring out.

A practical tip

Run S3 Storage Lens or check the bucket’s access patterns via S3 Inventory before choosing between the two — if you can already describe the access pattern in one sentence (“logs go cold after 30 days, always”), write a lifecycle rule. If the honest answer is “it varies by object and I don’t know the split,” Intelligent-Tiering is worth the monitoring fee to stop guessing.

Related posts