Jeff Geerling shares his tips for “Getting the best performance out of Amazon EFS”. Given how (still) new the Amazon EFS is and how limited is the documentation of the best practices, this stuff is golden.
tl;dr: EFS is NFS. Networked file systems have inherent tradeoffs over local filesystem access—EFS doesn’t change that. Don’t expect the moon, benchmark and monitor it, and you’ll do fine.
Here are some great news from the Amazon AWS blog – the announcement of the Elastic File System (EFS):
EFS lets you create POSIX-compliant file systems and attach them to one or more of your EC2 instances via NFS. The file system grows and shrinks as necessary (there’s no fixed upper limit and you can grow to petabyte scale) and you don’t pre-provision storage space or bandwidth. You pay only for the storage that you use.
EFS protects your data by storing copies of your files, directories, links, and metadata in multiple Availability Zones.
In order to provide the performance needed to support large file systems accessed by multiple clients simultaneously,Elastic File System performance scales with storage (I’ll say more about this later).
I think this might have been the most requested feature/service from Amazon AWS since EC2 launch. Sure, one could have built an NFS file server before, but with the variety of storage options, availability zones, and the dynamic nature of the cloud setup itself, that was quite a challenge. Now – all that and more in just a few clicks.
Thank you Amazon!