排查实例启动问题
以下问题将阻止您启动实例。
设备名称无效
描述
在尝试启动新实例时,您将收到 Invalid device name
错误。device_name
原因
如果您在尝试启动实例时遇到此错误,则请求中为一个或多个卷指定的设备名称无效。可能的原因包括:
-
所选 AMI 目前可能在使用该设备名称。
-
该设备名称可能是为根卷保留的。
-
该设备名称可能用于请求中的另一个卷。
-
该设备名称可能对操作系统无效。
解决方案
要解决问题,请执行以下操作:
超出实例限制
描述
在尝试启动新实例或重新启动已停止的实例时,您将收到 InstanceLimitExceeded
错误。
原因
在尝试启动新实例或重新启动已停止的实例时,如果您已达到可在区域中启动的实例的数目限制,则将收到 InstanceLimitExceeded
错误。在创建 Amazon 账户时,我们根据区域设置可运行的实例数的默认限制。
解决方案
您可以根据区域请求提高实例限制。有关更多信息,请参阅 Amazon EC2 Service Quotas。
实例容量不足
描述
在尝试启动新实例或重新启动已停止的实例时,您将收到 InsufficientInstanceCapacity
错误。
原因
如果您在尝试启动实例或重新启动已停止的实例时收到此错误,则表示 Amazon 当前没有足够的可用按需容量来服务您的请求。
解决方案
要解决该问题,请尝试以下操作:
当前不支持请求的配置。请查看文档以了解支持的配置。
描述
当您尝试启动新实例时会出现 Unsupported
错误,因为不支持实例配置。
原因
错误消息提供了更多详细信息。例如,指定的区域或可用区可能不支持实例类型或实例购买选项。
解决方案
尝试其他实例配置。要搜索符合您要求的实例类型,请参阅 查找 Amazon EC2 实例类型。
实例立即终止
描述
您的实例会从 pending
状态变为 terminated
状态。
原因
下面是实例可能立即终止的一些原因:
-
您已超出 EBS 卷限制。有关更多信息,请参阅实例卷限制。
-
EBS 快照损坏。
-
根 EBS 卷已加密,但您无权访问用于解密的 KMS 密钥。
-
在块储存设备映射中为 AMI 指定的快照已加密,但您无权访问用于解密的 KMS 密钥,或者您无权访问 KMS 密钥 来加密还原的卷。
-
您用来启动实例的由实例存储支持的 AMI 缺少必需部分(一个 image.part.xx 文件)
有关更多信息,请通过以下某种方法了解终止原因。
使用 Amazon EC2 控制台了解终止原因
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Instances,然后选择实例。
-
在第一个选项卡上,在状态转换原因旁边查看原因。
使用 Amazon Command Line Interface 控制台了解终止原因
-
使用 describe-instances 命令并指定实例 ID。
aws ec2 describe-instances --instance-id
instance_id
-
检查命令返回的 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 中使用密钥策略。
权限不足
描述
在尝试启动新实例时出现 "
错误,并且启动失败。errorMessage
": "You are not authorized to
perform this operation."
原因
如果您在尝试启动实例时出现此错误,则说明您没有启动该实例所需的 IAM 权限。
可能缺少以下权限:
-
ec2:RunInstances
-
iam:PassRole
也可能缺少其他权限。有关启动实例所需的权限列表,请参阅 示例:使用 EC2 启动实例向导 和 启动实例 (RunInstances) 下的示例 IAM policy。
解决方案
要解决问题,请执行以下操作:
-
如果您以 IAM 用户身份发出请求,请验证您拥有以下权限:
-
对通配符资源 ("*") 执行
ec2:RunInstances
操作的许可 -
iam:PassRole
对匹配角色 ARN (例如arn:aws:iam::999999999999:role/ExampleRoleName
) 的资源执行操作的权限。
-
-
如果您没有上述权限,请编辑与 IAM 角色或用户关联的 IAM policy 以添加缺少的必需权限。
如果问题并未解决且仍然出现启动失败错误,您可以解码错误中包含的授权失败消息。解码后的消息包含 IAM policy 中缺少的权限。有关更多消息,请参阅在 EC2 实例启动期间收到 "UnauthorizedOperation" 错误消息后,如何解码授权失败消息?