Amazon EFS Performance Modes
Key concepts
General Purpose vs Max I/O
Bursting vs Provisioned throughput
EFS Infrequent Access
Regional vs One Zone
Lifecycle management
Overview
Amazon Elastic File System (EFS) is a fully managed, scalable, elastic NFS file system for use with AWS cloud services and on-premises resources. Unlike EBS which attaches to a single EC2 instance, EFS can be mounted by thousands of EC2 instances simultaneously across multiple Availability Zones.
Understanding EFS performance modes, throughput modes, and storage classes is essential for designing high-performing, cost-effective architectures. The SAA-C03 exam tests your ability to choose the right EFS configuration based on workload requirements.
Key Principle
EFS provides two key configuration choices: Performance Mode (General Purpose vs Max I/O) and Throughput Mode (Elastic vs Provisioned vs Bursting). For most workloads, use General Purpose performance mode with Elastic throughput - this is the default and recommended configuration.
Know the differences between General Purpose and Max I/O modes, and when to use each throughput mode. Remember that One Zone storage classes can only use General Purpose performance mode. Expect 2-3 questions on EFS.
Architecture Diagram
The following diagram illustrates EFS architecture and its configuration options:

Key Concepts
Performance Modes
EFS offers two performance modes that determine the latency and IOPS characteristics of your file system.
General Purpose Mode
General Purpose Performance Mode
General Purpose is the default and recommended performance mode for most workloads.
Characteristics: | Metric | Value | |--------|-------| | Latency | Lowest per-operation latency | | Read Latency | ~250 microseconds (first-byte) | | Write Latency | ~2.7 milliseconds (first-byte) | | Max IOPS | Hundreds of thousands | | Recommendation | Use for all new file systems |
Best For:
- Web serving and content management
- Home directories
- Development environments
- General-purpose file sharing
- Latency-sensitive applications
Max I/O Mode
Max I/O Performance Mode
Max I/O is designed for highly parallelized workloads that can tolerate higher latencies.
Characteristics: | Metric | Value | |--------|-------| | Latency | Higher per-operation latency | | Max IOPS | 500,000+ | | Parallelization | Optimized for 10s-1000s of clients | | Trade-off | Higher latency for higher aggregate throughput |
Best For:
- Big data and analytics
- Media processing
- Genomics analysis
- Highly parallelized workloads
Important: AWS now recommends General Purpose for nearly all workloads due to improvements that support hundreds of thousands of IOPS.
Performance Mode Selection
Start with General Purpose and monitor the PercentIOLimit CloudWatch metric. Only consider Max I/O if this metric consistently reaches 100% for extended periods. One Zone storage classes only support General Purpose mode.
Performance Modes Comparison
| Feature | General Purpose | Max I/O |
|---|---|---|
| Default | Yes | No |
| Per-operation Latency | Lowest | Higher |
| Max IOPS | Hundreds of thousands | 500,000+ |
| Best For | Most workloads | Highly parallelized only |
| One Zone Support | Yes | No |
| Recommendation | Use this | Only if needed |
Throughput Modes
EFS offers three throughput modes that determine how throughput scales with your file system.
Elastic Throughput (Default)
Elastic Throughput
Elastic Throughput is the default and recommended mode for most workloads. Throughput automatically scales based on workload activity.
Characteristics: | Metric | Value | |--------|-------| | Max Read Throughput | 3 GiB/s | | Max Write Throughput | 1 GiB/s | | Combined Max (EFS client v2.0+) | 1,500 MiB/s | | Combined Max (other clients) | 500 MiB/s | | Pricing | Pay only for throughput used |
Best For:
- Spiky or unpredictable workloads
- Workloads with variable throughput needs
- When you can't forecast performance requirements
Restriction: Only available with General Purpose performance mode.
Provisioned Throughput
Provisioned Throughput
Provisioned Throughput allows you to specify the throughput your file system needs, independent of storage size.
Characteristics: | Metric | Value | |--------|-------| | Configurable Range | 1-3,072 MiB/s | | Pricing | ~$6 per MiB/s-month (above baseline) | | Change Limitation | Must wait 24 hours after increase |
Best For:
- Predictable, sustained high throughput needs
- Workloads using >5% of peak throughput capacity consistently
- When you know exact throughput requirements
Use Case Example: A file system with 100 GiB of Standard storage gets 5 MiB/s baseline. If you need 100 MiB/s, provision 95 MiB/s additional throughput.
Bursting Throughput
Bursting Throughput
Bursting Throughput scales throughput with the amount of storage, with ability to burst for up to 12 hours per day.
Characteristics: | Metric | Value | |--------|-------| | Baseline Throughput | 50 KiB/s per GiB of storage | | Read Throughput | 150 KiB/s per GiB (3:1 metering) | | Burst Duration | Up to 12 hours/day | | Burst Credits | Accumulate when below baseline |
Formula:
- 1 TiB storage = 50 MiB/s baseline, 100 MiB/s burst
- Read operations metered at 1:3 ratio
Best For:
- Variable workloads with occasional spikes
- Cost-sensitive workloads with modest throughput needs
- Workloads with predictable burst patterns
Throughput Modes Comparison
| Feature | Elastic | Provisioned | Bursting |
|---|---|---|---|
| Default | Yes (new) | No | No |
| Throughput Scaling | Automatic | Fixed | Based on storage |
| Max Throughput | 3 GiB/s read | 3,072 MiB/s | 100 MiB/s per TiB |
| Pricing Model | Pay per use | Pay for provisioned | Included with storage |
| Best For | Unpredictable workloads | Steady high throughput | Variable with bursts |
| Performance Mode | General Purpose only | Any | Any |
Storage Classes
EFS offers multiple storage classes to optimize costs based on access patterns.

