Amazon S3 (Simple Storage Service) is a cloud storage service offered by AWS. It is a scalable, durable, high speed, web-based storage service. As per AWS, S3 is designed for 99.999999999% (11 9's) of durability. In this blog post, we will talk about all these things and try to understand S3 and its use cases in detail.
What is Cloud Storage?
Before we start talking about the Amazon S3, we should first understand what is cloud storage? Cloud storage is a cloud computing model where storage is provided as a service by a cloud provider like AWS. The pricing model used is: pay as you go. So if you need to suddenly store terabytes of data, the option is available by using one of the services like Amazon S3. This removes the need for buying and managing a storage infrastructure on your own and provides easy to go option while you are building your products.
3 terms you should know while working with Amazon S3
- buckets: An Amazon S3 bucket is a cloud storage resource. It is similar to a folder on your local machine but stored in the cloud. Each bucket holds an object with its associated metadata.
- objects: An Amazon S3 object is the actual data you are storing in the bucket. The value of the object is your data which you have pushed for long or short term storage.
- console: Amazon S3 console is the UI provided by AWS to access and manage all the S3 buckets you have created for your data storage purpose.
Benefits of Amazon S3
- Cost-Effective: S3 offers different storage classes which can be utilised to reduce cost while storing a huge amount of data. The S3 Storage Class Analysis can be used to figure out which data can be moved to a different storage class to save cost.
- Durable and Scalable: We have already mentioned that as per AWS S3 is designed for 99.999999999% (11 9's) of durability. To achieve this, AWS stores all the data in S3 to different Availability Zones in a region. Also, S3 is a very scalable service. We don't have to buy anything in advance and can use it if we need a higher amount of storage.
- Security, Compliance and Audit capabilities: S3 has built-in encryption and access management tools. You can encrypt all the data in S3 using Amazon KMS. There are bucket policies available to block public access to buckets and block any request which is not required. S3 is ready for compliance like PCI-DSS, HIPAA/HITECH and GDPR.
- Easy to Manage: S3 can be easily managed using the console provided by AWS. There are other services like Replication, Batch operations, access points, etc. which helps in managing data stored in S3 for various use cases.
- Easy to Process: With so many features packed in one service, S3 became a choice for storing and processing a huge amount of data in the cloud. Service like Amazon Athena allows you to query and process your data directly from S3. You can also use S3 Object lambda transformers to trigger and process the objects using a custom code deployed on Lambda.
Use Cases of Amazon S3
- Data Lake: With the increase in data, a scalable solution is required to process it. S3 is a very good candidate to be utilised as a Data Lake. S3 allows you to store all the data in its raw form and services like Amazon Athena helps you to query on it quickly. Amazon Lake Formation is a service by AWS which helps you to create a Data Lake and utilise it for big data processing.
- Backup and Restore: S3 is also utilised in storing the backup of databases deployed for the application. Amazon RDS also provides you to create and store a backup directly into an S3 bucket and use them to restore it later directly from S3.
- Archives: S3 is also used as an archive service where a huge amount of data that is not utilised frequently can be saved on the cloud safely and at a low cost. The S3 Glacier storage class allow you to store archival data at a cheap cost.
- Disaster Recovery: With the S3 replication feature, we can store mission-critical data in multiple locations so that we can recover it in case of any disaster or when business continuity is threatened.
- Storage for Applications: Some of the applications require storage options. S3 is an obvious choice for this. With all its features we can create an application that can store user and application data safely and reliably.
That's all for the S3 Introduction. I will write a separate post about some of the features of Amazon S3 and also an introduction to the various storage classes offered by Amazon S3.