Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
禁用 Amazon EC2 AMI
您可以禁用 AMI,以防止系统将其用于实例启动。您无法从已禁用的 AMI 启动新实例。您可以重新启用已禁用的 AMI,使其可以再次用于实例启动。
当 AMI 被禁用时:
-
AMI 的状态会更改为 disabled
。
-
无法共享已禁用的 AMI。如果 AMI 为公用性质或以前共享过,则会将其设为私有。如果与 Amazon Web Services 账户、组织或组织单位共享了 AMI,则它们将无法访问已禁用的 AMI。
-
默认情况下,已禁用的 AMI 不会出现在 DescribeImages API 调用中。
-
禁用的 AMI 不会在我拥有的控制台筛选条件下显示。要查找已禁用的 AMI,请使用已禁用的映像控制台筛选条件。
-
已禁用的 AMI 不可在 EC2 控制台中选择用于实例启动。例如,已禁用的 AMI 不会出现在启动实例向导的 AMI 目录中,创建启动模板时也不会显示。
-
启动服务(如启动模板和自动扩缩组)可以继续引用已禁用的 AMI。从已禁用的 AMI 发起的后续实例启动将失败,因此我们建议更新启动模板和自动扩缩组,使其仅引用可用的 AMI。
-
之前使用随后被禁用的 AMI 启动的 EC2 实例不会受到影响,可以停止、启动和重新启动。
-
无法删除与已禁用的 AMI 关联的快照。尝试删除关联的快照会导致 snapshot is currently in use
错误。
重新启用 AMI 时:
您可以禁用私有和公用 AMI。
您可以归档与已禁用 EBS-backed AMI 关联的快照。这可以帮助您降低与很少使用却需要长期保留的 AMI 相关的存储成本。有关更多信息,请参阅《Amazon EBS 用户指南》中的归档 Amazon EBS 快照。
成本
当您禁用 AMI 时,不会删除该 AMI。如果 AMI 是 EBS-backed AMI,则您需要继续为 AMI 的 EBS 快照付费。如果您想保留此类 AMI,则可以通过归档快照来降低存储成本。有关更多信息,请参阅《Amazon EBS 用户指南》中的归档 Amazon EBS 快照。如果您不想保留此类 AMI 及其快照,则必须取消注册相关 AMI 并删除相应快照。有关更多信息,请参阅 EBS 支持的 AMI。
先决条件
要禁用或重新启用 AMI,您必须是 AMI 的所有者。
所需的 IAM 权限
要禁用和重新启用 AMI,您必须拥有以下 IAM 权限:
-
ec2:DisableImage
-
ec2:EnableImage
禁用 AMI
您可以使用 EC2 控制台或 Amazon Command Line Interface(Amazon CLI)禁用 AMI。您必须是 AMI 拥有者才能执行此过程。
- Console
-
要禁用 AMI
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在左侧导航窗格中,选择 AMI。
-
从筛选栏中选择 Owned by me(我拥有的)。
-
选择 AMI,然后依次选择操作和禁用 AMI。您可以同时选择多个 AMI,一并将其禁用。
-
在禁用 AMI窗口中,选择禁用 AMI。
- Amazon CLI
-
要禁用 AMI
使用 disable-image 命令并指定 AMI 的 ID。
aws ec2 disable-image --image-id ami-1234567890abcdef0
预期输出
{
"Return": "true"
}
描述已禁用的 AMI
您可以在 EC2 控制台中或使用 Amazon CLI 查看已禁用的 AMI。
您必须是 AMI 所有者才能查看已禁用的 AMI。由于已禁用的 AMI 被设为私有,因此如果您不是所有者,则无法对其进行查看。
- Console
-
- Amazon CLI
-
默认情况下,当您使用 describe-images 命令描述所有 AMI 时,已禁用的 AMI 不会出现在结果中。这是因为默认值为 --no-include-disabled
。要在结果中包括已禁用的 AMI,您必须指定 --include-disabled
参数。
要在描述所有 AMI 时包括所有已禁用的 AMI
使用 describe-images 命令并指定 --include-disabled
参数,以检索已禁用的 AMI 以及所有其他 AMI。或者,指定 --owners
self
,以便仅检索您拥有的 AMI。
aws ec2 describe-images \
--region us-east-1
\
--owners self
--include-disabled
如果您指定了已禁用的 AMI 的 ID,但未指定 --include-disabled
,则结果中将返回相应已禁用的 AMI。
aws ec2 describe-images \
--region us-east-1
\
--image-ids ami-1234567890EXAMPLE
要仅检索已禁用的 AMI
指定 --filters Name=state,Values=disabled
。您必须指定 --include-disabled
,否则将会收到错误。
aws ec2 describe-images \
--include-disabled \
--filters Name=state,Values=disabled
示例输出
State
字段显示 AMI 的状态。disabled
表示 AMI 已被禁用。
{
"Images": [
{
"VirtualizationType": "hvm",
"Description": "Provided by Red Hat, Inc.",
"PlatformDetails": "Red Hat Enterprise Linux",
"EnaSupport": true,
"Hypervisor": "xen",
"State": "disabled",
"SriovNetSupport": "simple",
"ImageId": "ami-1234567890EXAMPLE",
"DeprecationTime": "2023-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": false,
"ImageType": "machine",
"Name": "RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2"
}
]
}
重新启用已禁用的 AMI
您可以重新启用已禁用的 AMI。您必须是 AMI 拥有者才能执行此过程。
- Console
-
- Amazon CLI
-
要重新启用已禁用的 AMI
使用 enable-image 命令并指定 AMI 的 ID。
aws ec2 enable-image --image-id ami-1234567890abcdef0
预期输出
{
"Return": "true"
}