lifecycle_rules
Lifecycle rules for object management. Each rule can define expiration or transition policies. Each object supports: - prefix: Object key prefix filter (optional) - expiration_days: Days until object expiration (optional) - transition_days: Days until storage class transition (optional) - transition_class: Target storage class for transition (optional) Valid transition classes: STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, DEEP_ARCHIVE
Overview
Lifecycle rules automate object transitions between storage classes and object expiration. Use them to optimize storage costs and manage data retention.
Default Value
lifecycle_rules = []
Rule Structure
lifecycle_rules = [
{
prefix = "logs/"
expiration_days = 90
},
{
prefix = "archives/"
transition_days = 30
transition_class = "GLACIER"
}
]
Storage Classes
| Class | Use Case | Min Duration |
|---|---|---|
STANDARD_IA | Infrequent access | 30 days |
ONEZONE_IA | Non-critical, infrequent | 30 days |
INTELLIGENT_TIERING | Unknown access patterns | None |
GLACIER_IR | Instant retrieval archives | 90 days |
GLACIER | Long-term archives | 90 days |
DEEP_ARCHIVE | Rarely accessed archives | 180 days |
Common Patterns
Log Retention
{
prefix = "logs/"
expiration_days = 365
}
Tiered Archival
{
prefix = "data/"
transition_days = 90
transition_class = "GLACIER"
}
Best Practices
- Use prefix filters for targeted rules
- Consider minimum storage duration charges
- Test rules with abort incomplete multipart upload
- Use lifecycle rules with versioning to manage old versions
Full Module Example
module "s3_bucket" {
source = "registry.patterneddesigns.ca/essentials/s3-bucket/aws"
version = "0.1.0"
# lifecycle_rules
lifecycle_rules = "..."
# Other required inputs
bucket_name = "..."
}