如何设置 AWS EBS 卷快照删除策略?
How to set AWS EBS Volume Snapshot deletion Policy?
我的关键 EBS 卷很少被定期备份为快照。有什么办法可以设置删除策略,只保留最近的两个快照?
例如:
在其中一个环境中,我有来自 10 个 EBS 卷的近 300 个快照。一旦我有了这个政策,它应该减少到 20 个快照并保持在那个水平。
这里有一些代码可以对所有 EBS 卷进行快照,然后只保留最新的 2 个快照。您还可以将其修改为仅快照具有特定标签的卷。根据需要替换您自己的区域。
#!/usr/bin/env python
import boto.ec2, os
MAX_SNAPSHOTS = 2 # Number of snapshots to keep
# Connect to EC2 in this region
connection = boto.ec2.connect_to_region('ap-southeast-2')
# Get a list of all volumes
volumes = connection.get_all_volumes()
# Create a snapshot of each volume
for v in volumes:
connection.create_snapshot(v.id)
# Too many snapshots?
snapshots = v.snapshots()
if len(snapshots) > MAX_SNAPSHOTS:
# Delete oldest snapshots, but keep MAX_SNAPSHOTS available
snap_sorted = sorted([(s.id, s.start_time) for s in snapshots], key=lambda k: k[1])
for s in snap_sorted[:-MAX_SNAPSHOTS]:
print "Deleting snapshot", s[0]
connection.delete_snapshot(s[0])
只是 运行 它作为日常 cron
工作。
从 2018 年年中开始,现在可以使用 Amazon Data Lifecycle Manager 实现自动化。您设置规则,例如拍摄快照的频率和保留多少(或多长时间),其余的由它完成。 (在停止拍摄快照后,保留多少与保留多长时间之间的差异开始起作用。)
我知道通常 Stack Overflow 不赞成只是链接的答案,但虽然它在概念上很简单,但要解释的部分太多了,我无法在此处完整记录。请参考AWS官方文档。
我的关键 EBS 卷很少被定期备份为快照。有什么办法可以设置删除策略,只保留最近的两个快照?
例如: 在其中一个环境中,我有来自 10 个 EBS 卷的近 300 个快照。一旦我有了这个政策,它应该减少到 20 个快照并保持在那个水平。
这里有一些代码可以对所有 EBS 卷进行快照,然后只保留最新的 2 个快照。您还可以将其修改为仅快照具有特定标签的卷。根据需要替换您自己的区域。
#!/usr/bin/env python
import boto.ec2, os
MAX_SNAPSHOTS = 2 # Number of snapshots to keep
# Connect to EC2 in this region
connection = boto.ec2.connect_to_region('ap-southeast-2')
# Get a list of all volumes
volumes = connection.get_all_volumes()
# Create a snapshot of each volume
for v in volumes:
connection.create_snapshot(v.id)
# Too many snapshots?
snapshots = v.snapshots()
if len(snapshots) > MAX_SNAPSHOTS:
# Delete oldest snapshots, but keep MAX_SNAPSHOTS available
snap_sorted = sorted([(s.id, s.start_time) for s in snapshots], key=lambda k: k[1])
for s in snap_sorted[:-MAX_SNAPSHOTS]:
print "Deleting snapshot", s[0]
connection.delete_snapshot(s[0])
只是 运行 它作为日常 cron
工作。
从 2018 年年中开始,现在可以使用 Amazon Data Lifecycle Manager 实现自动化。您设置规则,例如拍摄快照的频率和保留多少(或多长时间),其余的由它完成。 (在停止拍摄快照后,保留多少与保留多长时间之间的差异开始起作用。)
我知道通常 Stack Overflow 不赞成只是链接的答案,但虽然它在概念上很简单,但要解释的部分太多了,我无法在此处完整记录。请参考AWS官方文档。