S3 Intelligent-Tiering & Lifecycle Archive
AWS architecture template · Full S3 storage cost optimisation: Intelligent-Tiering for unknown access patterns, lifecycle rules cascade to Glacier and Deep Archive — up to 95 % storage cost reduction.
S3 Intelligent-Tiering & Lifecycle Archive is a free AWS architecture template built with S3, CloudWatch, KMS and SNS. Open it in TheArchitect to edit the diagram, estimate monthly cost, and export the CloudFormation or Terraform that deploys it.
AWS services in this template
- S3×2
- CloudWatch
- KMS
- SNS
Deployment notes
Deploy-ready
- Intelligent-Tiering monitoring fee: $0.0025/1,000 objects >128 KB. Free for objects <128 KB.
- Lifecycle transitions: Standard → Standard-IA (30 days) → Glacier Instant (90 days) → Glacier Flexible (180 days) → Deep Archive (365 days).
- Storage cost per GB: Standard $0.023 → Standard-IA $0.0125 → Glacier $0.004 → Deep Archive $0.00099.
- KMS encryption adds ~$0.03/10,000 requests. Use SSE-S3 for cold archive tiers to minimise key usage charges.
Generated CloudFormation — 5 resources
| Logical ID | Resource type |
|---|---|
| S3HotStandardITs3 | AWS::S3::Bucket |
| S3ArchiveGlacierDAs3 | AWS::S3::Bucket |
| KMSCMKhottierkms | AWS::KMS::Key |
| LifecycleSNSAlertssns | AWS::SNS::Topic |
| StorageGrowthAlarmcloudwatch | AWS::CloudWatch::Alarm |
View the full CloudFormation template
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "Generated by TheArchitect — https://www.thecloudarchitect.dev",
"Metadata": {
"TheArchitect": {
"Edges": [
{
"From": "KMSCMKhottierkms",
"To": "S3HotStandardITs3",
"Label": "encrypt hot objects"
}
]
}
},
"Resources": {
"S3HotStandardITs3": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": "cost-lifecycle-hot",
"VersioningConfiguration": {
"Status": "Enabled"
},
"OwnershipControls": {
"Rules": [
{
"ObjectOwnership": "BucketOwnerEnforced"
}
]
},
"BucketEncryption": {
"ServerSideEncryptionConfiguration": [
{
"ServerSideEncryptionByDefault": {
"SSEAlgorithm": "aws:kms"
}
}
]
},
"PublicAccessBlockConfiguration": {
"BlockPublicAcls": true,
"BlockPublicPolicy": true,
"IgnorePublicAcls": true,
"RestrictPublicBuckets": true
}
}
},
"S3ArchiveGlacierDAs3": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": "cost-lifecycle-archive",
"OwnershipControls": {
"Rules": [
{
"ObjectOwnership": "BucketOwnerEnforced"
}
]
},
"BucketEncryption": {
"ServerSideEncryptionConfiguration": [
{
"ServerSideEncryptionByDefault": {
"SSEAlgorithm": "AES256"
}
}
]
},
"PublicAccessBlockConfiguration": {
"BlockPublicAcls": true,
"BlockPublicPolicy": true,
"IgnorePublicAcls": true,
"RestrictPublicBuckets": true
}
}
},
"KMSCMKhottierkms": {
"Type": "AWS::KMS::Key",
"Properties": {
"Description": "KMS CMK for hot-tier S3 encryption — enables CloudTrail key usage audit",
"KeyUsage": "ENCRYPT_DECRYPT",
"EnableKeyRotation": true,
"Enabled": true
}
},
"LifecycleSNSAlertssns": {
"Type": "AWS::SNS::Topic",
"Properties": {
"TopicName": "cost-s3-lifecycle-alerts",
"DisplayName": "S3 Lifecycle Alerts"
}
},
"StorageGrowthAlarmcloudwatch": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"AlarmName": "cost-s3-storage-spike",
"AlarmDescription": "Alert when S3 BucketSizeBytes increases by >20 % week-over-week — unexpected growth",
"Namespace": "AWS/S3",
"MetricName": "BucketSizeBytes",
"Statistic": "Average",
"Period": 86400,
"EvaluationPeriods": 1,
"ComparisonOperator": "GreaterThanThreshold",
"TreatMissingData": "notBreaching"
}
}
}
}Generated by TheArchitect from the diagram above. Review values such as names, CIDR ranges and instance sizes before deploying to your account.
Related templates
- Security BaselineSAA-C03: WAF + KMS + Secrets Manager + CloudTrail → S3 + CloudWatch + SNS
- CloudTrail AuditSAA-C03: CloudTrail multi-region logging → S3 + KMS + CloudWatch + SNS alerts
- Twitter/X Scale TestCloudFront behavior split, API Gateway VPC Link, public/internal ALBs, private app/data subnets, queues, media, and data stores