Amazon EFS provides simple, scalable, elastic file storage for use with compute instances on the AWS Cloud and on-premises servers. Amazon EFS is easy to use offering a simple interface that allows you to create and configure file systems quickly and easily.
When deciding if you should be using file, object, or block storage for your cloud application deployment, there are many factors to consider. Here, we compare Amazon EFS to Amazon S3 and Amazon EBS to help you understand when to choose Amazon EFS.
How is Amazon EFS different than Amazon S3?
Amazon EFS provides shared access to data using a traditional file sharing permissions model and hierarchical directory structure via the NFSv4 protocol. Applications that access data using a standard file system interface provided through the operating system can use Amazon EFS to take advantage of the scalability and reliability of file storage in the cloud without writing any new code or adjusting applications.
Amazon S3 is an object storage platform that uses a simple API for storing and accessing data. Applications that do not require a file system structure and are designed to work with object storage can use Amazon S3 as a massively scalable, durable, low-cost object storage solution.
How is Amazon EFS different than Amazon EBS?
Amazon EFS provides shared file storage for use with compute instances in the AWS Cloud and on-premises servers. Applications that require shared file access can use Amazon EFS for reliable file storage delivering high aggregate throughput to thousands of clients simultaneously.
Amazon EBS is a cloud block storage service that provides direct access from a single Amazon EC2 instance to a dedicated storage volume. Applications that require persistent dedicated block access for a single host can use Amazon EBS as a highly available, low-latency block storage solution.
Comparing Amazon Cloud Storage
The table below compares performance and storage characteristics for Amazon’s highest performing file, object, and block cloud storage offerings.
||Low, for mixed request types, and integration with CloudFront||Lowest, consistent
|Throughput scale||Multiple GBs per second
||Multiple GBs per second||Single GB per second|
|Characteristics||Data Availability/Durability||Stored redundantly across multiple AZs||Stored redundantly across multiple AZs
||Stored redundantly in a single AZ|
|Access||One to thousands of EC2 instances or on-premises servers, from multiple AZs, concurrently
||One to millions of connections over the web||Single EC2 instance in a single AZ|
||Web serving and content management, enterprise applications, media and entertainment, home directories, database backups, developer tools, container storage, big data analytics||Web serving and content management, media and entertainment, backups, big data analytics, data lake||Boot volumes, transactional and NoSQL databases, data warehousing & ETL
Amazon EFS’s distributed nature enables high levels of availability, durability, and scalability. This distributed architecture results in a small latency overhead for each file operation. Due to this per-operation latency, overall throughput generally increases as the average I/O size increases, since the overhead is amortized over a larger amount of data. Amazon EFS's support for highly parallelized workloads (i.e. with concurrent operations from multiple threads and multiple EC2 instances) enables high levels of aggregate throughput and IOPS.