为什么我不能终止我的 EC2 实例?

2 分钟阅读
0

我想终止我的 Amazon Elastic Compute Cloud(Amazon EC2)实例。

解决方法

**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

由于以下原因,您的 Amazon EC2 实例可能无法终止。

实例启用停止保护

启用停止保护后,您无法终止 EC2 实例。要检查停止保护是否已开启并将其关闭,您可以使用 AWS CLI 或 Amazon EC2 控制台。

使用 AWS CLI

要检查 EC2 实例是否已启用停止保护,请运行以下 describe-instance-attribute 命令:

aws ec2 describe-instance-attribute --instance-id i-1234567890 --attribute disableApiStop

如果输出返回 true,请为该实例开启停止保护。

要关闭停止保护以便终止实例,请运行以下 modify-instance-attribute 命令:

aws ec2 modify-instance-attribute --instance-id i-1234567890 --no-disable-api-stop

使用 Amazon EC2 控制台

要从 Amazon EC2 控制台检查停止保护状态,请完成以下步骤:

  1. 打开 Amazon EC2 控制台
  2. 选择 Actions(操作)。
  3. 选择 Instance settings(实例设置)。
  4. 选择 Change stop protection(更改停止保护)。

如果选中 Enable(启用),请取消选中该复选框以关闭停止保护。

实例启用终止保护

启用终止保护后,您无法终止 EC2 实例。要检查终止保护是否已开启并将其关闭,您可以使用 AWS CLI 或 Amazon EC2 控制台。

使用 AWS CLI

要检查 EC2 实例是否已开启终止保护,请运行以下 describe-instance-attribute 命令:

aws ec2 describe-instance-attribute --instance-id i-1234567890 --attribute disableApiTermination

如果输出返回 true,请为该实例开启终止保护。

要关闭终止保护以便终止实例,请运行以下 modify-instance-attribute 命令:

aws ec2 modify-instance-attribute --instance-id i-1234567890 --no-disable-api-termination

使用 Amazon EC2 控制台

要从 Amazon EC2 控制台检查终止保护状态,请完成以下步骤:

  1. 打开 Amazon EC2 控制台
  2. 选择 Actions(操作)。
  3. 选择 Instance settings(实例设置)。
  4. 选择 Change termination protection(更改终止保护)。

如果终止保护已开启,请选择 Yes, Disable(是的,禁用),然后选择 Save(保存)以关闭终止保护。

附加到您的 IAM 实体的 IAM 策略不包括终止实例的权限

要终止实例,您的 AWS Identity and Access Management (IAM) 实体的 IAM 策略必须显式允许 TerminateInstances API 操作。

策略示例:

{  
    "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Effect": "Allow",  
            "Action": "ec2:TerminateInstances",  
            "Resource": [  
                "arn:aws:ec2:us-west-2:123456789012:instance/i-0abcd1234efgh5678",  
                "arn:aws:ec2:us-west-2:123456789012:instance/i-1wxyz9876lmno4321"  
            ]  
        }  
    ]  
}

如果将 AmazonEC2FullAccessAdministratorAccess AWS 托管式策略附加到您的 IAM 实体,则该实体有权执行 TerminateInstances 操作。如果 AmazonEC2FullAccessAdministratorAccess 未连接到您的 IAM 实体,则您必须编辑客户管理型策略以允许 TerminateInstances 操作。或者,创建允许 TerminateInstances 操作的客户管理型策略

实例是自动扩缩组的一部分

当您终止属于自动扩缩组的实例时,自动扩缩组可能会启动替换实例。替换实例允许自动扩缩组保持预期的实例数。要终止实例并调整自动扩缩组的大小,请在 AWS CLI 中运行 terminate-instance-in-auto-scaling-group 命令。

相关信息

终止 Amazon EC2 实例

AWS 官方
AWS 官方已更新 7 个月前