查找由 ami 创建且已被删除的所有快照

查找由 ami 创建且已被删除的所有快照

最近,我们清理了 Amazon Web Services 账户中的驱动器。我们删除了 200 多个 AMI。因为这些 AMI 的快照不会在删除 AMI 时被删除。

如何找到由 AMI 创建的快照列表,其中创建快照的 AMI 已被删除?

我无法从 AWS 管理控制台或 AWS CLI 找到任何东西。

答案1

如果您仅在创建 AMI 时创建快照,则您可能能够使用 CLI 或 powershell 工具可靠地执行此操作:

  • 获取由您的 AWS 账户创建的所有 EC2 快照(OwnerID = 您的 AWS 账户)
  • 获取与仍在运行的卷相关的快照
    • 在这些快照中,尝试将其 VolumeID 与仍在运行的卷的 VolumeID 进行匹配。输出匹配的 SnapshotID。
  • 获取孤立的快照/卷
    • 在这些快照中,尝试将其 VolumeID 与仍在运行的卷的 VolumeID 进行匹配。输出与仍在运行的卷不匹配的快照的 SnapshotID。

你需要:

但这无法确定这些卷是否与您要删除的 AMI 一起生成……只能确定它们已被孤立。考虑一下,这可以为您节省很多未来的麻烦和标记您的 EC2 卷在创建时,会提供一些简单的元数据,说明谁负责创建它们,以及创建它们的目的。

答案2

如果您尝试删除与现有 AMI 绑定的快照,它将出现错误并询问您是否确定。

我所做的就是选择所有快照并点击删除,然后当系统提示某些 AMI 仍与现有 AMI 绑定时,我按下了取消。这可能是解决这个问题最快但最可怕的方法。

答案3

我编写了一个小型 Python 脚本,它可以生成包含有关快照使用情况的所有信息的 csv 报告。它包括有关链接卷、实例和 amis 的信息。

https://gist.github.com/Eyjafjallajokull/4e917414cfb191391f9e51f6a8c3e46a

答案4

使用今天的工具对问题的最新回答:我遇到了同样的问题,对这里介绍的选项感到失望。幸运的是,您现在可以登录 Amazon Cloudtrail 并按时间、事件名称:DeregisterImage、
资源类型:EC2 Ami 进行筛选。

这将为您提供一个 AMI ID 列表(如果愿意,可以下载 CSV),您可以使用它在快照中进行搜索。

相关内容