Object Lifecycle Management
Welcome to CloudAffaire and this is Debjeet
In the last blog post, we have discussed Cross Region Replication or CRR. We have also configured CRR between two buckets.
In this blog post, we are going to discuss Object Lifecycle Management in S3. We are also going to create a Lifecycle rule for an S3 bucket.
Object Lifecycle Management:
You can define a set of rule to cost-effectively manage objects throughout their lifecycle. A lifecycle configuration is a set of rules that define actions that Amazon S3 applies to a group of objects.
There are two types of actions that can be performed on objects using Lifecycle
In transition actions, objects can be moved from one storage class to another storage class. For example, you might choose to transition objects to the STANDARD_IA storage class 30 days after you created them, or archive objects to the GLACIER storage class one year after creating them.
In expiration actions, objects can be deleted after certain expiry time. For example, you might choose to delete objects after 30 days.
- You can’t transition objects that are less than 128 KB to the STANDARD_IA or ONEZONE_IA storage classes.
- You can’t transition objects within the first 30 days.
- You can’t transition from the STANDARD_IA (or ONEZONE_IA) storage class to the STANDARD or REDUCED_REDUNDANCY classes.
- You can’t transition from the ONEZONE_IA storage class to the STANDARD_IA storage class.
- You can’t transition from the GLACIER storage class to any other storage class.
- You can’t transition from any storage class to REDUCED_REDUNDANCY.
- The transition of objects to the GLACIER storage class is one-way.
- Lifecycle configuration on MFA-enabled buckets is not supported.
- Object expiration lifecycle policies do not remove incomplete multipart uploads.
Next, we are going to configure transition and expiration actions on an S3 bucket using Lifecycle rule.
Prerequisite for this demo
One S3 bucket with an object
Create Lifecycle rule:
Step 1: Login to AWS console and click ‘S3’ located under Storage.
Step 2: Click on the bucket name.
Step 3: Navigate to ‘Lifecycle’ located under ‘Management’ and click ‘Add lifecycle rule’.
Step 4: Provide a rule name and click ‘Next’.
Note: You can add a filter using prefix or tag to Lifecycle rule to include a subset f objects from your bucket.
For example suppose you have three objects in your bucket namely object1, object2, and log. We have also tagged object1 with key=’name’ and value=’object1’ and object2 with key=’name’ and value=’object2’
Now below are the scenario and respective filters in Lifecycle rule
Scenario 1: Apply rule to only object2
Scenario 2: Apply rule to object1 and object2
Scenario 3: Apply rule to all objects inside bucket.
Simply make the filter section blank and click ‘Next’
In this demo, we are not applying any filter to our Lifecycle rule.
Step 5: Select ‘Current version’ and click ‘Add transition’.
Note: You configure lifecycle rules by defining rules to transition objects to the Standard-IA, One Zone-IA, and Amazon Glacier storage classes.
Select the transition storage class from the drop down and provide a schedule in days. Click ‘Next’
Step 6: Next, add the expiration action and click ‘Next’.
Note: If your bucket has versioning enabled, there are additional considerations that you have to define during Lifecycle rule creation. This demo is for introductory purpose and our bucket don’t have versioning enabled.
Step 7: Review the Lifecycle rule and click ‘Save’.
Your new Lifecycle rule has been configured successfully
To stop acquiring any cost, remove the Lifecycle rule and delete the bucket once the demo is completed.
Hope you have enjoyed this article, in the next blog, we will discuss server access logging.