AWS — Difference between EFS and EBS

EFS (Elastic File System) vs EBS (Elastic Block Store) comparison in AWS

Image for post
EFS

TL;DR:

Amazon EFS is an NFS file system service offered by AWS. An Amazon EFS file system is excellent as a managed network file system that can be shared across different Amazon EC2 instances and works like NAS devices.

Amazon EBS is the block storage offered on AWS. An Amazon EBS volume is a persistent storage device that can be used as a file system for databases, application hosting and storage, and plug and play devices.

Image for post
EBS

EBS

Every server needs a drive. EBS is essentially a cloud-based storage for the drives of your virtual machines. EBS is designed to store data in blocks attached to an Amazon EC2 instance, similar to a local disk drive on your physical machine. You need to mount EBS onto an Amazon EC2 instance.

EFS

EFS is on the other hand automatically scalable — this means that you need not to be worried about your running applications as there won’t be any problems even if the workload suddenly becomes higher — the storage will automatically scale itself. Now, if the workload decreases — the storage will itself scale down, so that you don’t pay anything for the part of storage that you don’t use.
Amazon EFS is especially helpful for running servers, shared volumes, big data analysis, and any scalable workload you can think of.

Key differences:

Storage Type
EBS: Block Storage
EFS: Object storage

Performance
EBS: Hardly scalable
• Manually scale the size of the volumes without stopping instance.
• Baseline performance of 3 IOPS per GB for General Purpose volume
• Use Provisioned IOPS for increased performance
EFS: Scalable
• Highly Scalable Managed Service
• Supports up to 7000 file system operations per second

Data Stored
EBS:
• Data stored stays in the same Availability zone.
• Replicas are made within the AZ for higher durability
EFS:
• Data stored in AWS EFS stays in the region.
• Replicas are made within the region

Data Access
EBS: Can only be accessed by a single Amazon EC2 instance
EFS: Can be accessed by 1 to 1000s of EC2 instances from multiple AZs, concurrently

File System
EBS: Supports various file systems, including ext3 and ext4
EFS: File storage service for use with AWS EC2. EFS can be used as network file system for on-premise servers too using AWS Direct Connect.

Encryption
EBS: Uses an AWS KMS–Managed Customer Master Key (CMK) and AES 256-bit Encryption standards
EFS: Uses an AWS KMS–Managed Customer Master Key (CMK) and AES 256-bit Encryption standards

Availability
EBS: 99.99% available
EFS: Highly available (No public SLA)

Durability
EBS: 20 times more reliable than normal hard disks
EFS: Highly durable (No public SLA)

Availability Zone Failure
EBS: Cannot withstand AZ failure without point-in time EBS Snapshots
EFS: Every file system object is redundantly stored across multiple Availability Zones so it can survive one AZ failure.

Storage Size
EBS: Maximum storage size of 16 TB
EFS: No limitation on the size of the file system

File Size Limitation
EBS: No limitation on file size in EBS disk
EFS: Single files have a maximum size of 47.9TiB

Data Throughput and I/O
EBS: SSD- and HDD-backed storage types. Use of SSD backed and Provisioned IOPS is recommended for dedicated IO operations as needed.
EFS: Default throughput of 3GB/s for all connected client.

When to use

Image for post