At last month’s AWS summit in San Francisco, Amazon announced a new service: AWS Elastic File System (EFS). EFS provides shared access to fully managed file systems across-the-board. Connecting to EFS is similar to connecting to your network drive since it supports NFS protocols, which are standard for network attached storage (NAS) devices. As a result, you can connect to it through your network interface. In this article I will discuss the capabilities of EFS and how it differs from EBS.
NAS vs SAN
SAN is a dedicated network that provides direct access to consolidated, block level data storage. Usually chosen for large businesses, this system creates raw volumes of storage with each block of storage controlled by a remote server.
A regular operating system consists of a file system which is on top of a volume. The volumes are based on disk which are block storage devices. While NTFS is the default file system for Windows Server, FAT can still be used. There are many other file systems in Linux such as XFS, ETC2,3,4, ReiserFS and more. However some applications and databases are built to use block devices directly in order not be confined by rules and file system operations. This can support better performance. For example, Oracle ASM has its own file system and can only be stored on block level storage.
NAS is a shared file system that functions much like a standard volume insofar as multiple machines can have access to the same files. With block storage, however, generally speaking, the machine that is attached to the volume is the only one that can read/write from/to it. NAS doesn’t require you to understand how it’s built under the hood, how it is divided into disks and whether it’s all on one machine or distributed.
EFS vs. EBS
Utilizing EFS requires you to plan your choice of storage. If you need very high throughput, you can raid multiple EBS volumes, but in most cases, EFS will suffice. AWS claims that EFS is fit to run in Big Data applications that “require high throughput to compute nodes coupled with read-after-write consistency and low-latency file operations.” This hints at the fact that AWS leveraged their EBS and networking capabilities to provide enhanced and modern NAS services. In addition, the cost per GB of EFS is $0.3 while EBS is $0.125 (max price). The higher price makes sense seeing as EFS is a managed service that comes with inherent availability and scalability capabilities such as replication across AZs.
As an AWS cloud service, EFS’ inherent scalability allows it to store petabytes of data as throughput and IOPS scale accordingly. EFS is based on SSD volumes that are replicated across multiple AZs in an AWS region. As a type of NAS, multiple EC2 machines can access an EFS from different zones within the same region or even from different regions. The lack of shared storage capabilities proved to be a great challenge for enterprises that wanted to adopt the AWS cloud. Some tried to implement them on their own using EBS volumes, and some used third party vendors who provided shared storage as an external appliance to the AWS environment. With EFS, however, this is no longer an issue.