跳至内容

为什么 Amazon EC2 意外终止了我的实例?

2 分钟阅读
0

我想知道为什么 Amazon Elastic Compute Cloud (Amazon EC2) 意外终止了我的 EC2 实例。

解决方案

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

按需型实例

注意:在 Amazon EC2 删除您的实例后,您可能仍会产生费用

要查看有关 Amazon EC2 何时以及如何删除您的按需型实例的信息,请查看您的 AWS CloudTrail 事件历史记录中的 TerminateInstances 事件。或者,在 CloudTrail 控制台中选择 Resource name(资源名称),然后输入您的实例 ID,以查看与您的实例相关的所有 API 调用。查看事件详细信息,以获取实例何时终止以及哪些用户终止了实例的相关信息。

**注意:**您只能使用 AWS CloudTrail 搜索过去 90 天的事件历史记录。有关详细信息,请参阅我如何使用 CloudTrail 查看在我的 AWS 账户中发生了哪些 API 调用和操作?

Amazon EC2 也可能由于以下原因终止您的按需型实例:

  • 操作系统 (OS) 关闭
  • 实例启动失败
  • 第三方软件终止

操作系统级别关闭

您可以将 EC2 实例的关闭行为设置为终止。在这种情况下,当您在实例上运行操作系统级别的关闭命令(例如 shutdownpoweroff)时,Amazon EC2 会终止该实例。当 Amazon EC2 以这种方式删除您的实例时,CloudTrail 不会记录事件。

要检查您的实例的关闭行为,请运行以下 describe-instance-attribute AWS CLI 命令:

aws ec2 describe-instance-attribute --instance-id example-instance-id --attribute instanceInitiatedShutdownBehavior

**注意:**请将 example-instance-id 替换为您的实例 ID。

如果您将 DeleteOnTermination 属性设置为 False 并保留了根卷,请使用救援实例来检查操作系统级日志,例如 /var/log/messages 日志或 /var/log/audit/audit.log。这使您能够确定是谁以及何时运行了关闭命令。有关如何启动救援实例的步骤,请参阅为什么在尝试启动 EC2 Linux 实例时,它会进入紧急模式?中的“使用救援实例手动编辑文件

EC2 实例启动失败

当您启动 EC2 实例时,它可能会由于以下原因无法启动或被自动终止

  • 您未将 Amazon Elastic Block Store (Amazon EBS) 卷正确附加到实例。
  • 附加到 EC2 实例的 Amazon EBS 卷处于 Error(错误)状态。
  • 您已将加密的 EBS 卷附加到实例,但无权访问 AWS Key Management Service (AWS KMS) 解密密钥。

第三方软件终止

第三方软件可能会因多种原因终止您的 EC2 实例。检查运行 TerminateInstances 事件的 Amazon 资源名称 (ARN) 或 AWS Identity and Access Management (IAM) 用户是否与您的第三方软件有关。

例如,Karpenter 的中断控制功能可能会删除您的 EC2 实例。有关详细信息,请参阅 Karpenter 网站上的 Interruption(中断)

竞价型实例

如果竞价型实例价格超过您的出价,则您将失去竞价型实例容量。或者,如果 Amazon EC2 无法满足竞价请求约束,则 Amazon EC2 会终止该竞价型实例

确定 Amazon EC2 是否终止了竞价型实例,请检查您的 CloudTrail 事件历史记录中是否有 BidEvictedEvent 事件。

Amazon EC2 Auto Scaling 组中的实例

Amazon EC2 Auto Scaling 可能会因以下原因终止 Amazon EC2 Auto Scaling 组中的实例

  • EC2 实例被标记为运行状况不佳。
  • 存在 Amazon EC2 Auto Scaling 组缩减事件。

**注意:**默认情况下,AWS Elastic Beanstalk 环境使用 Amazon EC2 Auto Scaling 组来启动 EC2 实例。

相关信息

如何重新创建已终止的 EC2 实例?

排查 Amazon EC2 实例的终止问题

AWS 官方已更新 1 年前