AWSCost

AWS cost · EFS

EFS costs $0.30/GiB-month - 13x S3 Standard

EFS is what you use when something needs a file path rather than an object store - a legacy application, a content directory, a lift-and-shift nobody had time to rewrite. It is priced accordingly. At $0.30 per GiB-month it costs about thirteen times S3 Standard, and it bills stored bytes rather than access. Being unused makes it no cheaper.

800 GiB on Standard is $240.00/month in us-east-1, $288.00 in eu-central-1 - mounted or not, read or not. And unlike most idle resources you do not have to estimate the size: AWS reports the metered bytes on the describe call.

What each storage class costs

Per GiB-month, verified against the price list:

Storage classus-east-1eu-central-1
Standard$0.30$0.36
Infrequent Access$0.025$0.0266
Infrequent Access, elastic throughput$0.016$0.020
Archive$0.008$0.010
One Zone$0.16$0.192
One Zone-Infrequent Access$0.0133$0.0142

Two rows in there catch people out. Infrequent Access is priced differently depending on the throughput mode - $0.025 normally, $0.016 on elastic throughput - so the same tiering plan saves different amounts on two file systems that look identical. And One Zone is not a discount on Standard but a separate product at every tier, with no Archive class at all.

A file system with no mount target cannot be reached

EFS is reached over NFS through a mount target in a subnet, so a file system with zero mount targets is not merely unused - nothing in the VPC has a route to it, and no metric is needed to prove it.

For everything else, total the bytes moved. TotalIOBytes summed over two weeks answers whether anything reads or writes. A few MiB of metadata traffic is normal even on a file system nobody uses, so treat near-zero as a question rather than an answer.

How to find one

# every file system, its size by class, and whether anything can mount it
aws efs describe-file-systems \
  --query 'FileSystems[?LifeCycleState==`available`].{Id:FileSystemId,Mounts:NumberOfMountTargets,Bytes:SizeInBytes.Value,Standard:SizeInBytes.ValueInStandard,IA:SizeInBytes.ValueInIA,Archive:SizeInBytes.ValueInArchive,Mode:ThroughputMode}' \
  --output table

# bytes read or written over 14 days - a flat 0 means nothing touched it
aws cloudwatch get-metric-statistics \
  --namespace AWS/EFS --metric-name TotalIOBytes \
  --dimensions Name=FileSystemId,Value=fs-0123456789abcdef0 \
  --start-time 2026-07-29T00:00:00Z \
  --end-time   2026-08-12T00:00:00Z \
  --period 86400 --statistics Sum

The per-class split only appears on file systems with lifecycle management enabled. Without it, everything sits in Standard and the total is the standard figure - which is also the most expensive way to hold data you are not reading.

What the fix costs

Deleting a file system is irreversible and takes the data with it, so copy anything that might matter to S3 first - where the same bytes cost $0.023/GB-month instead of $0.30.

If the data has to stay where it is, a lifecycle policy moving it to Archive holds it at about 3% of the Standard rate. That is not free: reads from Archive carry a retrieval charge, so it is the right answer for data kept for compliance and the wrong one for data that is merely quiet this fortnight. Provisioned throughput, if configured, bills on top of all this.

Before rebuilding anything, compare it with S3 storage pricing. If the application could read objects instead of files, the same data is an order of magnitude cheaper.

Want to know whether you are paying for a file system nothing mounts? Connect your account read-only and see what it is wasting, in real dollars.

Connect your AWS

The role can only read - Get, Describe, List, nothing else. Read the exact permissions before you deploy it, and delete the stack whenever you want.

Frequently asked questions

How much does AWS EFS cost per GB?+

$0.30 per GiB-month on Standard in us-east-1, and $0.36 in eu-central-1. That is roughly 13 times S3 Standard at $0.023/GB-month. Infrequent Access drops to $0.025 and Archive to $0.008, but only for data that has been moved there by a lifecycle policy.

Do I pay for an EFS file system nothing mounts?+

Every byte, at the full rate for its storage class. EFS bills stored data, not access, so a file system left behind after a migration costs exactly what it cost when applications were reading from it. 800 GiB on Standard is $240/month in us-east-1.

How do I know how much data an EFS file system holds?+

The describe call reports it. Unlike most idle-resource questions this one needs no metrics and no estimate - DescribeFileSystems returns the metered size, split by storage class when lifecycle management is on. It is a measurement, not an inference.

Why does Infrequent Access have two different prices?+

The IA rate depends on the throughput mode of the file system. It is $0.025 per GiB-month in us-east-1 normally, and $0.016 on a file system using elastic throughput. Same storage class, same data, different bill - so check the mode before working out what tiering would save.

Is One Zone EFS just cheaper EFS?+

It is a separate product at every tier, priced around half of Standard, and it has no Archive tier at all. It also keeps one copy in a single Availability Zone, so a zone failure is a data loss event rather than an availability event. Cheaper is doing real work in that sentence.

Is it safe to delete an EFS file system?+

Deleting takes the data with it and there is no undo. Copy anything you might want to S3 first. If the data has to stay but nothing reads it, the Archive class holds it for about 3% of the Standard rate - at the cost of a retrieval charge the next time anything does read it.

Related cost breakdowns

More AWS cost breakdowns