弃用 AMI - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

弃用 AMI

您可以弃用 AMI,以表明该 AMI 已过期且不应使用。您还可以为 AMI 指定未来弃用日期,表明 AMI 何时过期。例如,您可能会弃用不再主动维护的 AMI,或是已被较新版本取代的 AMI。默认情况下,已弃用的 AMI 不会显示在 AMI 列表中,防止新用户使用过期的 AMI。但是,现有用户和启动服务(如启动模板和 Auto Scaling 组)可以通过指定其 ID 来继续使用已弃用的 AMI。要删除 AMI 以便使用户和服务无法使用,您必须取消注册

AMI 弃用后:

  • 对于 AMI 用户,已弃用的 AMI 不会显示在 DescribeImages API 调用中,除非您指定其 ID 或要求必须显示已弃用的 AMI。AMI 拥有者可继续在 DescribeImages API 调用中看到已弃用的 AMI。

  • 对于 AMI 用户,已弃用的 AMI 无法通过 EC2 控制台进行选择。例如,已弃用的 AMI 不会出现在启动实例向导的 AMI 目录中。AMI 拥有者可继续在 EC2 控制台中看到已弃用的 AMI。

  • 对于 AMI 用户,如果您知道已弃用的 AMI 的 ID,则可以通过 API、CLI 或开发工具包继续使用已弃用的 AMI 启动实例。

  • 启动服务(如启动模板和 Auto Scaling 组)可以继续引用已弃用的 AMI。

  • 使用随后被弃用的 AMI 启动的 EC2 实例不会受到影响,可以停止、启动和重新启动。

您可以弃用私有和公用 AMI。

您还可以创建 Amazon Data Lifecycle Manager EBS 支持的 AMI 策略,以自动化 EBS 支持的 AMI 的弃用。有关更多信息,请参阅自动化 AMI 生命周期

注意

默认情况下,所有公用 AMI 的弃用日期设置为自 AMI 创建日期起的两年。您可以将弃用日期设置为早于两年。要取消弃用日期,或将弃用移至未来某一日期,您必须通过仅将 AMI 与特定 Amazon 账户共享来将其设为私有。

成本

当您弃用 AMI 时,不会删除该 AMI。AMI 拥有者须继续为 AMI 的快照付费。要停止支付快照费用,AMI 拥有者必须通过取消注册删除 AMI。

限制

  • 要弃用 AMI,您必须是 AMI 的拥有者。

弃用 AMI

您可以在特定日期和时间弃用 AMI。您必须是 AMI 拥有者才能执行此过程。

Console
在特定日期弃用 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航器中选择 AMI

  3. 从筛选栏中选择 Owned by me(我拥有的)。

  4. 选取相应 AMI,然后选择 Actions(操作)、Manage AMI Deprecation(管理 AMI 弃用)。您可以选择多个 AMI,一次性为多个 AMI 设置同一弃用日期。

  5. 选择 Enable(启用)复选框,然后输入弃用日期和时间。

    弃用日期的上限为从当前日期起 10 年,但公有 AMI 除外,其上限为自创建之日起 2 年。您不能指定一个过去的日期。

  6. 选择保存

Amazon CLI
在特定日期弃用 AMI

使用 enable-image-deprecation 命令。指定 AMI 的 ID 以及弃用 AMI 的日期和时间。如果指定以秒为单位的值,Amazon EC2 会将秒四舍五入到最近的分钟数。

deprecate-at 的上限为从当前日期起 10 年,但公有 AMI 除外,后者的上限为自创建之日起 2 年。您不能指定一个过去的日期。

aws ec2 enable-image-deprecation \ --image-id ami-1234567890abcdef0 \ --deprecate-at "2021-10-15T13:17:12.000Z"

预期输出

{ "Return": "true" }

上次启动时间

LastLaunchedTime 是一个时间戳,指示您上次使用 AMI 启动实例时的时间戳。最近未用于启动实例的 AMI 可能需要弃用或注销

注意
  • 在使用 AMI 启动实例时,使用情况报告会有 24 小时的延迟。

  • lastLaunchedTime 数据从 2017 年 4 月开始可用。

Console
查看 AMI 的上次启动时间
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航器中选择 AMI

  3. 从筛选栏中选择 Owned by me(我拥有的)。

  4. 选择 AMI,然后检查 Last launched time(上次启动时间)字段 [选择 AMI 旁边的复选框后,该字段将在 Details(详细信息)选项卡中显示]。此字段显示了上次使用 AMI 启动实例的日期和时间。

Amazon CLI
查看 AMI 的上次启动时间

运行 describe-image-attribute 命令并指定 --attribute lastLaunchedTime。您必须是 AMI 的拥有者才能执行此命令。

aws ec2 describe-image-attribute \ --image-id ami-1234567890example \ --attribute lastLaunchedTime

