A Deeper Insight into Simple Storage Service
S3 is one of the services provided by AWS, which is the most used, after EC2. There is no doubt that it’s one of the most ‘used’ services by developers on the cloud. I have experienced while working with different teams, that they generally don’t leverage or use the power that is provided by S3 to the fullest. I have found that in some cases that can have a huge impact on the overall speed, and cost of development.
So, to begin with, we can skip our discussion about S3 being a storage service, as this is something that is already given and quite basic. Instead, we will introduce some use cases which are generally not used or leveraged due to lack of knowledge or experience. Now, that’s what Learning Series blogs are for, let’s start!
The first one that comes to my mind is the Storage class, this feature is a little bit less leveraged, though it can have a huge impact on the cost of the storage. E.g., just by changing the storage class for our project from S3 standard to Intelligent tiering, we can reduce the overall cost of storage by up to 40% as we had only infrequent access requirements for the stored objects. So,by carefully picking the class of storage we can have a huge impact on the cost of storage for our projects.
The second most important thing that we should be aware of is storage management tools which are inbuilt in S3. Some teams I have seen instead of leveraging the features provided by S3, maybe due to lack of knowledge or due to some old practice, try to develop code to facilitate things for storage management that can otherwise simply be managed through configurations.
One of the missed opportunities is with the replication, that could be used as backup or compliance. Some teams as I have observed write code to move the same objects to two different kinds of storage, i.e., hot store and cold store, etc. Writing your code means a lot of development time, testing, and the increased cost of running that code over a system.
Even if we assume that the code is fully robust and capable of your needs, you still lost a lot of time and money, which could have been saved by simply using the replication features provided by S3 in the management tab of the buckets.
For details regarding them, you can have a look at the official documentation here:
The same can be said for the non-usage of simple life cycle rules.
For details about them, you can have a look at the official documentation here:
Even though the above-mentioned points are the most ignored and useful features available through S3, the list is pretty long. The power that S3 provides is unaccountable!
Therefore, let’s just identify them as there is no rocket science behind learning them. They are indeed very clearly stated and are quite easy to understand through the documentation provided by AWS.
2. Analytics, using tools such as Athena, etc
3. Web hosting, etc
Full list and details can be found here, https://aws.amazon.com/s3/features/?nc=sn&loc=