首页/数据/备份与容灾速查/EBS 快照生命周期 DLM
数据库与云备份56 条

EBS 快照生命周期 DLM

Amazon Data Lifecycle Manager 自动创建与保留 EBS 快照:按 cron 计划、保留 N 份、可选跨区域复制,替代自建轮换脚本。

备份与容灾速查数据更新于 2026-10-13

EBS 快照生命周期 DLM

Amazon Data Lifecycle Manager 用策略自动管理 EBS 快照:按 cron 计划创建、按份数或时间区间保留、可选跨区域复制与归档到快照归档层。它替代了自建轮换脚本,把『谁负责删旧快照』从人的记忆变成服务端规则。策略是按标签或卷类型匹配目标卷的,匹配不到就什么都不做,也不会报错。

基本信息

适用平台AWS EC2 / EBS,需创建或指定执行角色
创建参数Schedule(cron 表达式)、RetainRule、TargetTags 或按卷类型选择
扩展能力CrossRegionCopyRules 跨区复制、归档到 snapshot archive 层
执行角色AWSDataLifecycleManagerDefaultRole 或自定义角色,需快照与 KMS 相关权限

典型使用场景

  • 生产卷每日快照并保留 7 份,替代人工轮换脚本
  • 按标签统一纳管:给需保护的卷打上 Backup=daily 标签即自动纳入
  • 跨区域复制:策略里同时配置异地副本,满足地域级容灾
  • 成本优化:到期自动删除并归档旧快照,避免快照费用持续增长
  • 合规留存:按月份保留长期快照,供审计调取

创建生命周期策略(示意)

创建生命周期策略(示意)
aws dlm create-lifecycle-policy \
  --description "daily-ebs-prod" --state ENABLED \
  --execution-role-arn arn:aws:iam::123456789012:role/AWSDataLifecycleManagerDefaultRole \
  --policy-details file://dlm-policy.json
# dlm-policy.json 关键内容:
#   Schedule: cron(0 2 * * ? *)     每天 02:00 创建
#   RetainRule.Count: 7             保留 7 份
#   TargetTags: [{Key: Backup, Value: daily}]
#   CrossRegionCopyRules: 复制到异地区域
aws dlm get-lifecycle-policies --state ENABLED   # 核对策略状态
aws ec2 describe-snapshots --owner-ids self --filters Name=tag:dlm:managed \
  --query 'Snapshots[*].[SnapshotId,StartTime,VolumeId]'

排查要点

现象常见原因检查方式
策略存在但没产生快照标签或卷类型没匹配上核对 TargetTags 与实际卷标签
快照创建失败角色缺少 CreateSnapshot 或 KMS 权限看策略的执行错误码与 CloudTrail
旧快照没被删除保留规则与预期不符或存在额外规则回读策略详情,比较实际保留份数
跨区副本缺失复制规则缺少目标区密钥权限检查目标区域是否存在对应快照
默认快照不具备应用一致性:需要一致性的场景要结合预置脚本冻结文件系统或暂停写入,或者选择支持应用一致快照的方案。
同一卷可以被多条策略匹配,保留份数按各自规则分别计算,容易出现比预期更多的快照;上线前先用 describe-lifecycle-policies 列出全部策略,确认没有重叠规则。归档到快照归档层成本更低,但有最短保存期限与取回耗时,具体限制以平台文档为准。

易错点

  • 只建策略不核对标签匹配:目标卷一个都没覆盖,且失败是静默的,账单与快照数量都看不出异常
  • 保留份数设置过少:长假期后缺少可用恢复点
  • 执行角色权限不足:创建与删除快照、KMS 使用缺一不可
  • 把快照当备份:快照在同一个账户与区域内,误删与账号级风险仍然存在

数据来源与参考

  • AWS 文档(Amazon Data Lifecycle Manager)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