示例输出

{ "LastLaunchedTime": { "Value": "2022-02-10T02:03:18Z" }, "ImageId": "ami-1234567890example", }

描述已弃用的 AMI

您可以查看 AMI 的弃用日期和时间,然后按弃用日期对所有 AMI 进行筛选。您也可以使用 Amazon CLI 来描述已弃用的所有 AMI(即已超出弃用日期)。

Console
查看 AMI 的弃用日期
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航器中选择 AMIs,然后选择相应 AMI。

  3. 查看 Depreation time(弃用时间)字段 [如果选中了 AMI 旁边的复选框,则该字段位于 Details(详细信息)选项卡]。该字段将显示 AMI 的弃用日期和时间。如果该字段为空,表示该 AMI 未遭弃用。

按弃用日期筛选 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航器中选择 AMI

  3. 从筛选栏中选择 Owned by me(我拥有的)或 Private images(私有映像)(私有映像包括与您共享的 AMI 以及您拥有的 AMI)。

  4. 在搜索栏中输入 Deprecation time(输入字母时会出现 Deprecation time(弃用时间)筛选器),然后选择运算符以及日期和时间。

Amazon CLI

当您使用 describe-images 命令时,结果会因您是 AMI 用户或 AMI 拥有者而有所不同。

  • 如果您是 AMI 用户:

    默认情况下,当您使用 describe-images 命令描述所有 AMI 时,不属于您但与您共享的已弃用 AMI 不会出现在结果中。这是因为默认值为 --no-include-deprecated。要在结果中包括已弃用的 AMI,您必须指定 --include-deprecated 参数。

  • 如果您是 AMI 拥有者:

    当您使用 describe-images 命令描述所有 AMI 时,您拥有的所有 AMI(包括已弃用的 AMI)均会显示在结果中。您无需指定 --include-deprecated 参数。此外,您不能通过使用 --no-include-deprecated 从结果中排除已弃用的 AMI。

如果 AMI 被弃用,DeprecationTime 字段将显示在结果中。

注意

已弃用的 AMI 是指弃用日期在过去的 AMI。如果您已将弃用日期设置为将来的日期,则 AMI 尚未弃用。

在描述所有 AMI 时包括所有已弃用的 AMI

使用 describe-images 命令并指定 --include-deprecated 参数,以在结果中包括非您所有的所有已弃用的 AMI。

aws ec2 describe-images \ --region us-east-1 \ --owners 123456example --include-deprecated
描述 AMI 的弃用日期

使用 describe-images 命令并指定 AMI 的 ID。

请注意,如果您同时指定 --no-include-deprecated 与 AMI ID,则会在结果中返回已弃用的 AMI。

aws ec2 describe-images \ --region us-east-1 \ --image-ids ami-1234567890EXAMPLE

预期输出

DeprecationTime 字段显示将 AMI 设置为已弃用的日期。如果 AMI 未设置为已弃用,则 DeprecationTime 字段不会显示在输出结果中。

{ "Images": [ { "VirtualizationType": "hvm", "Description": "Provided by Red Hat, Inc.", "PlatformDetails": "Red Hat Enterprise Linux", "EnaSupport": true, "Hypervisor": "xen", "State": "available", "SriovNetSupport": "simple", "ImageId": "ami-1234567890EXAMPLE", "DeprecationTime": "2021-05-10T13:17:12.000Z" "UsageOperation": "RunInstances:0010", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "SnapshotId": "snap-111222333444aaabb", "DeleteOnTermination": true, "VolumeType": "gp2", "VolumeSize": 10, "Encrypted": false } } ], "Architecture": "x86_64", "ImageLocation": "123456789012/RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2", "RootDeviceType": "ebs", "OwnerId": "123456789012", "RootDeviceName": "/dev/sda1", "CreationDate": "2019-05-10T13:17:12.000Z", "Public": true, "ImageType": "machine", "Name": "RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2" } ] }

取消弃用 AMI

您可以取消弃用 AMI,即删除 Deprecation time(弃用时间)字段(控制台),或从 describe-images 输出 (Amazon CLI) 中删除 DeprecationTime 字段。您必须是 AMI 拥有者才能执行此过程。

Console
取消弃用 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航器中选择 AMI

  3. 从筛选栏中选择 Owned by me(我拥有的)。

  4. 选取相应 AMI,然后选择 Actions(操作)、Manage AMI Deprecation(管理 AMI 弃用)。您可以选择多个 AMI,一次性取消对多个 AMI 的弃用。

  5. 取消选中 Enable(启用)复选框,然后选择 Save(保存)。

Amazon CLI
取消弃用 AMI

使用 disable-image-deprecation 命令并指定 AMI 的 ID。

aws ec2 disable-image-deprecation \ --image-id ami-1234567890abcdef0

预期输出

{ "Return": "true" }