Home › Decoder › EFS TimedStorage-ByteHrs - Standard storage, and the cheaper Infrequent Access

EFS TimedStorage-ByteHrs - Standard storage, and the cheaper Infrequent Access

On an Elastic File System line, TimedStorage-ByteHrs is Standard storage at $0.30 per GB-month in US East (N. Virginia); Infrequent Access is $0.025 per GB-month plus $0.01 per GB read or written.

In your bill the usage type reads: TimedStorage-ByteHrs, USE1-TimedStorage-ByteHrs

What it costs

ChargePriceUnit
EFS Standard storage (TimedStorage-ByteHrs)$0.30per GB-month
EFS Infrequent Access storage (IATimedStorage-ByteHrs)$0.025per GB-month
EFS Infrequent Access reads and writes (IADataAccess-Bytes)$0.01per GB

US East (N. Virginia); other regions differ. Checked 2026-11-04. Sources: AWS EFS pricing, AWS price list file, EFS offer, us-east-1.

Example with made-up numbers

1,000 GB on EFS Standard

1,000 GB x $0.30 = $300.00 per month

With 600 GB cold moved to IA: 400 x $0.30 + 600 x $0.025 = $120.00 + $15.00 = $135.00 per month, a saving of $165.00

If 50 GB of IA data is read in a month: 50 x $0.01 = $0.50 of access charges

Typical causes

No lifecycle policy

File systems are created with Standard only; moving cold files needs an explicit policy.

Old build artifacts and logs

Shared volumes collect files nobody reads again.

Home directories and backups of retired projects

Data that outlived its project stays at the Standard price.

Copies instead of cleanups

Migrations leave the old tree behind.

Find it in your bill

Have a CUR file queryable in Athena? Paste this and run it:

SELECT date_trunc('month', line_item_usage_start_date) AS month,
       line_item_product_code,
       line_item_usage_type,
       line_item_resource_id,
       SUM(line_item_usage_amount)  AS usage_amount,
       SUM(line_item_unblended_cost) AS cost
FROM your_cur_table
WHERE line_item_usage_type LIKE '%TimedStorage-ByteHrs'
GROUP BY 1, 2, 3, 4
ORDER BY month DESC, cost DESC
LIMIT 50;

Columns used: line_item_usage_start_date, line_item_product_code, line_item_usage_type, line_item_resource_id, line_item_usage_amount, line_item_unblended_cost.

No CUR file? Use Cost Explorer

  1. Open Billing and Cost Management, then Cost Explorer, and set the date range to the last 3 months with Monthly granularity.
  2. Set Group by to Usage type.
  3. In the Filters panel choose Usage type and tick the entries ending in TimedStorage-ByteHrs (the region prefix, such as USE1-, differs by region).
  4. Read the monthly cost per usage type. A line that grows faster than your traffic is the one to chase with the fix below.
  5. To see which resource drives it, query the CUR above; resource IDs appear only if your CUR was set up with resource IDs included, otherwise the resource column is empty.

Column names checked against: docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html, docs.aws.amazon.com/cur/latest/userguide/cur-ate-run.html.

The fix, step by step

Verify first

Check these before you change anything: the steps below are suggestions, and only you can see your own configuration.

  • Make sure the TimedStorage-ByteHrs lines in your file are EFS, not S3 Standard: S3 uses the same usage type name, so check the service column.
  • Estimate how much of the data is read in a typical month; frequently read data on IA costs $0.01 per GB each time it is read.
  • Check the EFS documentation for which files are eligible for lifecycle management (for example minimum file sizes) before estimating.
  • Apply the policy to one non-critical file system first and compare the next month's lines.

In the console

  1. EFS console > File systems; open each one and check Lifecycle management.
  2. Compare Size in Standard and Size in IA on the file system detail page.
  3. Edit Lifecycle management > Transition into IA > choose a period (for example 30 days) and set Transition out of IA to On first access if data is read again after going cold.
  4. Watch the IA data access charges (IADataAccess-Bytes) for a week and adjust.

With the CLI

aws efs describe-file-systems --query 'FileSystems[].[FileSystemId,Name,SizeInBytes.Value,SizeInBytes.ValueInIA]' --output table
aws efs describe-lifecycle-configuration --file-system-id fs-EXAMPLE
aws efs put-lifecycle-configuration --file-system-id fs-EXAMPLE --lifecycle-policies TransitionToIA=AFTER_30_DAYS TransitionToPrimaryStorageClass=AFTER_1_ACCESS

Rollback

Remove the lifecycle policy (put-lifecycle-configuration with no transition); existing IA files return to Standard on first access if that option is set, or can be copied back.

Find your EFS line in your own bill

Drop in your Cost Explorer or CUR CSV. Billtrim reads it in your browser, finds the EFS storage line and shows the monthly dollars.

See a sample result

Paste your export: how to export a Cost Explorer CSV or CUR file in two minutes.

Questions people ask

Does the same usage type appear for S3?

Yes. TimedStorage-ByteHrs is also the S3 Standard storage line; the service column tells them apart.

Does reading an IA file cost extra?

Yes, $0.01 per GB read or written, which is why very hot data should stay in Standard.

Related

Part of the guide: Reduce your AWS bill as a startup: a checklist for teams with no FinOps person