$ aws s3api put-bucket-lifecycle-configuration --bucket my-data-archive
存储是云账单中最容易被忽视的"沉默成本"。你可能每个月在 EBS volumes、Old snapshots、备份文件上花了大把钱却浑然不知。今天我们就来聊聊怎么优化你的云存储账单。
三大云厂商存储层级对比
AWS S3 存储层级
- S3 Standard —— 频繁访问,$0.023/GB
- S3 IA (Infrequent Access) —— 30+ 天不访问,$0.0125/GB
- S3 Glacier Instant —— 90+ 天不访问,$0.004/GB
- S3 Glacier Deep Archive —— 180+ 天不访问,$0.00099/GB
- S3 Intelligent-Tiering —— 自动分层,$0.0025+0.00225/GB
Azure Blob Storage 层级
- Hot —— 频繁访问
- Cool —— 30+ 天不访问
- Cold —— 90+ 天不访问
- Archive —— 180+ 天不访问
GCP Cloud Storage 层级
- Standard —— 频繁访问
- Nearline —— 30+ 天不访问
- Coldline —— 90+ 天不访问
- Archive —— 365+ 天不访问
存储成本浪费的常见原因
1. 僵尸资源
- 已删除 EC2 实例但未删除的 EBS volumes
- 已完成备份但未清理的 snapshots
- 测试时创建的临时存储桶
2. 存储层级选择错误
- 访问频率很低的数据放在 Standard/Hot 层
- 需要快速恢复的数据放在 Archive 层
3. 未设置生命周期策略
数据生成后从未归档或删除。
生命周期策略配置
AWS S3 生命周期规则
{
"Rules": [
{
"ID": "Archive-old-logs",
"Status": "Enabled",
"Filter": {"Prefix": "logs/"},
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
],
"Expiration": {"Days": 2555}
}
]
}
Azure Blob 生命周期管理
# Azure CLI az storage account blob-service-properties update \ --resource-group my-rg \ --account-name mystorage \ --enable-delete-retention true
GCP Storage 生命周期
gcloud storage buckets add-lifecycle-configuration gs://my-bucket \ --lifecycle-file=lifecycle.json
优化策略实战
场景 1:日志归档
Web 服务器日志:
- 0-30 天:Standard(需要频繁访问查询)
- 30-90 天:IA/GLACIER(审计偶尔查看)
- 90+ 天:Deep Archive 或删除
场景 2:数据库备份
PostgreSQL 备份文件:
- 最近 7 天:Standard(快速恢复)
- 8-30 天:IA/Cool(低成本存储)
- 31-90 天:GLACIER/Cold(合规存档)
- 90+ 天:根据合规要求决定保留或删除
场景 3:用户上传文件
用户上传的媒体文件:
- 立即转码为多种分辨率并清理原始文件
- 使用 Intelligent-Tiering 自动优化
- 超过 180 天的未活跃用户文件迁移到 Archive
EBS 存储优化
删除空闲 EBS Volumes
# 查找空闲 volumes(30天无 I/O) aws cloudwatch get-metric-statistics \ --namespace AWS/EBS \ --metric-name VolumeIdleTime \ --dimensions Name=VolumeId,Value=vol-xxxxx
快照清理策略
- 删除关联 AMI 超过 90 天的旧快照
- 使用快照生命周期管理器自动清理
- 考虑将快照复制到低成本区域(如 us-east-2)
成本节省计算
假设你的存储桶当前有 100TB 全部在 S3 Standard:
- 全 Standard:100TB x $0.023 = $2,300/月
- 优化后(30% IA, 50% Glacier, 20% 删除):约 $720/月
- 节省:$1,580/月(约 69%)
存储优化关键要点:
- 建立生命周期策略,让冷数据自动归档
- 使用 Intelligent-Tiering 处理不确定访问频率的数据
- 定期清理僵尸资源和旧快照
- 注意 Archive 层恢复时间和成本
- 监控存储增长率,设置告警
- 考虑跨区域复制和低成本区域存储
云存储优化是最"一劳永逸"的 FinOps 实践——设置好策略,后台自动运行,省钱看得见!