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

弃用 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。

Costs

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

Limitations

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

  • 您不能使用 EC2 控制台弃用 AMI 或取消弃用 AMI。

弃用 AMI

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

在特定日期弃用 AMI (Amazon CLI)

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

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

预期输出

{ "RequestID": "59dbff89-35bd-4eac-99ed-be587EXAMPLE", "Return": "true" }

描述已弃用的 AMI

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

  • 如果您是 AMI 用户:

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

  • 如果您是 AMI 拥有者:

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

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

注意

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

在描述所有 AMI 时包括所有已弃用的 AMI (Amazon CLI)

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

aws ec2 describe-images \ --region us-east-1 \ --owners 123456example --include-deprecated true

描述 AMI 的弃用日期 (Amazon CLI)

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

请注意,如果您同时指定 --include-deprecated false 与 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,这将删除 describe-images 输出结果中的 DeprecationTime 字段。您必须是 AMI 拥有者才能执行此过程。

要取消弃用 AMI (Amazon CLI)

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

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

预期输出

{ "RequestID": "11aabb229-4eac-35bd-99ed-be587EXAMPLE", "Return": "true" }