What is Amazon EFS?
Amazon Elastic File System is a cloud-based file storage service provided by AWS. Just like S3(Simple Storage Service), it can scale easily and is easy to set up to use with other AWS services such as EC2(Elastic Compute Cloud), ECS(Elastic Container Service), and EKS(Elastic Kubernetes Service), etc. It is fully managed by AWS and with simple clicks, you can easily create a new EFS file system. The service is highly scalable and provides flexible storage capacity that scales up to petabytes(10^6 GB). One no need to provision the storage initially, the file system automatically adjusts according to the storage used, which can reduce the cloud cost significantly.
Features provided by EFS compared to other storage
Amazon EFS is designed in such a way that it can be mounted to thousands of EC2 instances concurrently and can be used with high availability and durability without compromising performance. The EFS also provides automatic backups and takes daily snapshots so that you don't lose your data if it got corrupted or destroyed due to some other reasons. EFS also comes with lifecycle management by which you just specify the number of days and AWS will take care of all inactive files to move to the infrequent access tier which can also help to reduce your cloud cost. The service comes with default bursting throughput which scales with file system size but you can also manually configure the fixed throughput by specifying it. When it comes to performance consideration, the Amazon EFS has 2 options. The first one is General-Purpose which is ideal for latency-sensitive use cases such as web serving environments and content management systems. And the second one is Max I/O, which can be best suited for big data analytics, media processing, and genomic analysis by scaling to higher levels of aggregate throughput and operations per second
A comparative study between Amazon EFS vs. Amazon S3 vs. Amazon EBS
Since AWS offers many cloud storage services, it is very likely that one may get confused about which one to use when and which one to avoid so I'm adding some points I found useful from AWS documentation:
It is a file system storage service and can be very useful when we need to design an architecture where multiple ec2 machines or containers need to share some large amount of data with each other in a concurrent fashion.
It is a block-level storage service and is best suited for a single EC2 instance because it provides the lowest-latency access to data and can deliver high performance for workloads.
Simple Storage Service is designed for object storage services and is generally used to store static videos/image data and a simple API interface to access data from anywhere.