AWS & Elastic File System (EFS)
After over a year in preview, AWS have announced that their Elastic File System (EFS) offering is now available for production use in the US East (Northern Virginia), US West (Oregon), and Europe (Ireland) AWS regions. Whilst a date for Sydney availability is not yet available, test cases and Proof of Concept models can be created using EFS within the 3 available regions.
Based upon Network File System (NFS) version 4.1, EFS is suitable for large scale, throughput heavy processing workloads, content delivery, and web services.
Unlike Elastic Block Storage (EBS), EFS has no fixed storage size, and usage can be increased or decreased as required. AWS will handle all of the scale-out and maintaining of performance for the storage at the backend, and suggest that the service can scale out to Petabyte size workloads.
From a charging perspective, AWS only charge for the storage that is in use and this is based on an aggregate value for the month based on time and data volume. At USD $0.30 per GB of used storage, the storage is 3x more expensive than traditional EBS volumes, but it does have the advantage that the storage can be used by multiple server instances at the same time – not something that can be achieved with EBS volumes.
EFS can be provisioned in one of two modes:
- General Purpose: This is the default and has better performance in terms of file access latency, but may not be suitable when large numbers (100s-1000s) of EC2 instances are accessing the EFS concurrently.
- Max I/O: Supports higher levels of aggregate throughput and IOPs but has slightly higher file access latency.
Once defined, each EFS can be accessed from a single VPC (multi-VPC and multi-region access is not supported), via mount points created within the EC2 instances. When using AWS, Red Hat Enterprise, or SuSE Linux based EC2 instances, the “nfs-utils” package should be installed to provide the client side drivers. Accessing the EFS is then simply a matter of mounting the EFS via it’s DNS name to an empty mount point, as shown below – the EC2 instance’s metadata can be used to determine the DNS name.
Support for EFS is available within CloudFormation to assist with automated deployment of AWS based systems and templates are available that include code fragments to install the NFS components needed to access the EFS.
Whilst AWS specifically note at this time that EFS does not support Windows based instances, Windows 8 and Windows 2012 include support for NFS 4.1 and it is possible to access an EFS from Windows. A Windows client for NFS 4.1 is also available from the Center for Information Technology Integration (CITI) at University of Michigan and SourceForge.
The availability of production ready EFS services is an encouraging development from AWS and we look forward to when this it is also officially supported for Windows.