如何找到运行某个AMI的EC2实例,以便删除AMI和EC2实例



我已经用我的自定义AMI启动了几个EC2实例。现在我想完全删除AMI,所以首先我需要终止所有运行该AMI的实例。是否可以使用AWS的API?

对于向下的投票者:AWS建议的清理过程指示我终止所有运行AMI的实例http://aws.amazon.com/articles/637.这个提法可能已经过时,但没有必要对这个问题投反对票。

您可以删除AMI,而无需删除使用该AMI创建的任何实例。你的问题听起来不可能。

您可以在AWS web控制台中轻松浏览EC2实例,并查看创建它们所使用的AMI。或者可以使用aws ec2 describe-instances命令列出所有实例。该命令的输出将包括用于创建实例的AMI的ID。

无需终止运行该AMI的所有实例,根据Amazon EC2文档,您可以保持这些实例的运行。取消注册AMI不会影响这些实例的功能。

当您注销AMI时,它不会影响您已经从AMI启动的任何实例,也不会影响在AMI创建过程中为实例的根卷创建的快照。您将继续为该快照承担存储成本。在注销AMI之后,就不能使用它来启动新实例。

清理您的亚马逊EBS支持的AMI

清理您的Amazon EBS支持的AMI

  1. 打开亚马逊EC2控制台https://console.aws.amazon.com/ec2/.
  2. 在导航窗格中,选择AMI。选择AMI,并记下它的ID——这可以帮助您在下一步中找到正确的快照。选择"操作",然后选择"取消注册"。当系统提示确认时,请选择"继续"。AMI状态现在不可用。注意控制台可能需要几分钟的时间才能将状态从可用更改为不可用,或者从列表中完全删除AMI。选择"刷新"以刷新状态
  3. 在导航窗格中,选择快照,然后选择快照(在Description列中查找AMI ID)。选择"操作",然后选择"删除快照"。当系统提示确认时,请选择"是"、"删除"
  4. (可选)如果完成了从AMI启动的实例,请终止它。在导航窗格中,选择实例。选择实例,依次选择"操作"、"实例状态"one_answers"终止"。当系统提示确认时,选择"是"、"终止"

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

另外值得注意的是,AMI是自动缩放组(ASG)使用的启动配置的一部分。假设:1.您已将ASG的"所需大小"设置为零(例如,使Elastic Beanstalk脱机而不删除它);没有与您感兴趣的AMI相关的正在运行的实例2.您取消了AMI的注册3.您将ASG的所需大小设置为>04.自动缩放器无法启动实例,因为AMI现在已经失去

AWS EC2在取消注册时不会对启动配置中使用的AMI发出警告。

您可能需要编写Python/Boto3脚本,在两个实例和启动配置中查找AMI ID,以在取消注册之前获得"使用位置"依赖关系。

最新更新