我的 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 实例