排查实例启动问题 - Amazon Elastic Compute Cloud

排查实例启动问题

以下问题将阻止您启动实例。

超出实例限制

描述

在尝试启动新实例或重新启动已停止的实例时,您将收到 InstanceLimitExceeded 错误。

原因

在尝试启动新实例或重新启动已停止的实例时,如果您已达到可在区域中启动的实例的数目限制,则将收到 InstanceLimitExceeded 错误。在创建 AWS 账户时,我们根据区域设置可运行的实例数的默认限制。

解决方案

您可以根据区域请求提高实例限制。有关更多信息,请参阅 Amazon EC2 服务配额

实例容量不足

描述

在尝试启动新实例或重新启动已停止的实例时,您将收到 InsufficientInstanceCapacity 错误。

原因

如果您在尝试启动实例或重新启动已停止的实例时收到 InsufficientInstanceCapacity 错误,则表示 AWS 当前没有足够的可用按需容量来服务您的请求。

解决方案

要解决该问题,请尝试以下操作:

  • 等待几分钟,然后再次提交您的请求;容量可能经常转移。

  • 提交减少了实例数的新请求。例如,如果您要提交 1 个启动包含 15 个实例的请求,请改为尝试提交 3 个包含 5 个实例的请求或 15 个包含 1 个实例的请求。

  • 如果您要启动实例,请提交新请求,无需指定可用区。

  • 如果您要启动实例,请使用其他实例类型 (可在后期调整大小) 提交新请求。有关更多信息,请参阅 更改实例类型

  • 如果您将实例启动到集群置放群组中,则会获得容量不足错误。有关更多信息,请参阅置放群组规则和限制

  • 尝试创建按需 容量预留,这使您能够将 Amazon EC2 容量预留任意持续时间。有关更多信息,请参阅 按需容量预留

  • 尝试购买作为长期容量预留的预留实例。有关更多信息,请参阅 Amazon EC2 预留实例

实例立即终止

描述

您的实例会从 pending 状态变为 terminated 状态。

原因

下面是实例可能立即终止的一些原因:

  • 您已超出 EBS 卷限制。有关更多信息,请参阅 实例卷限制

  • EBS 快照损坏。

  • 根 EBS 卷已加密,但您无权访问用于解密的 CMK。

  • 在块储存设备映射中为 AMI 指定的快照已加密,但您无权访问用于解密的 CMK,或者您无权访问 CMK 来加密还原的卷。

  • 您用来启动实例的由实例存储支持的 AMI 缺少必需部分(一个 image.part.xx 文件)

有关更多信息,请通过以下某种方法了解终止原因。

使用 Amazon EC2 控制台了解终止原因

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Instances,然后选择实例。

  3. 在第一个选项卡上,在状态转换原因旁边查看原因。

使用 AWS Command Line Interface 控制台了解终止原因

  1. 使用 describe-instances 命令并指定实例 ID。

    aws ec2 describe-instances --instance-id instance_id
  2. 检查命令返回的 JSON 响应,并记下 StateReason 响应元素中的值。

    下面的代码块显示了 StateReason 响应元素的示例。

    "StateReason": { "Message": "Client.VolumeLimitExceeded: Volume limit exceeded", "Code": "Server.InternalError" },

使用 AWS CloudTrail了解终止原因

有关更多信息,请参阅 AWS CloudTrail User Guide中的使用 CloudTrail 事件历史记录查看事件

解决方案

根据找到的终止原因,执行以下某项操作:

  • Client.VolumeLimitExceeded: Volume limit exceeded - 删除未使用的卷。您可以提交请求,要求提高卷限制。

  • Client.InternalError: Client error on launch - 确保您具有访问用于解密和加密卷的 CMK 所需的权限。有关更多信息,请参阅 AWS Key Management Service Developer Guide中的在 AWS KMS 中使用密钥策略

Windows 启动后,CPU 使用率短时增高

如果将 Windows Update 设置为 Check for updates but let me choose whether to download and install them (检查更新,但允许我选择是否下载并安装它们)(默认实例设置),则此检查可能会在实例上消耗 50 - 99% 的 CPU。如果此 CPU 消耗会导致您的应用程序出现问题,您可手动在 Control Panel 中更改 Windows Update 设置或者使用 Amazon EC2 用户数据字段中的以下脚本:

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d 3 /f net stop wuauserv net start wuauserv

执行此脚本时,为 /d 指定一个值。默认值为 3。可能的值包括:

  1. 从未检查更新

  2. 检查更新,但允许我选择是否下载并安装它们

  3. 下载更新,但允许我选择是否安装它们

  4. 自动安装更新

在为您的实例修改用户数据后,可执行它。有关更多信息,请参阅 查看和更新实例用户数据用户数据执行