我的 EC2 实例为什么卡在“正在停止”状态?

1 分钟阅读
0

我试图停止 Amazon Elastic Compute Cloud(Amazon EC2)实例,但它现在卡在了“正在停止”状态。

简短描述

在以下情况下,实例似乎像是“卡”在了停止状态:

  • 托管实例的底层硬件存在问题或系统状态检查失败。
  • 实例状态检查失败。
  • 实例出现内存不足(OOM)错误。
  • 您正在尝试将实例休眠。

解决方法

(可选)检查实例状态

要检查实例的最新状态,请在 Amazon EC2 控制台中选择刷新图标。或者,在 AWS 命令行界面(AWS CLI)中运行 describe-instances 命令。

**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

在以下示例命令中,将 i-0123ab456c789d01e 替换为您在尝试停止的实例的 ID:

aws ec2 describe-instances --instance-ids i-0123ab456c789d01e --output json

检查 JSON 响应中的状态代码名称

"State": {
 "Code": 64,
 "Name": "stopping"
 },

如果您的实例卡在“正在停止”状态,请执行以下操作强制停止实例:

托管实例的底层硬件出现问题或系统状态检查失败

系统状态检查失败表明托管您的 EC2 实例的硬件存在问题。必须停止然后启动实例,将实例迁移到新的运行正常的主机上。

等待 Amazon EC2 对您的实例执行停止和启动操作。或者,您可以强制停止实例。有关强制停止的说明,请参阅以下“强制停止实例”部分。

有关详细信息,请参阅我的 EC2 Linux 实例未通过系统状态检查。如何解决此问题?

实例状态检查失败

如果实例状态检查失败,由于正在运行的关闭脚本,实例似乎像是卡在了“正在停止”状态。或者,使用 StopInstances API 停止以使用救援实例进行故障排除的实例似乎像是卡住了。这是因为由于无法访问该实例,StopInstances 操作可能需要一点时间。

在这些情况下,实例最终会停止。或者,您可以强制停止实例。有关强制停止的说明,请参阅以下强制停止实例部分。

实例上的 OOM 错误

检查实例的控制台日志,了解是否有 OOM 错误。有关详细信息,请参阅为什么我的 EC2 Linux 实例因为资源过度使用而变得无响应?

休眠过程中的实例

如果实例在休眠期间似乎卡在了“正在停止”状态,您可以强制停止该实例。有关强制停止的说明,请参阅以下强制停止实例部分。

有关详细信息,请参阅解决休眠问题

强制停止实例

如果您的实例卡在了“正在停止”状态,您可以强制停止实例:

使用 Amazon EC2 控制台

  1. 打开 Amazon EC2 控制台
  2. 选择实例,然后选择卡住的实例。
  3. 依次选择实例状态强制停止实例停止。请注意,只有当实例处于正在停止状态时,控制台中才会显示强制停止实例。如果您的实例处于其他状态(正在关闭已终止除外),可以使用 AWS CLI 强制停止实例。

使用 AWS CLI

按以下示例所示,使用 stop-instances 命令和 --force 选项:

aws ec2 stop-instances --instance-ids i-0123ab456c789d01e --force

其他资源

如果前面的解决步骤不能解决问题,请在 AWS re:Post 上发布帮助请求。为了加快解决问题的速度,请提供实例 ID,并说明您已采取的步骤。

有关详细信息,请参阅解决停止实例时出现的问题

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