When working with the AWS cloud, you often find yourself asking which service should you use to meet a specific need. Most of the time, there are multiple offerings available that meet your requirements. Each has its benefits and limitations. The ever-changing nature of the AWS cloud—which includes constant updates to existing services, as well as the introduction of new ones—can make choosing the right service challenging. What was a proper choice in the past may not be the right one today.
This article will consider one very common example of this type of choice: making a decision about appropriate storage options. We will compare Elastic Block Store (EBS) vs. Elastic File System (EFS), two extremely popular storage options, to see which one is best for which situations.
What is AWS EBS?
AWS EBS is a block storage service designed to be used exclusively with EC2 instances. It provides a high performance option for many use cases, and it can be used for various databases (both relational and non-relational), for a wide range of applications, and for big data analytics.
EBS works by providing volumes, which are collections of small network attached blocks that you see as “disks.” Volumes come in different types, and whether you need the best possible performance and require a single-digit millisecond latency or you’re just looking for a high throughput, there is an EBS volume that meets your needs.
Note that elastic block store volumes persist separately from EC2 instances and can be attached and detached at any time. When they are mounted they can be used as any other block storage. Our block storage series introduces EBS block level storage and digs into the two main block storage categories: SSD-backed and HDD-backed volumes.
At the moment, there are four volume types being offered by EBS. The grid below shows a summary. You can also read more about AWS EBS: HDD vs SSD Cloud Block Storage and how they are priced here:
AWS EBS Volume Types
AWS EBS General Purpose SSD (gp2)
Throughput Optimized HDD (st1)
Cold HDD (sc1)
Provisioned IOPS SSD (io1)
A balanced volume type
A low-cost volume for frequently accessed and throughput intensive workloads
A cheap volume for less frequently accessed data
A volume designed for latency-sensitive transactional workloads
$0.125/GB + an additional $0.065 per provisioned IOPS
EBS volumes are designed to be very durable, and they are replicated within the Availability Zone (AZ). However, this means that they are limited to one AZ, so you can’t move a volume around unless you create a snapshot of it and recreate it elsewhere.
What is AWS EFS?
AWS EFS is a storage service that provides a shared elastic file system with virtually unlimited scalability support. It was designed to work with Linux instances (and with support for both 4.0 and 4.1 Network File System (NFS) protocols), and it offers durable, highly available storage that can be utilized by thousands of servers at the same time. AWS EFS is a fully managed service that is automatically scalable. This means that the file system will actually go up or down in size as you add files to it or remove files from it.
On the surface AWS EFS sounds like a simple service but there is a lot more to it when you dig a bit deeper.
When the size of the EFS’s file system scales, so does its performance. This is a somewhat strange choice, and, as a result, the performance of EFS can be a bit underwhelming for low utilization. When used more heavily, however, AWS EFS can offer as much as 10 GB/sec along with 500,000 of IOPS.
One upside of using EFS is that your existing environment won’t require any changes. Your applications and services need only attach the file system to be ready to go.
The use of EFS is not limited to the AWS cloud. For those running a hybrid cloud environment, AWS EFS can be used by on-premises instances as well. This feature greatly expands the possible use cases for EFS.
EFS has also received an update recently, gaining a new storage tier. Now, in addition to offering Standard storage, EFS also offers Infrequent Access. Using it only requires you to enable a lifecycle management which will move your data based on the desired policy. You can still use EFS normally. No infrastructure or application changes are needed on your end because EFS handles everything for you behind the curtain.
As with most AWS services, EFS only charges customers for what they use. EFS Standard tier storage costs $0.30 per GB per month. The cost of using the AWS EFS Infrequent Access tier storage is drastically lower—$0.025 per GB per month. Keep in mind, however, that when retrieving data using this tier, you incur an additional cost ($0.01 per GB transferred).
AWS EFS vs. AWS EBS: Which one should you use?
While both EBS and EFS offer great features, these two storage solutions are actually built for two completely different uses. EBS volumes are limited to a single instance, and, more importantly, then can only be accessed by one instance at a time. With EFS, you can have hundreds or thousands of instances accessing the file system simultaneously. This makes AWS EFS a great fit for any use that requires a decent performing centralized shared storage—uses like media processing or shared code repositories.
You can also use AWS EFS to serve web content, keep various backups, and reduce storage spending. While EFS does cost more than EBS ($0.30 per GB for EFS vs. $0.10 per GB for EBS), you only pay once per EFS file system. This means that if you attach a dozen instances to it, you will still pay the same amount as if you only had one instance attached to it. With EBS volumes, you pay for each volume. Therefore, to save money on storage, EFS can sometimes serve as a replacement for EBS.
EFS scales performance along with capacity, and, while this can be very beneficial in some cases, it can also be a significant drawback. You might not have high enough utilization to reach the desired throughput of the file system. Because AWS EBS provides you with steady and predictable performance, EBS is almost always be a better fit, unless you require that multiple instances access your storage at the same time,
Using N2WS Backup & Recovery for automated backup, restore, archiving and much more
As both EFS and EBS are extremely popular storage options available and there are evident advantages to both, it is important to keep in mind that, as discussed above, AWS EBS can only be accessed by a single instance at a time. Many times you require a storage system that can be accessed by multiple instances. While AWS EFS does provide this there will be cases where customers will want to back up their data to a persistent and isolated storage location. AWS EBS is a great solution because of its ability to create application-consistent snapshots. While EBS snapshots are not enough for secure backup on AWS, choosing N2WS Backup & Recovery allows you to sleep at night by automatically managing your backup, recovering immediately, plus providing many additional capabilities for managing your EBS snapshots. (Be sure to try N2WS for free for 30 days, after which is automatically converts to N2WS Free Edition — forever).
With this tool in place, even if someone unknowingly deletes your data from AWS EFS, or if a bug or outage causes downtime to your AWS EBS, you will always have a backup available which can be restored near instantaneously.
Short note about NAS vs SAN
To choose an efficient storage solution, companies must choose between NAS (Network Attached Storage) and SAN (Storage Area Network). Many small to mid sized businesses with demanding usage requirements choose NAS. These teams tend to want data in a centralized storage solution with secure remote data access, file sharing, and scalability — a system that is used for storing data and not much else. NAS delivers ample storage and room to grow for scaling data, and NAS 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 is a shared file system that doesn’t require much understanding under the hold.
That’s where SAN (Storage Area Network) comes in. SAN is typically suitable for larger enterprises as they have a significant amount of unstructured data with more storage needs such as reliability, fast performance, the need to access to large blocks of data from any location and huge capacities. SAN provides direct access to consolidated block level storage data. It consists of a file system (on top of a volume) and creates raw volumes of storage with each block of storage controlled by a remote server.
Amazon FSx for Windows File Server: Where does it fit in?
Amazon FSx for Windows File Server is somewhat equivalent to AWS EFS, since it provides the shared storage (file systems) necessary for various applications and workloads such as storage for Windows applications, machine learning and high performance computing (it also supports file systems for Lustre). The main difference between it and EFS is that AWS FSx was built specifically for Windows use cases using SMB protocol. EFS is designed to work with Linux. There are also other differences between the two; for example, EFS charges you for the storage you are using while Amazon FSx charges for provisioned storage, but they are both shared storage solutions, and you can choose to use the one that matches your environment and operating system.
The final lowdown on EFS vs. EBS
EBS is a staple storage solution that is used by AWS EC2 instances and provides multiple types to fulfil most needs. EFS offers benefits for those needing shared storage for Linux machines running in their AWS cloud environment. EFS can span the entire hybrid cloud if necessary, and it is best used when you are running multiple instances. If you are limited to Windows-based servers, AmazonFSx for Windows File Server could be the best option for you.
Because these services fill different niches, they rarely compete with each other. Ultimately, you should choose the one that best suits your business requirements.Click here to read the original post –>
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. Try N2WS Backup & Recovery (CPM) for FREE!