Lifecycle Expiration Workflow

Overview

S3 Lifecycle Expiration aims at freeing up storage space and thus, reducing ongoing costs associated with storage utilization. It is implemented through setting a lifecycle policy which automates the management of objects within your S3 buckets.

The expiration lifecycle policy defines when objects should be deleted. Within the lifecycle policy, S3 expiration actions provide the capability to permanently eliminate non-current versions of S3 objects or permanently delete objects that have expired in the past.

Lifecycle Expiration configuration is set at bucket level and applies immediately to the objects contained in the bucket, both existing objects and those that you add later. It is composed of two main elements:

  • A filter that enables you to target certain objects.

  • A time span that triggers the removal of objects that correspond to the filtering rules.

For example, if you set a configuration rule with an expiration action that causes objects, within the filtering rule, to expire 30 days after creation, the system will queue for removal, any existing, filtered objects that are more than 30 days old.

Configuration

This section provides a detailed procedure to configure Lifecycle Expiration workflows.

Operation

This section provides procedures to operate Lifecycle Expiration workflows.

Monitoring and Troubleshooting

This section provides information on monitoring and troubleshooting Lifecycle Expiration workflows.

Technical Architecture

For a further understanding of the Lifecycle Expiration architecture and process, refer to the diagram below:

The following components enter in the making of Lifecycle Expiration:

Lifecycle Conductor

The conductor lists all available buckets and checks if they have Lifecycle Expiration workflows attached to them. Bucket are listed directly from MongoDB, so this is not an S3 operation.

By default, buckets are listed every 12 hours. The scan starts at 12:00 AM and 12:00 PM.

Note

You can modify this cron interval in specific cases only, for example to fix issues when the Lifecycle Conductor Cron Is Working too Fast.

The conductor pods are named artesca-data-backbeat-lifecycle-producer-{ID}.

Lifecycle Bucket Processor

The Lifecycle Conductor and Bucket Processor are shared between Transition/Expiration workflows. There is a single scan for both.

The bucket processor listens to the {ZENKO_ID}.backbeat-lifecycle-bucket-tasks topic, and for each “bucket scan order” it does a paginated listing of the bucket (1000 objects by default) to identify eligible objects. Workflow rules are then checked for each object and Transition/Expiration actions are triggered accordingly.

When the bucket processor encounters an expired object, it pushes a delete order into the {ZENKO_ID}.backbeat-lifecycle-object-tasks topic.

The bucket processor pods are named artesca-data-backbeat-lifecycle-bucket-processor-{ID}.

Lifecycle Object Processor

The object processor deletes the expired objects. It listens to the {ZENKO_ID}.backbeat-lifecycle-object-tasks topic for deletion orders coming from the bucket processor.

The bucket processor pods are named artesca-data-backbeat-lifecycle-object-processor-{ID}.

Internal Cloudserver

All Lifecycle S3 operations go through the Internal Cloudserver.

The main operations performed are:

  • List Objects: Performed by the bucket processor.

  • Head Object: Performed by the bucket processor and the object processor.

  • Get Bucket Versioning: Performed by the bucket processor.

  • Get Object Tagging: Performed by the bucket processor.

  • Delete Object: Performed by the object processor.