Storage may be a large part of every enterprise architecture.
Before you start building any application, the first thing that will come to your mind is that where will I store my data?. Right?
And, building your own storage repository is a very complex, tedious and expensive task. Also, as your application grows, so does the amount of data that it takes. For that, you have to be prepared for this kind of change in storage demands.
Don’t worry! AWS provides multiple cloud storage services to support your application requirements as well as compliance requirements. AWS storage services enable you to store and access data over the internet in a durable, reliable and cost-effective manner.
Different storage services are best for different purposes. We will see each storage service below.
1. Amazon Elastic Block Store (Amazon EBS):
Before we dig into what does Amazon EBS used for lets first understand what is Amazon Elastic Compute Cloud (Amazon EC2).
Amazon EC2 is a cloud compute service offered by AWS that allows you to create virtual servers on demand. Each virtual server you create is called an EC2 instance. Whatever you can do with the server you can do it with EC2 instance without being in trouble of purchasing those machines, installing them, laying down storage and networking and maintaining them for servers. In short, if you need the server you can just launch EC2 instance and it will be available to you. Got an idea of EC2? Now let’s see how Amazon EBS can help us.
Amazon EBS is the most common block-level storage service at AWS. Block-level storage means if you have a file with a lot of data and you want to change any part of that file you will just simply going to change that block of data rather than updating the whole file.
When you launch an EC2 instance, you need some kind of block storage to go with it.
Here comes Amazon EBS into the picture. Amazon EBS will provide you the storage which can be as large as you need, that can be up to many terabytes in size. You can just attach your EBS volume with your EC2 instance. EBS volumes live independently of the EC2 instance.
This EC2 instance when connects to EBS volume, now it has direct access to it and nobody else can access that this is how they maintain security. To give you an example, EC2 instance and EBS work the same as your laptop and your drive. Drive has all the information about your laptop. When you get a new laptop, you simply attach the drive to it and now you have your old data in a new laptop as well.
One advantage of the fact that EBS lives outside EC2 instance is that suppose you want more and bigger compute. You can simply create a new instance attach your EBS volume to a new one just like we can do it with our drive. Now you have more compute with the same old data from your EBS volumes. This is one of the many advantages that EBS brings to us.
Pricing for Amazon EBS is based on the amount (volume) of Amazon EBS volume that you provision.
For pricing information, see https://aws.amazon.com/ebs/pricing/.
Confirm that you are looking at cost in the correct Region.
2. Amazon Simple Storage Service (Amazon S3):
Amazon S3 is object-level storage.
How Object-level storage works?. Consider you have an image and you want to update that image, you have to update the entire file.
Amazon S3 is a simple and cost-effective way to store and retrieve your data at any time, from anywhere on the web. Amazon S3 is commonly used for scenarios such as basic object storage like images or text files, storage of backups, and many other use cases.
Amazon S3 is built for durability and scalability. S3 offers 99.99% availability with 11 nines of durability.
Amazon S3 stores three copies of our data within the Region (AWS offers services to different regions all over the world. To know more about regions see: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html) that we selected. With this level of durability, we can be sure that we can never lose our data. Amazon S3 is commonly used to store backups in organizations.
Few things to keep in mind while working with Amazon S3:
Your objects are stored in Buckets. Buckets are repositories for your objects that live in a specific region.Bucket names have to be globally unique across all AWS accounts. The reason for this is that our objects are accessible over HTTP or HTTPS.When we create a bucket, we get a URL to that bucket.
Let’s say we create a bucket called demobucket, we will get a link/endpoint, something like this :
http://demobucket.s3.amazonaws.com
Once we have a bucket, we can start uploading objects into that bucket. Suppose we upload an image named demo-image.jpg into our bucket. Now to access that image Amazon S3 will provide us HTTP link something like this:
http://demobucket.s3.amazonaws.con/demo-image.jpg
We can access our object using links specified as above. Don’t worry about security because data is accessed over Http links. S3 provides secure object storage that we control. By default, when you upload an object into a bucket, it is private. That means if we want to share the URL of the object with another person or application, we need to configure the permissions on that object for access.
We can control the bucket and access the object through access control lists, and bucket policies. We can further secure access to S3 by enforcing HTTPS-only connections.
We can write, read, and delete objects containing information from one byte to five terabytes of data per object. Though the size of each object uploaded is limited to 5 terabytes, the overall size limit of the bucket is not limited, which allows for infinite storage. We can store just about anything in S3. It’s simple, flexible, cost-effective, and easy to set up.
3. Amazon Elastic File System(Amazon EFS):
This is the final storage service we are going to see which is Amazon Elastic File System or Amazon EFS. Amazon EFS is similar to Amazon EC2 which provides block storage and attaches to EC2 instance.
For some use cases, we might require different block storage, where we need to have a single store of a shared file system where multiple EC2 instances need to connect. EBS only attaches to one EC2 at a time. Here Elastic File System or EFS comes into the picture.
AWS EFS is designed to be regionally distributed, meaning it doesn’t live inside only one subnet and it can be attached to multiple EC2 instances simultaneously for storage.
For example, if we need a corporate directory, a corporate file store where everyone connects to the same document store, EFS can be a solution for us.
Now, you know about which storage services are available on AWS and can choose one according to your needs.