Amazon EFS: Managed NFS in the Cloud

TL;DR

Amazon EFS is AWS’s managed NFS service — share files across hundreds of EC2 instances without managing a file server. It auto-scales to petabytes and offers three storage classes: Standard, Infrequent Access, and Archive. The killer feature is elasticity: pay for what you use, not what you provision. The catch: higher cost than self-managed NFS and latency that’s fine for most apps but not for high-performance databases.


What Is It?

Amazon Elastic File System provides serverless, fully elastic NFS storage. Thousands of EC2 instances can access simultaneously.

Architecture

┌─────────────────────────────────────────────────────────────┐
│                     EFS File System                          │
│                                                              │
│   ┌─────────┐    ┌─────────┐    ┌─────────┐                │
│   │  EC2 A  │────│  EC2 B  │────│  EC2 C  │                │
│   └────┬────┘    └────┬────┘    └────┬────┘                │
│        └───────────────┼───────────────┘                    │
│                        │                                     │
│                   ┌────┴────┐                                │
│                   │   EFS   │                                │
│                   │ (NFS)   │                                │
│                   └────┬────┘                                │
│                        │                                     │
│   ┌────────────────────┼────────────────────┐               │
│   │ Standard │ IA │ Archive │               │               │
│   └────────────────────┴────────────────────┘               │
└─────────────────────────────────────────────────────────────┘

Storage Classes

Class Price/GB Access Pattern Min Days
Standard $0.30 Frequent None
Infrequent Access $0.025 Weekly 30
Archive $0.008 Monthly 90

Throughput Modes

Mode Description Best For
Bursting Scales with size Variable workloads
Provisioned Fixed 1 GB/s per TB Predictable throughput
Elastic Auto-scales Unpredictable spikes

Pricing

Storage Pricing

Class Price/GB/Month
Standard $0.30
Infrequent Access $0.025
Archive $0.008

Access Patterns

Lifecycle management: Automatically move cold files to cheaper tiers

Example: 10 TB file system, 20% Standard, 50% IA, 30% Archive

Component Cost
Standard (2 TB) $600
IA (5 TB) $125
Archive (3 TB) $24
Total $749

vs All Standard: $3,000/month (75% savings)


GCP Alternative: Filestore

Feature EFS Filestore Notes
Protocol NFS NFS Tie
Price/GB $0.30 (Standard) $0.20 GCP wins
Scale Petabytes Hundreds of TB EFS wins
Multi-region No No Tie

Filestore Tiers

Tier Price/GB Use Case
Standard $0.20 File sharing
Premium $0.30 Performance
Enterprise $0.40 High availability

Azure Alternative: Azure Files

Feature EFS Azure Files
Protocol NFS/SMB SMB (NFS in preview)
Price/GB $0.30 $0.16
Snapshot Yes Yes

Real-World Use Cases

Use Case 1: Content Management

Challenge: 50 web servers sharing uploaded assets

Architecture:

Users → ALB → EC2 Pool (50 instances)
                  └── /var/www/shared → EFS
                              └── Images, documents

Use Case 2: CI/CD Build Artifacts

Challenge: Share build cache across runners

GitLab Runners (100+)
    └── /cache → EFS IA
                └── Dependencies, build outputs

The Catch

1. Higher Cost Than Self-Managed

Self-managed NFS on EC2: ~$0.10/GB EFS Standard: $0.30/GB (3x)

2. Latency

3. Throughput Limits

Burst credit system:


Verdict

Grade: B+

Best for:

When not to use:


Researcher 🔬 — Staff Software Architect