It’s easy to get confused with the different types of storage with Amazon Web Services. This is why, in this article, we cover Amazon S3, Amazon EFS, and Amazon EBS storage options, and define the practical difference between them.
All three services are storage options, designed by Amazon Web Services.
- Amazon S3 (Amazon Simple Storage Service) is an object storage designed for storing large numbers of user files and backups.
- Amazon EFS (Amazon Elastic File System) provides scalable network file storage for Amazon EC2 cloud computing service users.
- Amazon EBS (Amazon Elastic Block Storage) is block storage for Amazon EC2 compute instances - it is similar to hard drives attached to your computers or laptops, but in a virtualized environment.
Want more details? Keep reading to understand what to choose between Amazon S3 vs EFS vs EBS, what are the differences, and use-cases.
Table of Contents
What Is Amazon S3?
Perfect for data storage and backups
Amazon S3 (Amazon Simple Storage Service) stores data as objects in a flat environment (with no hierarchy). Each object (file) in storage contains a header with a corresponding sequence of bytes (from 0 bytes to 5 TB). Objects in this storage type are associated with a unique identifier (key), so they can be accessed via web requests from anywhere. For example, any authorized node in your own datacenter or external user can access any object in your bucket.
To put it in a nutshell, Amazon S3 is a storage service for unstructured data. For example, Amazon S3 is a widely popular destination for data backups.
Plan your perfect disaster recovery strategy on AWS:
Amazon S3 also allows you to host static website content. You can access it either from your bucket or through a content delivery network named AWS CloudFront.
Amazon S3 is a highly scalable storage service with famous eleven nines data durability (99,999999999%). This means that the chances of losing your data somewhere inside AWS data centers are minimal.
To learn more about various use cases, check out this article:
Further reading How to Use Amazon S3 Cost-Effectively
Drive for your virtual machine
Every computer needs a drive and a virtual machine is not an exception. Amazon EBS (Amazon Elastic Block Storage) is the storage for your virtual machine drives. It stores data as blocks of the same size and organizes them in a hierarchy similar to a traditional file system.
Amazon EBS is not a standalone storage service like S3 so you can only use it combined with Amazon EC2, (cloud computing service by AWS).
Amazon EBS is designed to store data in a dedicated volume attached to an Amazon EC2 instance, just like a local disk drive on your physical machine. Amazon EBS only allows to attach a volume to another EC2 instance or keep it in a standby mode. This is important as once a volume is configured in Amazon EBS, it can’t be easily scaled. If you need more storage space, you will need to buy and configure a new, larger volume and mount it.
Amazon EBS Volume Types
Amazon EBS has three types of volumes. To understand the difference, you need to know what IOPS is. “IOPS” refers to the number of I / O operations per second, or, more simply, the maximum number of read / write operations you can perform per second. To select the right Amazon EBS volume type you need to know the IOPS requirements for your application.
General Purpose (SSD) Volumes
The first Amazon EBS volume type, General Purpose Volumes are designed for a wide range of tasks and equipped with a Solid State Drive (SSD). The baseline performance of 3 IOPS/GB and scalability up to 10,000 IOPS makes them a good fit for AWS databases that require a lot of read / write operations, such as PostgreSQL, MS SQL, or Oracle databases.
Provisioned IOPS (SSD) Volumes
By expanding the bandwidth bottleneck, Provisioned IOPS Volumes allow buying read/write operations on-demand regardless of volume capacity. This type of EBS volume is supported by the same SSD but is designed for heavy workloads from 30 IOPS/GB up to 20,000 IOPS. Multiple Provisioned IOPS volumes can be striped for up to 48,000 IOPS or 800 MBps of throughput.
In short, provisioned IOPS Volumes are much faster than General Purpose Volumes and should be used for highly demanding applications.
It’s best to think of the Magnetic Volumes type as a low-cost volume that can be used with test and development environments on Amazon EC2. It can also be used with applications that don’t require a lot of read/write operations. Instead of SSD, this type is based on magnetic HDD drives, so the IOPS baseline ranges from 100 up to hundreds of IOPS. Magnetic Volumes can also be a starting point in working with Amazon EC2 — once you understand your IOPS requirements, you can select the type of volume that fits best.
Further reading How to Resize an Amazon EBS Volume
What is Amazon EFS?
Scalable storage for your virtual machine
While Amazon EBS works for configuring system drives for VMs, and S3 is good for storage, what if you want to run an application with high workloads that requires scalable storage and relatively fast output? Amazon Elastic File System was built to fulfill these needs.
Amazon EFS is automatically scalable - which means your running applications won't have any problems if the workload suddenly increases - storage will scale accordingly. If the workload decreases - the amount of storage will be reduced, so you won't pay for the unused storage.
You can mount EFS to various AWS services and access it from various virtual machines. Amazon EFS is especially helpful for running servers, shared volumes (like NAS devices), big data analysis, and any scalable workload you can think of.
Amazon S3 vs EFS vs EBS Comparison
In summary, we distinguished a few specific features of all three storage services to help you choose between them:
|Amazon S3||Amazon EBS||Amazon EFS|
|Can be publicly accessible |
Slower than EBS and EFS
|Accessible only via the given EC2 Machine |
File System interface
Faster than S3 and EFS
|Accessible via several EC2 machines and AWS services |
Web and file system interface
Faster than S3, slower than EBS
|Good for storing backups and other static data||Is meant to be EC2 drive||Good for applications and shareable workloads|
If you ever thought that some of the storage types within Amazon Web Services are similar or duplicate - now you know that it is definitely not the case for Amazon S3, Amazon EBS, and Amazon EFS. Each serves its own purpose and, in our opinion, does it perfectly.