最后,我们得到了相当数量的AWS EC2快照,其中的AMI已经被删除,但是快照被抛在后面去腐烂。我想要一种非体力的方法来识别和删除这些孤儿,以节省我们的钱和空间。
理想情况下,我正在考虑使用CLI的bash脚本,但我的AWS很弱。我想是有人做过这件事,但我找不到真正有效的脚本。
在最好的情况下,这也将检查卷和清理,以及,但这可能更适合于第二个问题。
发布于 2017-09-11 14:59:08
我在GitHub上使用了Rodrigue (bonclay7)的以下脚本,它运行得很好。
https://github.com/bonclay7/aws-amicleaner
命令:
amicleaner --check-orphans
在文档博客帖子中,它做了更多的事情:
它实际上做了更多的事情,在今天它允许:
发布于 2017-03-22 21:22:17
这里是Daniil所要求的GitHub Gist代码片段。
它使用所有图像及其快照的列表,并将ID与所有快照ID列表进行比较。剩下的都是孤儿。这些代码的工作原理与上面的答案相同,但格式化更好,可读性更强。
代码利用了JMESPath with --query Snapshots[*].SnapshotId
选项(如果它已经在您的发行版中),也可以使用jp命令行实用程序。使用--output text
将输出格式化为文本。这里是一个链接到API的参考和几个例子。它比grep/awk/sort/uniq/tr管道的长链稍微优雅一些。
Todd警告:不要错误地使用'jq‘实用程序,它使用不同的查询语言来解析json文档。
发布于 2019-06-30 02:56:08
我编写了snapshots.py脚本,它迭代所有快照(在定义的区域列表中)并生成report.csv
。此文件包含有关所有快照引用的实例、AMI和卷的信息。
还有交互删除悬空快照的命令。
https://devops.stackexchange.com/questions/623
复制相似问题