排查实例启动问题 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

排查实例启动问题

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

设备名称无效

描述

在尝试启动新实例时,您将收到 Invalid device name device_name 错误。

原因

如果您在尝试启动实例时遇到此错误,则请求中为一个或多个卷指定的设备名称无效。可能的原因包括:

  • 所选 AMI 目前可能在使用该设备名称。

  • 该设备名称可能是为根卷保留的。

  • 该设备名称可能用于请求中的另一个卷。

  • 该设备名称可能对操作系统无效。

解决方案

要解决问题,请执行以下操作:

  • 确保所选 AMI 未使用该设备名称。运行以下命令,查看 AMI 使用的设备名称。

    $ aws ec2 describe-images --image-id ami_id --query 'Images[*].BlockDeviceMappings[].DeviceName'
  • 确保没有使用为根卷保留的设备名称。有关更多信息,请参阅可用设备名称

  • 确保在请求中指定的每个卷都有唯一的设备名称。

  • 确保指定的设备名称采用正确格式。有关更多信息,请参阅可用设备名称

超出实例限制

描述

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

原因

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

解决方案

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

实例容量不足

描述

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

原因

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

解决方案

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

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

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

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

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

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

当前不支持请求的配置。请查看文档以了解支持的配置。

描述

当您尝试启动新实例时会出现 Unsupported 错误,因为不支持实例配置。

原因

错误消息提供了更多详细信息。例如,指定的区域或可用区可能不支持实例类型或实例购买选项。

解决方案

尝试其他实例配置。要搜索符合您要求的实例类型,请参阅 查找 Amazon EC2 实例类型

实例立即终止

描述

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

原因

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

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

  • EBS 快照损坏。

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

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

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

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

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

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

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

使用 Amazon 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" },

使用 Amazon CloudTrail 了解终止原因

有关更多信息,请参阅 Amazon CloudTrail 用户指南中的使用 CloudTrail 事件历史记录查看事件

解决方案

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

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

  • Client.InternalError: Client error on launch – 确保您具有访问用于解密和加密卷的 Amazon KMS keys 所需的权限。有关更多信息,请参阅 Amazon Key Management Service 开发人员指南中的在 Amazon KMS 中使用密钥策略