Regional Storage Classes
EFS Standard
EFS Standard is built on SSD storage for sub-millisecond latency, designed for frequently accessed data.
Characteristics:
- Multi-AZ redundancy (3+ AZs)
- 99.999999999% (11 nines) durability
- Sub-millisecond latency
- Highest availability
- Cost: ~$0.30/GB-month
EFS Infrequent Access (IA)
EFS Standard-IA is cost-optimized for data accessed only a few times per quarter.
Characteristics:
- Up to 95% lower cost than Standard
- Multi-AZ redundancy
- Higher latency than Standard
- Per-access charges apply
- Cost: ~$0.016/GB-month + access fees
EFS Archive
EFS Archive is the lowest-cost storage class for data accessed a few times per year or less.
Characteristics:
- Up to 50% lower cost than IA
- Multi-AZ redundancy
- Highest latency
- Per-access charges apply
- Cost: ~$0.008/GB-month + access fees
- Only available with Elastic throughput
One Zone Storage Classes
EFS One Zone
EFS One Zone stores data in a single Availability Zone for 47% cost savings.
Characteristics:
- Single AZ storage (data loss risk if AZ fails)
- 99.999999999% durability (within the AZ)
- Lower availability than Regional
- Cost: ~$0.16/GB-month
- Only supports General Purpose performance mode
One Zone-IA variant provides additional savings for infrequently accessed data.
EFS Storage Classes Comparison
| Storage Class | Cost (GB/mo) | Durability | Availability | Best For |
|---|---|---|---|---|
| EFS Standard | $0.30 | 11 nines (multi-AZ) | Highest | Frequently accessed data |
| EFS Standard-IA | $0.016 | 11 nines (multi-AZ) | High | Quarterly access |
| EFS Archive | $0.008 | 11 nines (multi-AZ) | High | Yearly access or less |
| One Zone | $0.16 | 11 nines (single AZ) | Lower | Cost-sensitive, reproducible |
| One Zone-IA | $0.0133 | 11 nines (single AZ) | Lower | Infrequent + cost-sensitive |
Lifecycle Management
EFS Lifecycle Management
Lifecycle Management automatically moves files between storage classes based on access patterns.
Transition Policies:
- Transition to IA: 7, 14, 30, 60, or 90 days since last access
- Transition to Archive: 90, 180, 270, or 365 days since last access
- Default: 30 days to IA
EFS Intelligent-Tiering:
- Automatically transitions files to IA when not accessed
- Automatically moves files back to Standard when accessed again
- No retrieval delays - data available immediately
Important Notes:
- File metadata always stored in Standard (for consistent performance)
- Access charges apply when reading from IA/Archive
- Lifecycle policies can be changed without downtime
# Create file system with lifecycle policy
aws efs create-file-system \
--performance-mode generalPurpose \
--throughput-mode elastic \
--lifecycle-policies \
TransitionToIA=AFTER_30_DAYS \
TransitionToArchive=AFTER_90_DAYS \
TransitionToPrimaryStorageClass=AFTER_1_ACCESS
# Update lifecycle policy on existing file system
aws efs put-lifecycle-configuration \
--file-system-id fs-12345678 \
--lifecycle-policies \
TransitionToIA=AFTER_14_DAYS \
TransitionToPrimaryStorageClass=AFTER_1_ACCESSHow It Works
EFS vs EBS vs S3 Comparison
AWS Storage Services Comparison
| Feature | EFS | EBS | S3 |
|---|---|---|---|
| Type | File storage (NFS) | Block storage | Object storage |
| Access | Multiple EC2 instances | Single EC2 instance* | Any (via API) |
| Protocol | NFSv4 | Block device | HTTP/HTTPS |
| Scaling | Automatic (petabytes) | Manual (16 TiB max) | Automatic (unlimited) |
| Availability | Multi-AZ or One Zone | Single AZ | Multi-AZ (regional) |
| Use Case | Shared file systems | Boot volumes, databases | Static content, backups |
*Note: EBS Multi-Attach allows io2 volumes to attach to multiple instances in same AZ.
Throughput Calculation
# Bursting Throughput Baseline
Baseline = Storage (GiB) × 50 KiB/s
Example: 1 TiB (1024 GiB) = 1024 × 50 KiB/s = 50 MiB/s baseline
# Read operations metered at 1:3 ratio
Read Throughput = Baseline × 3
Example: 50 MiB/s baseline = 150 MiB/s read throughput
# Burst Credits
Accumulate when throughput < baseline
Deplete when throughput > baseline
Max burst duration: ~12 hours/day
# Provisioned Throughput
Cost = (Provisioned - Baseline) × $6/MiB/s-month
Example: Need 100 MiB/s with 1 TiB storage
Baseline = 50 MiB/s (free)
Additional = 50 MiB/s × $6 = $300/monthUse Cases
Use Case 1: Web Application with Shared Content
Scenario: Multiple web servers need to share uploaded files and static content.
Solution:
- EFS Standard with General Purpose mode
- Elastic throughput for automatic scaling
- Mount across multiple AZs for high availability
- Enable lifecycle policy (30 days to IA) for old uploads
Use Case 2: Big Data Analytics Cluster
Scenario: Hadoop/Spark cluster with 100+ nodes processing large datasets.
Solution:
- EFS Standard (consider Max I/O if PercentIOLimit hits 100%)
- Provisioned throughput for predictable high throughput
- Monitor CloudWatch metrics for optimization
Use Case 3: Development Home Directories
Scenario: Shared home directories for development team, cost-sensitive.
Solution:
- EFS One Zone for 47% cost savings
- General Purpose mode (required for One Zone)
- Bursting throughput for variable workloads
- Lifecycle policy to move old files to One Zone-IA
Use Case 4: Machine Learning Training
Scenario: ML training jobs need to read large datasets with unpredictable schedules.
Solution:
- EFS Standard for low latency data access
- Elastic throughput for automatic scaling during training
- Archive storage class for completed training data
Best Practices
EFS Best Practices
- Start with defaults - General Purpose mode + Elastic throughput works for most workloads
- Enable Intelligent-Tiering - Automatically optimize costs with lifecycle policies
- Monitor PercentIOLimit - Only switch to Max I/O if consistently at 100%
- Use One Zone for non-critical data - 47% savings for reproducible or dev/test data
- Use latest EFS client - amazon-efs-utils v2.0+ enables 1,500 MiB/s throughput
- Enable encryption - At-rest (KMS) and in-transit (TLS) with minimal overhead
- Use mount targets in each AZ - Ensures low-latency access from any AZ
- Set appropriate lifecycle policies - Balance cost savings with access patterns
Common Exam Scenarios
Exam Scenarios and Solutions
| Scenario | Solution | Why |
|---|---|---|
| Shared storage for web servers across AZs | EFS Standard + General Purpose + Elastic | Multi-AZ, automatic scaling, low latency |
| Big data cluster with 500+ concurrent clients | EFS with Max I/O (if PercentIOLimit at 100%) | Optimized for highly parallelized workloads |
| Cost-sensitive dev/test environment | EFS One Zone + lifecycle to IA | 47% cheaper, acceptable for non-production |
| Predictable high-throughput video rendering | EFS + Provisioned throughput | Consistent performance for known requirements |
| Home directories with mostly cold data | EFS Standard + Intelligent-Tiering | Auto-tiering to IA saves up to 95% |
| Single EC2 instance needs persistent storage | Use EBS, not EFS | EBS is simpler and lower cost for single instance |
Common Pitfalls
Pitfall 1: Using EFS When EBS Suffices
Mistake: Using EFS for a single EC2 instance when EBS would work.
Why it's wasteful:
- EFS is more expensive than EBS
- Adds unnecessary complexity
- Higher latency than local EBS
Correct Approach:
- Use EBS for single-instance storage needs
- Use EFS only when multiple instances need shared access
- Consider EFS for multi-AZ high availability requirements
Pitfall 2: Choosing Max I/O Without Testing
Mistake: Selecting Max I/O mode based on assumptions about parallelization.
Why it's problematic:
- Max I/O has higher latency
- General Purpose now supports hundreds of thousands of IOPS
- Cannot change back without creating new file system
Correct Approach:
- Start with General Purpose (default)
- Monitor PercentIOLimit CloudWatch metric
- Only consider Max I/O if consistently at 100%
Pitfall 3: Ignoring Access Charges for IA/Archive
Mistake: Moving all data to IA/Archive without considering access patterns.
Why it's costly:
- Per-access charges can exceed Standard storage costs
- Data frequently accessed from IA costs more than keeping in Standard
Correct Approach:
- Use Intelligent-Tiering to automatically move data back
- Analyze access patterns before aggressive tiering
- IA best for data accessed < once per month
Pitfall 4: One Zone for Critical Data
Mistake: Using One Zone storage class for production workloads without backups.
Why it's risky:
- Data stored in single AZ only
- Data loss if AZ experiences disaster
- No automatic replication to other AZs
Correct Approach:
- Use Regional (Standard) for production data
- One Zone only for reproducible or backed-up data
- Implement backup strategy with AWS Backup
Test Your Knowledge
A company needs shared file storage for a web application running on 20 EC2 instances across 3 Availability Zones. The workload is latency-sensitive with unpredictable traffic patterns. Which EFS configuration is BEST?
Which EFS throughput mode is ONLY available with General Purpose performance mode?
A company wants to reduce EFS costs for a development environment where data loss is acceptable. Which storage class provides the MOST cost savings?
What happens when a file in EFS Infrequent Access storage class is accessed with Intelligent-Tiering enabled?
Related Services
Quick Reference
Performance Specifications
EFS Performance Quick Reference
| Metric | Value |
|---|---|
| Max file system size | Petabytes |
| Max single file size | 52 TiB |
| Max throughput (Elastic) | 3 GiB/s read, 1 GiB/s write |
| Max throughput (Provisioned) | 3,072 MiB/s |
| Read latency (Standard) | ~250 microseconds |
| Write latency (Standard) | ~2.7 milliseconds |
| Max IOPS (General Purpose) | Hundreds of thousands |
| Max IOPS (Max I/O) | 500,000+ |
Storage Class Pricing (US East)
EFS Storage Pricing
| Storage Class | Storage Cost | Access Cost |
|---|---|---|
| EFS Standard | $0.30/GB-mo | None |
| EFS Standard-IA | $0.016/GB-mo | $0.01/GB accessed |
| EFS Archive | $0.008/GB-mo | $0.03/GB accessed |
| One Zone | $0.16/GB-mo | None |
| One Zone-IA | $0.0133/GB-mo | $0.01/GB accessed |
Key Metrics to Monitor
CloudWatch Metrics for EFS
| Metric | Description | Action |
|---|---|---|
| PercentIOLimit | % of General Purpose I/O limit used | Consider Max I/O if consistently 100% |
| BurstCreditBalance | Available burst credits (Bursting mode) | Consider Provisioned if depleting |
| TotalIOBytes | Total bytes transferred | Monitor for capacity planning |
| MeteredIOBytes | Bytes that count against throughput | Track IA/Archive access costs |