AWS storage classes represents the “classification” assigned to each object in S3. There are several classes and all are defined as per requirement –
- You may have object that is not required to be accessed frequently
- You may have object which is required and frequently accessed
- Even you may have object which is a copy of your original data, stored just for backup and requires less maintenance.
You may have several types of requirement of accessing and storing the object. Why pay a high cost when object is not such important, maybe pay as you go is a suitable option at times. AWS has various classes which define the storage cost, Object availability, Object durability and frequency of access to the object. Based on these attributes and customer requirement, any suitable class may be selected.
Related – Amazon EC2
AWS Storage Classes:
By default, the storage process of S3 is “Standard”
- It’s a default storage classes for S3. When you upload an object to S3, it is uploaded to standard classes
- Its designed for general, all-purpose storage
- 99.99999999999% object durability (percentage over a year time period that a file is stored in S3 will NOT be lost) which means there is a 0.000000001% chance of a file in S3 being lost in an year
- 99.99% object Availability (percentage over a year time period that a file is stored in S3 will be accessible) means there is a 0.01% chance that you won’t be able to access a file stored in S3 in a Year.
- It’s a most expensive storage class.
Reduce Redundancy Storage (RSS):
- This storage is great for backup or for the files that can be reproduced.
- 99.99% object durability
- 99.99% object availability
- This Storage is less expensive than the standard Storage class
Infrequent Access (S3-IA):-
- This class is designed for objects that you don’t access frequently but must be immediately available when required.
- 99.99999999% object durability
- 99.90% object availability
- This class is less expensive than RSS/Standard class
- This class is cheaper among all the classes as it is designed for long term archival storage
- When accessing the object from this class, it may take several hours to be retrieved.
- 99.999999999% object durability
- Very low cost as compared to all the storage classes
Setting/ changing storage class: –
As we know by default, all the new objects uploaded to S3 are set as standard classes. There are 2 ways by which we can set a storage class for any object.
- Setting another storage class during the upload process
- You can manually switch the object storage class by changing the storage class in the object’s properties, see below
Click on object and then its properties
Click on storage class
Select the storage class which you wish to set and the click on save.
Related – Creating S3 Bucket and Folder
Now that we have got some basic understanding on Storage classes, let’s discuss about the Object lifecycle. Suppose we are required to access a file everyday for next 30 days and after 30 days may need to access that file once a week, then for next 90 days and beyond to keep it just in case required. This can be accomplished by using object lifecycle which automates the process of changing the file storage class to meet the usage needs and keeps S3 storage cost as low a possible.
Lifecycle functionality is located on the bucket level. A lifecycle policy can be applied to:
- The entire bucket (applied all the objects in the bucket)
- Once specific folder within a bucket (applied to all the objects in that folder)
- One specific object within a bucket
You can always delete a lifecycle policy or manually change the storage class back to whatever you like. Below example may be able to demonstrate object lifecycle more clearly –