Co-Author: Sushant Paudyal

Amazon S3 is an object storage service which stores data in buckets. You can store as many objects as you want in an S3 bucket and modify the contents of the bucket as well. A single object can be upto 5 TB in size. The reason why it is called object storage is because if you want to modify the contents of the bucket, you need to update the objects and upload them again, unlike block storage where you can modify only the required content, which is present in the form of blocks (parts) like Amazon EBS offers. Objects can be almost any data file, such as image, video or server logs. You can control the data in the S3 storage using AWS Identity and Access Management (IAM) policies, Amazon S3 bucket policies or any other control lists.

Now, let’s demonstrate the Amazon S3 Storage Classes that you can choose from for selecting the best storage plan for your data:

1. Amazon S3 Standard: This class is for storing data for high availability and frequent access. This offers you regular access with low latency in data retrieval and input. It is resilient against events that impact the entire Availability Zone because it replicates your data as soon as it is uploaded in your S3 bucket.

2. Amazon S3 Standard Infrequent Access: This storage class is used for the data that is not frequently accessed but needs rapid processings when in use. This offers a low per GB price for usage so that you can work on your storing data which is not accessed regularly. Data is replicated in other availability zones as well.

3. Amazon S3 One-Zone Infrequent Access: This tier offers similar features to Amazon S3 Standard Infrequent Access but the data is only stored and available in one availability zone and is not replicated in other zones. Hence, this is a cheaper option if you want to store the data which you don’t frequently access but need rapid processings when you use them.  

4. Amazon S3 Glacier: This class mainly deals with retrieval of data from the buckets. With Amazon S3 Glacier, you can save upto 68% of storage costs as compared to S3 Standard Infrequent Access. Its main purpose is archiving and backing up the objects which are replicated in multiple availability zones.  

5. Amazon S3 Intelligent-Tiering: This is generally used for unpredictable objects which you are not sure about usage and short or long term storage. So, Amazon S3 Intelligent-Tiering uses lifecycle configuration where it detects the usage of the objects in the S3 buckets and places and changes them into different storage classes accordingly. S3 Intelligent-Tiering monitors access patterns and moves objects that have not been accessed for 30 consecutive days to the Infrequent Access tier and after 90 days of no access to the Archive Instant Access tier. For data that does not require immediate retrieval, you can set up S3 Intelligent-Tiering to monitor and automatically move objects that aren’t accessed for 180 days or more to the Deep Archive Access tier to realize up to 95% in storage cost savings.

6. Amazon S3 Glacier Deep Archive: This storage class is Amazon’s lowest cost storage which you can use for storing long-term data which are generally accessed once or twice a year. It is used for backup and disaster recovery use cases as well, as data in the storage is replicated in at least three Availability Zones around the world and the general retrieval time is approximately 12 hours. 

Amazon S3 data can be replicated in multiple AWS Regions if you want, but you will have to configure that yourself. Within an Amazon S3, there are three major requests you can send that will help you operate with the service:

  • GET: this request is used to retrieve a certain data/event. You must have READ access to use this operation.
  • PUT: this request adds an object to the S3 bucket. You must have WRITE permissions to access to use this operation.
  • COPY: this request creates a copy of the desired object which is stored in the S3 bucket.

    Pricing for Amazon S3:

    For S3, pricing is done according to what services you use for what time. It is a pay-as-you-go model and it depends on these variables for price allocation:

    1. Storage class type
    2. Storage
    3. Data transfers
    4. Request and data retrievals
    5. Management and analytics
    6. Replication
    7. S3 Object Lambda

    For detailed pricing information, visit the official AWS website by clicking here.

     

    Summary:

    1. Amazon S3 is a service which helps you store as many resources as you want in an S3 bucket and modify the contents of the bucket.
    2. Objects can be in the form of almost any data file, such as image, video or server logs.
    3. You can control the data in the S3 storage using AWS Identity and Access Management (IAM) policies, Amazon S3 bucket policies or any other control lists.
    4. AWS offers you different storage classes with different prices you can choose from according to your requirements.
    5. You are charged in a pay-as-you-go model according to the amount of resources you use and the amount of time you use these resources.