如何删除EC2 AMI

我知道命令ec2-create-image instance-id将创buildec2实例的映像,创build快照文件并注册为AMI。 但删除相关的快照文件和取消注册AMI的图像等效命令是什么?

更新了aws文档的答案:

  1. 通过以下url打开Amazon EC2控制台: https://console.aws.amazon.com/ec2/ 。
  2. 在导航栏中,validation您的地区。
  3. 在导航面板中,点击AMI。
  4. selectAMI,单击操作,然后单击取消注册。 当提示确认时,请点击继续。
  5. 在导航窗格中,单击快照。
  6. select快照,单击操作,然后单击删除。 当提示确认时,单击是,删除。

希望这能帮助像我这样的人! :d

通常有 4个步骤,您正在寻找:

  1. 使用AMI终止实例(尤其是针对S3支持的AMI的推荐做法) [删除任何types的AMI之前不需要]
  2. 使用ec2-deregister注销AMI
  3. 使用ec2-delete-bundle (用于S3)或ec2-delete-snapshot (用于EBS) ec2-delete-snapshot支持AMI的捆绑包/快照。
  4. 删除EBS卷(除非它们被设置为在终止时删除,在这种情况下,它们将在步骤#1中被删除)。 对于S3支持的实例,这不是必需的。 [同样,如果您只想删除AMI,则不需要终止实例或删除卷。]

请记住,快照和图像是独立的。 您可以从快照创buildEBS卷,并将其用作辅助驱动器而不是引导驱动器。 此外(就Linux实例而言),可以从现有的快照创build新的映像 – 这有助于理解不是每个想要删除映像的人都想删除关联的快照。 (尽pipe您可以注册快照以创buildWindows AMI,但AMI不可启动。)

值得注意的是,在注销AMI之前,AWS不会让您删除与AMI关联的快照。

关注上述步骤2和步骤3,首先需要查找与AMI关联的快照ID。 这应该被列为块设备映射的一部分。 通常情况下,根EBS卷的安装点为/ dev / sda1。 您可以从命令行注销AMI(或使用AWS控制台),然后删除快照(再次从命令行或AWS控制台)。

如果您需要更频繁地执行此任务,则需要编写该过程的脚本。 Python Boto等一些库包含一个函数来完成这个工作:

 deregister_image(image_id, delete_snapshot=False) Unregister an AMI. Parameters: image_id (string) – the ID of the Image to unregister delete_snapshot (bool) – Set to True if we should delete the snapshot associated with an EBS volume mounted at /dev/sda1 

例如,一个示例脚本(完全未经testing,只是拼凑在一起 – 使用风险自负!)基于上述可能看起来像:

 #!/usr/bin/env python import os import sys def ec2delete(imageid=None): conn = boto.ec2.connect_to_region('your_region', aws_access_key_id='your_key', aws_secret_access_key='your_secret') conn.deregister_image(imageid, delete_snapshot=True) if __name__ == '__main__': from optparse import OptionParser parser = OptionParser() options, args = parser.parse_args() sys.stderr.write("Deleting %s and snapshots\n" % str(args)) ec2delete(args)