EBS vs. EFS: Which Storage System Is Right For You?
By Alexey Baikov | CTO & Co-founder
May 13, 2020
EBS vs. EFS–which makes the most sense for your business? Unfortunately, there’s no one size fits all approach.
Choosing the correct storage solution for your AWS workloads can sometimes be quite confusing. There are many services available with different storage types and feature sets, so it’s easy to get overwhelmed when you’re in the comparison stage of your cloud optimization journey.
In this article, we’ll compare two major storage services: Amazon Elastic Block Storage (Amazon EBS), and Amazon Elastic File Service (Amazon EFS). Both of these services offer great solutions if your application needs access to data via filesystem.
Amazon Elastic Block Store (EBS) is a highly performant block storage service that creates standalone virtual hard drives in the cloud and attaches those volumes to Amazon Elastic Compute Cloud (EC2) virtual machines.
AWS customers have been using EBS since its early days for almost all types of demanding workloads like databases, applications, email, file storage, backup, or websites. EBS volumes are easy to create and configure and can be scaled to deliver extremely high IO performance. These volumes are also highly available and durable. Although EBS volumes are not replicated across multiple Availability Zones, they are copied to multiple servers in the same AZ, thus offering 99.99% availability and up to 99.999% durability. Users can also encrypt EBS volumes for data security at rest.
The image below shows a logical representation of Amazon EBS:
Amazon Elastic File System (EFS)
Amazon Elastic File System (EFS) is a managed Network File System (NFS) designed for Linux-based EC2 instances, selected AWS managed services, and on-premise servers. There’s a similar storage system for Windows hosts called the Amazon FSx for Windows File Server. FSx uses the Server Message Block (SMB) protocol while EFS uses NFS.
The image below shows a logical representation of Amazon EFS:
Comparing EBS vs. EFS Systems
While EFS is a managed elastic file system designed for use across different machines and availability zones, EBS is designed as a fast and reliable block storage volume for single machines (although EBS multi-attach is an exception to this that applies only on very specialised scenarios).
There are other differences between the two storage systems which we’ll specify below.
Like a physical hard drive, an EBS volume can be attached to a single EC2 instance (except for multi-attach use cases). The EC2 instance needs to be in the same availability zone as the EBS volume. Files in an EBS volume are accessible by filesystems like ext3, ext4, or xfs.
EFS filesystems, on the other hand, can be mounted on multiple machines from any availability zone or even from on-premise servers. Thousands of machines can connect to the same EFS folder. File system access is via the NFS protocol.
EBS volumes can be attached to both Windows and non-Windows EC2 machines, whereas EFS volumes are designed for Linux-based hosts only.
While the maximum size of an EBS volume can be up to 16 TB, EFS volume sizes are practically unlimited. The maximum size of a file in EFS is 47.9 TB.
Availability and Scalability
Although EBS volumes are not replicated across multiple Availability Zones, they are copied to multiple servers in the same AZ, thus offering 99.99% availability and up to 99.999% durability. Users can also encrypt EBS volumes for data security at rest.
Like EBS, EFS also offers high durability. However, the main difference lies in scalability. EFS volumes can scale up quickly and automatically to meet abrupt spikes in workload demand and scale down with a decreased load. This makes EFS more flexible than EBS.
This scalability also means EFS volumes don’t need to be pre-provisioned with a specific size for an anticipated load, which ultimately saves costs. Similar to EBS, you can also specify a provisioned throughput for EFS volumes.
Backup and Encryption
Backups and encryption-at-rest are available for both systems.
EFS also offers lifecycle management,a price-saving feature similar to S3 lifecycle management. EFS lifecycle management enables the automatic and transparent transfer of infrequently accessed data to a separate storage class.
You can configure EBS volumes to minimize disk latency. You can do this by choosing different types of storage (SSD, HDD, etc.), specifying provisioned IOPS, and selecting EBS-optimized EC2 instances.
EFS, on the other hand, isn’t as configurable as EBS. Although the baseline performance is fast enough for most workloads, it’s unable to provide the low disk latency per IO operation like EBS. On the other hand, EFS – being a distributed file storage system – can handle a much higher throughput per second compared to EBS.
Check AWS documentation for more details on EFS performance, and download our EBS e-book to learn how to adjust EBS performance.
Costs will increase in both EBS or EFS with increasing provisioned performance. However, as a rule of thumb, EBS will be less expensive than EFS for the same performance per GB.
That said, mounting an EFS volume to multiple EC2 instances will have the same cost as mounting it to a single instance. In comparison, creating and attaching EBS volumes for every node may quickly add up to the bill.
So where should you use one and not the other? Here’s a checklist.
- If you need to access data from different machines or from different availability zones, EFS is probably your best option.
- EFS volumes are best suited for enterprise-wide file servers, backup systems, Big Data clusters, Massively Parallel Processing (MPP) systems, Content Distribution Networks (CDN), and other such large use cases.
- Systems requiring a lot of throughput can also benefit from EFS.
- If you need very low latency disk operations, EBS is probably the best choice.
- EBS volumes are best suited for relational and NoSQL databases, enterprise applications like ERP systems, mail servers, SharePoint, web servers, directory servers, DNS servers, or middlewares. That’s because these systems typically don’t run on large clusters, and therefore don’t need a commonly mounted volume. Replication between servers is done on the application level, not on disk level. The performance requirements of these workloads can also be met by existing EBS volume types.
We hope you enjoyed this overview of two of AWS’s most popular storage systems, EBS and EFS. Whichever storage system you choose, we wish you an easy, smooth, and cost-effective cloud experience.
You can also contact one of our cloud optimization experts to learn how you can minimize EBS management efforts and maximize savings with Zesty.