~ 4 min read
AWS EBS vs S3 vs EFS: Differences & Use Cases
AWS provides various storage services that the users can utilise as per their need. These are virtual storage services on cloud that allow to store data in a scalable and highly available manner and removes the hassle of buying and maintaining physical equipment for data storage.
EBS, S3, and EFS storage services are some of the most popular storage services on AWS. In this article, we will take a look at these three services and also discuss some use cases for these services.
EBS (Amazon Elastic Block Store) is a block type storage provided by AWS. It is similar to hard drives on our physical machines. EBS is primarily used by the AWS EC2 instances for persistent data storage which means that even if EC2 instances are shut down, the data on EBS volume is not lost.
EBS volumes can be dynamically attached, detached and scaled with EC2 instances. There are different types of EBS SSD backed volumes and HDD backed volumes for users to select as per their requirements. EBS is highly available within Availability Zones.
Use cases for EBS
EBS is used like a hard drive for EC2 instances. When you need to persist the data on your servers (EC2 instances), EBS volumes provide data persistence. EBS volumes persist data even if the instance is deleted (except root volume in default setting). You can also take point-in-time snapshots and have backup of your data in the EBS volumes.
Relational and NoSQL databases can also be deployed and scaled with EBS. Various databases like MySQL, Oracle, MSSQL, Cassandra, MongoDB, etc. are supported.
S3 (Amazon Simple Storage Service) is an object type store where users can upload and store objects into it. The objects are stored in a container which is referred to as a bucket. We can put objects into a bucket or get the objects from a bucket. An object can be a file of any type like a text file, a video, an image, etc.
S3 is highly scalable which means that the users can scale the storage as much as they need. Users can secure their data in S3 via different means like, encryption, ACLs, and policies.
Use cases for S3
S3 provides seemingly unlimited storage that can be scaled effortlessly. Due to this, S3 can be used for building data lakes. You can run data analytics on your data in S3.
When you want to archive your data, S3 provides low cost archival services with Glacier classes where data can be stored for long periods of time in a cost-effective way.
EFS (Amazon Elastic File System) is a file based storage service which is somewhat similar to the NAS (Network Attached Storage). It is a set-and-forget serverless file system. There’s no cost for the set up, you only pay for the storage utilised, read/write of data, and any provisioned throughput.
Multiple instances can be attached to EFS and all the instances can access it at the same time. Not only the instances in different availability zones can connect to EFS, but also instances from different VPCs (using VPC peering) and on-premise systems (using VPN or Direct Connection) can connect to EFS. It is also highly available within the AWS Region.
Use cases for EFS
EFS allows persistent storage and secure sharing of data. When you have applications or services running on multiple instances, EFS can serve as a common data source for the instances to access data securely.
EFS is also suitable for running big data analytics applications as it provides the significant performance which is required for conducting analytics on the workloads by these applications.
AWS provides a variety of cloud storage services carved out for different needs of different users. In this article we have given an introduction of the three very popular storage services on AWS namely - EBS, S3, and EFS. We have also looked into the use cases for the three storage services to get an understanding of when to use which storage service.
This article is an introduction to the three storage services and in the upcoming Know How articles we will take a look at each of these services separately.