100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
AWS

EFS Explained

Learn how Amazon EFS provides a fully managed, elastic NFS file system that multiple EC2 instances and containers can mount and share concurrently.

StorageIntermediate8 min readJul 10, 2026
Analogies

What EFS Solves That EBS Cannot

Amazon EFS (Elastic File System) is a fully managed NFSv4 file system that can be mounted concurrently by hundreds or thousands of EC2 instances, containers, or Lambda functions at the same time, across multiple Availability Zones. This is the key structural difference from EBS: an EBS volume attaches to one instance at a time (with the narrow exception of io2 Multi-Attach for clustered applications), while EFS is designed from the ground up for many-reader, many-writer shared access, presenting a standard POSIX filesystem interface that ordinary Linux tools and applications can use without any code changes.

🏏

Cricket analogy: It's like a shared team dressing room that every player on the squad can walk into and use simultaneously (EFS), versus a single locker assigned to just one player at a time (EBS) — both store gear, but only one supports true shared, concurrent access.

Performance Modes, Throughput Modes, and Storage Classes

EFS offers two performance modes chosen at creation time: General Purpose (the default, lowest per-operation latency, suitable for most workloads including web serving and CMS) and Max I/O (higher aggregate throughput and IOPS at the cost of slightly higher latency, for highly parallel workloads like big data analytics with thousands of concurrent clients). Throughput can be Bursting (scales with the amount of data stored, using a credit system), Elastic (automatically scales up and down instantly based on actual workload, ideal for spiky or unpredictable traffic), or Provisioned (a fixed throughput you set regardless of storage size). Like S3, EFS also offers Standard and Infrequent Access (EFS-IA) storage classes, with lifecycle management automatically moving files to EFS-IA after a configurable period of no access, cutting storage cost for files that go cold.

🏏

Cricket analogy: It's like choosing a stadium's general-admission gates sized for a typical match (General Purpose mode) versus reinforced turnstiles built for a World Cup final's massive simultaneous crowd (Max I/O), with ticket-scanning capacity that can burst for a sold-out game (Elastic throughput).

bash
# Create an EFS file system with Elastic throughput
aws efs create-file-system \
  --performance-mode generalPurpose \
  --throughput-mode elastic \
  --encrypted \
  --tags Key=Name,Value=shared-app-data

# Create a mount target in each AZ's subnet (repeat per AZ)
aws efs create-mount-target \
  --file-system-id fs-0abc12345def67890 \
  --subnet-id subnet-0a1b2c3d4e5f60789 \
  --security-groups sg-0123456789abcdef0

# Mount it on an EC2 instance using the EFS mount helper
sudo mount -t efs -o tls fs-0abc12345def67890:/ /mnt/shared-data

Common Use Cases

EFS shines wherever multiple compute resources need a consistent, shared view of the same files: a fleet of web servers behind a load balancer serving user-uploaded content, a container platform like ECS or EKS where pods on different nodes need a shared persistent volume, CI/CD build farms sharing a cache directory, or traditional enterprise applications (like SAP or content-management systems) being lifted-and-shifted from on-premises NFS servers. It also integrates natively with AWS Lambda, letting functions mount an EFS access point to read/write large files beyond the /tmp storage limit, and with AWS Backup for automated, centrally managed backups.

🏏

Cricket analogy: It's like a stadium's shared groundstaff equipment shed that every ground crew across multiple practice nets draws from at once, ensuring everyone works from the same roller and covers rather than each net having its own separate gear.

EFS mount targets are created per-subnet (typically one per AZ) and each gets its own IP address within that subnet. Mounting from multiple AZs gives you Multi-AZ availability, and the EFS mount helper (the 'efs-utils' package) handles encryption in transit via TLS and IAM authorization automatically.

EFS is priced per GB stored and, on Provisioned throughput, per MB/s provisioned — it is significantly more expensive per GB than EBS for pure single-instance storage. Don't reach for EFS by default for a single EC2 instance's data; it's justified specifically by the need for concurrent shared access across multiple compute resources.

  • EFS is a fully managed, elastic NFSv4 file system mountable by many instances/containers/Lambdas at once.
  • Unlike EBS, EFS supports concurrent multi-reader, multi-writer access with a standard POSIX interface.
  • Performance modes: General Purpose (lower latency, default) vs Max I/O (higher aggregate throughput for massively parallel workloads).
  • Throughput modes: Bursting (credit-based), Elastic (auto-scales instantly), and Provisioned (fixed rate).
  • EFS-IA storage class and lifecycle management automatically reduce cost for infrequently accessed files.
  • Common use cases: shared web content, container persistent volumes, CI/CD caches, and Lambda large-file access.
  • EFS costs more per GB than EBS and is justified specifically by the need for shared concurrent access.

Practice what you learned

Was this page helpful?

Topics covered

#AWS#AWSFundamentalsStudyNotes#CloudComputing#EFSExplained#EFS#Explained#Solves#EBS#StudyNotes#SkillVeris