Storage is an essential component of any architecture. Storage is necessary because it is responsible for storing valuable data produced by the applications. Whether you are an architect or an application developer, you need to understand various storage options, their differences, and the applicable use cases. Knowing this will help you choose the right storage solution for your application and avoid any headaches down the road.
This blog will talk about different storage options and the portfolio of equivalent storage services offered by AWS. I will also discuss use cases that each solution supports.
Choice of storage option is influenced by the semantics of the data that need to be stored or processed. These semantics often define specific scalability, durability, and availability requirements. Therefore it is vital to understand the project’s needs, criticality, and sensitivity of the data, before selecting a particular storage technology.
Block storage: is the one that architects and developers are most familiar with. In this storage technology, each file is divided into several blocks or chunks and stored on the hard disk attached to the server. The disk is usually formated as NTFS, ext3, or some other standard. This technology is mostly used in environments that require frequent updates of the stored files such as databases. As these files are stored in chucks, only the changed section of the file needs to be updated.
Amazon Elastic Block Store — EBS is the block storage solution in AWS Cloud. Before using EBS, you need to mount it to an Elastic Compute Cloud EC2. However, once it is mounted, it can not be mounted to another EC2 instance simultaneously. Therefore it does not support simultaneous access of data from different compute resources. If the EC2 instance stops or terminates, the data on EBS is not lost and can be mounted to another EC2 instance for access.
File Storage: File Storage is also well known among consumers and developers alike. Nowadays, it is common to have an external Network Attached Storage — NAS to store large files or for backups. NAS Servers empower this type of file storage. This storage solution allows sharing of data between different servers over the network.
Amazon Elastic File Storage — EFS is a file-based storage solution available in AWS Cloud. Data in EFS backed storage can be easily shared between multiple EC2 instances.
For Windows-based high-performance workloads, Amazon FSx provides a similar file storage solution.
Object Storage: Object storage is a modern storage technology of the internet. Although both EBS and EFS need to be mounted to EC2 instances, object storage is an entirely independent storage service. Any client that supports the HTTP protocol can communicate with object storage over the internet using API calls. If there is a change in the file in this storage solution, the complete file needs to be replaced.
Amazon Simple Storage Service — S3 is the object store provided by AWS. There are multiple ways to interact with S3, either using AWS Console, AWS CLI, or AWS SDK regardless; the underlying communication occurs using API calls over the HTTP protocol. S3 provides virtually limitless amount of data storage and can empower various workloads such as data lakes.
In summary, AWS provides multiple storage solutions to support different workload requirements. It would be best if you understood the pros and cons of each storage technology to use them effectively.