Elastic File System (EFS)
About
- Managed NFS (network file system) that can be mounted on many EC2
- EFS works with EC2 instances in multi-AZ
- Highly available, scalable, expensive (3x gp2), pay-per-use
- Uses NFSv4.1 protocol
- Uses security group to control access to EFS
- Compatible with Linux based AMI (not Windows)
- Encryption at rest using KMS
- POSIX file system (~Linux) that has a standard file API
- File system scales automatically, pay-per-use, no capacity planning
Performance
- EFS Scale
- 1000s of concurrent NFS clients, 10 GB+/s throughput
- Grow to Petabyte-scale network file system automatically
- Performance Mode (set at EFS creation time)
- General Purpose (default): latency-sensitive use cases (web server, CMS, …)
- Max I/O: higher latency, throughput, highly parallel (big data, media processing, …)
- Throughput Mode
- Bursting: 1 TB = 50 MiB/s + burst of up to 100 MiB/s
- Provisioned: set your throughput regardless of storage size (ex: 1 GiB/s for 1 TB storage)
- Elastic: automatically scales throughput up or down based on your workloads
- Up to 3GiB/s for reads and 1 GiB/s for writes
- Used for unpredictable workloads
Storage Classes
- Storage Tiers (lifecycle management feature: move file after n days)
- Standard: for frequently accessed files
- Infrequently access (EFS-IA): cost to retrieve files, lower price to store
- Archive: rarely accessed data (few times each year), 50% cheaper
- Implement lifecycle policies to move files between storage tiers
- Availability and durability
- Standard Multi-AZ, great for prod
- One Zone: one AZ, great for dev, backup enabled by default. compatible with IA (EFS One Zone-IA)
- By using the right EFS storage classes, you can do up to 90% in cost savings