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.