S3 Intelligent-Tiering is actually a complex system that doesn’t move data for cost savings; it decides where to place data to achieve cost savings based on access patterns.
Let’s watch it work. Imagine a bucket with some files:
aws s3 ls s3://my-intelligent-tiering-bucket/
2023-10-27 10:00:00 1024 file1.txt
2023-10-27 10:01:00 2048 file2.txt
2023-10-27 10:02:00 4096 file3.txt
We’ve configured Intelligent-Tiering on this bucket. Initially, all objects are placed in the Frequent Access tier.
{
"Id": "intelligent-tiering-config",
"Status": "Enabled",
"Tiering": [
{
"AccessTier": "FREQUENT_ACCESS",
"DaysAfterIntroduction": 0,
"DataTransferStorageClass": "INTELLIGENT_TIERING_FA"
},
{
"AccessTier": "INFREQUENT_ACCESS",
"DaysAfterIntroduction": 90,
"DataTransferStorageClass": "INTELLIGENT_TIERING_IA"
},
{
"AccessTier": "ARCHIVE_ACCESS",
"DaysAfterIntroduction": 180,
"DataTransferStorageClass": "INTELLIGENT_TIERING_ARCHIVE"
},
{
"AccessTier": "DEEP_ARCHIVE_ACCESS",
"DaysAfterIntroduction": 365,
"DataTransferStorageClass": "INTELLIGENT_TIERING_DEEP_ARCHIVE"
}
],
"Monitoring": {
"Status": "ENABLED"
}
}
Now, let’s simulate access:
aws s3 cp s3://my-intelligent-tiering-bucket/file1.txt .
aws s3 cp s3://my-intelligent-tiering-bucket/file2.txt .
After a few days, Intelligent-Tiering’s monitoring system observes that file1.txt and file2.txt are being accessed frequently. It automatically transitions them to the INTELLIGENT_TIERING_FA storage class (which is effectively the same as S3 Standard, but within the Intelligent-Tiering construct). file3.txt, untouched, remains in the initial placement.
A month later, no one accesses file1.txt or file2.txt again. file3.txt is still sitting there. After 90 days from its creation (or last transition), Intelligent-Tiering’s monitoring detects that file3.txt hasn’t been accessed. It then transitions file3.txt to the INTELLIGENT_TIERING_IA storage class. The cost of file3.txt drops.
What happens if you suddenly need file3.txt?
aws s3 cp s3://my-intelligent-tiering-bucket/file3.txt .
Intelligent-Tiering sees this access. It immediately moves file3.txt back to the INTELLIGENT_TIERING_FA tier. There’s no retrieval fee, no manual intervention. The system just reacts. The "automation" isn’t about moving data on a schedule you define; it’s about the system observing access patterns and making its own decisions to optimize cost.
The core problem Intelligent-Tiering solves is the "set it and forget it" dilemma for storage costs. Manually managing lifecycle policies to move data between Standard, IA, and Archive tiers requires knowing your access patterns in advance and betting on them staying consistent. But real-world access patterns are often unpredictable or change over time. Intelligent-Tiering removes this guesswork. It continuously analyzes access patterns and automatically moves data between tiers optimized for frequent access, infrequent access, and archive. There’s a small monthly per-object monitoring and automation charge, but for many workloads, the savings on storage outweigh this. It also includes an optional "Archive Access" tier and "Deep Archive Access" tier, which have their own DaysAfterIntroduction settings (180 and 365 days respectively) for even deeper savings.
The most surprising thing about S3 Intelligent-Tiering is that it doesn’t actually move your data to different S3 storage classes in the traditional sense. Instead, it places objects into one of two internal access tiers: Frequent Access (FA) and Infrequent Access (IA). If an object is accessed, it’s placed in FA. If it’s not accessed for 30 consecutive days, it’s automatically moved to IA. The "storage classes" you see in the configuration (INTELLIGENT_TIERING_FA, INTELLIGENT_TIERING_IA, etc.) are actually just representations of these internal tiers managed by the Intelligent-Tiering service. The actual underlying S3 storage classes (like S3 Standard or S3 Standard-IA) are abstracted away. The system handles the transitions between these internal tiers, and you’re billed based on the tier the object currently resides in. It’s not a lifecycle policy you configure; it’s a dynamic, data-driven optimization service.
The next problem you’ll encounter is understanding the nuanced billing for Intelligent-Tiering, especially the per-object monitoring and automation fee.