我的 EC2 Linux 实例无法执行系统状态检查。如何解决此问题?

上次更新时间:2020 年 6 月 2 日

我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例无法执行系统状态检查,并且无法再访问。如何排查系统状态检查失败的问题?

简短描述

系统状态检查失败指示托管 EC2 实例的硬件出现问题。

解决方法

必须通过停止和启动实例将其迁移到运行状况良好的新主机。您可以等待 Amazon EC2 停止和启动实例。或者,您也可以手动停止和启动实例以将其迁移到运行状况良好的新主机。

注意:停止和启动不等同于重启。必须启动才能将实例迁移到运行状况良好的硬件。

警告:停止并启动实例前,确保了解以下内容:

当您停止和启动实例时,实例存储数据丢失。如果您的实例受实例存储支持或具有包含数据的实例存储卷,则在实例停止时数据将丢失。有关更多信息,请参阅确定实例的根设备类型。 如果您的实例是 Amazon EC2 Auto Scaling 组的一部分,停止实例可能会终止实例。如果您使用 Amazon EMR、AWS CloudFormation 或 AWS Elastic Beanstalk 启动实例,您的实例可能是 AWS Auto Scaling 组的一部分。在这种情况下,是否会发生实例终止取决于您的 Auto Scaling 组的实例缩减保护设置。如果您的实例是 Auto Scaling 组的一部分,则在开始执行解决步骤之前,暂时从 Auto Scaling 组中删除该实例。 停止和启动实例会更改实例的公共 IP 地址。在将外部流量路由到您的实例时,最佳做法是使用弹性 IP 地址而不是公有 IP 地址。如果您使用 Route 53,您可能必须在公有 IP 更改时更新 Route 53 DNS 记录。 如果实例的关闭行为设置为终止,在使用关闭关机命令从操作系统关闭实例时,实例会终止。为避免出现此问题,请更改实例关闭行为。

在极少数情况下,基础设施层问题可能会阻止底层主机响应停止和启动 API 调用。这会导致实例卡在停止状态。有关如何强制停止实例的说明,请参阅排查实例的停止问题。

您可以创建 Amazon CloudWatch 警报,以监控并从涉及底层硬件故障的问题中自动恢复 EC2 实例。