All cheat sheets
Storagecheat sheet

EFS Lifecycle Management

The checkbox almost nobody flips: automatic tiering that moves cold EFS files to Infrequent Access and Archive — completely invisible to applications, routinely cutting shared-filesystem bills by half or more.

Last reviewed: July 11, 2026

TL;DR: EFS tracks per-file last-access time and can automatically demote idle files to cheaper tiers — IA ($0.016/GB-month) and Archive ($0.008) versus Standard's ~$0.30 — then promote them back on first read. It's one console screen, needs zero application changes (the POSIX interface is identical whatever tier a file is on), and the default state — Standard everything, no policy — is the most expensive possible configuration.

The numbers

  • 10 TB filesystem, 70% aging into IA: $3,000/month → **$1,000/month** (~$24k/year) from one setting
  • Thresholds available: 7, 14, 30, 60, 90, 180, 365 days since last access; optional second step to Archive; optional promote-back-on-first-access
  • Works identically on EFS One Zone (baseline ~half price; same percentage savings)

Do this

  1. Enable it on your largest filesystem:

    aws efs put-lifecycle-configuration --file-system-id fs-0abc123 \
      --lifecycle-policies \
      '[{"TransitionToIA":"AFTER_30_DAYS"},
        {"TransitionToArchive":"AFTER_90_DAYS"},
        {"TransitionToPrimaryStorageClass":"AFTER_1_ACCESS"}]'
    

    30-day IA is the sensible default; add the Archive step only for data that stays cold for quarters (details on the Archive trade-offs).

  2. Watch PercentIAStorage in CloudWatch for two weeks. Climbing steadily = it's working and next month's bill drops. Staying low = your data is hotter than assumed; lengthen the threshold or accept there's little to capture.

  3. Match the threshold to the honest hot window: dev-branch archives do well at 60 days; CI artifacts at 7; ML training sets at 30; compliance data at 30→IA + 90→Archive.

  4. Revisit quarterly — access patterns drift, and the toggle that was right last year may be too aggressive or too shy now.

Gotchas

  • Whole-filesystem scanners defeat it. Backup tools, antivirus, search indexers that read every file nightly reset every access clock — nothing ever goes cold. Exclude those paths or run them less often.
  • Bouncy files lose money: data flipping hot/cold repeatedly racks up transition and access fees. Diagnose with a week of CloudWatch before an aggressive threshold.
  • Small files: IA's 128 KB minimum billable size punishes millions-of-tiny-files workloads.
  • First read of a cold file is slower — milliseconds for IA, but 3–5 hours for Archive; only the Archive step carries real latency risk.
  • Transitions lag the threshold by up to a day.

Skip this if

  • The filesystem is uniformly hot (continuously read application data) — there's nothing to demote.
  • You shouldn't be on EFS at all: no concurrent-mount or POSIX requirement means S3 (with Intelligent-Tiering) is typically 10–20× cheaper than even optimized EFS. Optimize the architecture before the tier.
  • The filesystem is tiny — enable it anyway on principle, but don't expect a visible line-item change.

Run this audit with your AI assistant

Paste this into Claude, ChatGPT, or any agent that can run the AWS CLI with read-only credentials. It audits your account for exactly the waste this sheet describes — and changes nothing.

You are auditing an AWS account's EFS lifecycle configuration. Use the
AWS CLI with READ-ONLY credentials. Do not create, modify, or delete
anything — report findings and recommended (unapplied) fixes only.

1. aws efs describe-file-systems: capture per filesystem SizeInBytes
   with tier breakdown (ValueInStandard / ValueInIA / ValueInArchive),
   creation date, throughput mode, One Zone vs Standard.
2. aws efs describe-lifecycle-configuration per filesystem. Classify:
   - NONE configured → headline finding; model a 30d→IA + 90d→Archive
     ladder.
   - IA only, no Archive step → second finding for filesystems with
     long-cold data.
   - No TransitionToPrimaryStorageClass → note re-read workloads will
     repay access fees per read.
3. Cost model: Standard ~$0.30/GB-mo, IA ~$0.016 (+~$0.01/GB reads),
   Archive ~$0.008 (+~$0.03/GB reads, 3–5 h latency). Estimate savings
   assuming 60–70% of bytes go cold on mature filesystems; halve
   baseline prices for One Zone filesystems.
4. Also ask (and note in the report) whether each filesystem needs EFS
   at all: no concurrent-mount/POSIX requirement → S3 is 10–20×
   cheaper than EFS Standard.

Report: per-filesystem table (size | tier mix | current policy |
recommended policy | est. $/mo now vs after), the exact
put-lifecycle-configuration commands for review — but do NOT apply
anything — and a follow-up note to watch CloudWatch PercentIAStorage
for two weeks after any change.
Works with any assistant that can run shell commands.

Want the guided version?

The EFS Lifecycle Management walkthrough covers this topic interactively — it asks about your setup, branches to what’s relevant, and quizzes you on the tricky parts. Free and anonymous.

Start the walkthrough