如何找到运行特定 AMI 的 EC2 实例,以便同时删除 AMI 和 EC2 实例?

3
我已经使用自定义AMI启动了几个EC2实例。现在我想完全删除AMI,因此首先需要终止运行该AMI的所有实例。AWS的API能否实现这一点?
针对投票者:AWS建议的清理过程指示我终止运行AMI的所有实例http://aws.amazon.com/articles/637。参考资料可能已过时,但没有必要对问题进行投票。
3个回答

1
你可以删除AMI而不会删除使用该AMI创建的任何实例。你的问题让人觉得这是不可能的。
你可以轻松浏览AWS Web控制台中的EC2实例,并查看用于创建它们的AMI。或者您可以使用aws ec2 describe-instances命令列出所有实例。该命令的输出将包括用于创建实例的AMI的ID。

1
根据Amazon EC2文档,您无需终止所有运行该AMI的实例,可以保持这些实例运行而取消注册AMI不会影响这些实例的功能。
当您取消注册AMI时,不会影响从该AMI启动的任何实例,也不会影响在AMI创建过程中为实例的根卷创建的快照。您将继续为该快照承担存储费用。取消注册AMI后,您无法使用它来启动新实例。
清理您的Amazon EBS支持的AMI
要清理您的Amazon EBS支持的AMI:
  1. 打开Amazon EC2控制台 https://console.aws.amazon.com/ec2/
  2. 在导航窗格中,选择AMI。选择AMI并记录其ID,这可以帮助您在下一步中找到正确的快照。选择操作,然后选择注销。在确认提示时,选择继续。 AMI状态现在不可用。 注意 在控制台将状态从可用更改为不可用或完全删除AMI之前,可能需要几分钟时间。选择刷新以刷新状态。
  3. 在导航窗格中,选择快照,并选择快照(在描述列中查找AMI ID)。选择操作,然后选择删除快照。在确认提示时,选择是,删除。
  4. (可选)如果您完成了从AMI启动的实例,请终止它。在导航窗格中,选择实例。选择实例,选择操作,然后选择实例状态,然后选择终止。在确认提示时,选择是,终止。

供您参考:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html 或 EC2 文档页面第107页


1
值得注意的是,AMI是自动扩展组(ASG)使用的启动配置的一部分。假设: 1. 您已将ASG的“期望大小”设置为零(例如,将Elastic Beanstalk下线而不删除它);没有正在运行的实例与您感兴趣的AMI 2. 您注销了AMI 3. 您将ASG的期望大小设置为>0 4. 自动缩放程序无法启动实例,因为AMI现在已经消失
AWS EC2在注销时不会警告使用启动配置中的AMI。
您可能需要编写Python/Boto3脚本来查找AMI ID,以便在注销之前获取“使用位置”依赖项,包括实例和启动配置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接