本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
对 Amazon A EC2 uto Scaling 进行故障排除:EC2实例启动失败
本页提供有关您的EC2实例启动失败、潜在原因以及您可以采取的解决问题的步骤的信息。
要检索错误消息,请参阅检索来自扩缩活动的错误消息。
当您的EC2实例启动失败时,您可能会收到以下一条或多条错误消息:
启动问题
- 当前不支持请求的配置。
- 安全组 <该安全组的名称> 不存在。启动EC2实例失败。
- 密钥对 <与您的EC2实例关联的密钥对>不存在。启动EC2实例失败。
- 请求的实例类型(<实例类型>)在请求的可用区(<实例可用区>)中不受支持...
- 您的竞价请求价格 0.015 低于要求的最低竞价请求履行价格 0.0735...
- 设备名称 <device name> 无效/设备名称上传无效。启动EC2实例失败。
- <name associated with the instance storage device>参数的值 () virtualName 无效... 启动EC2实例失败。
- EBS实例AMIs存储不支持块储存设备映射。
- 置放群组可能无法与类型为“<instance type>”的实例一起使用。启动EC2实例失败。
- 客户。 InternalError: 启动时出现客户端错误。
- 我们目前在您请求的可用区中没有足够的 <实例类型> 容量。启动EC2实例失败。
- 所请求的预留没有足够的兼容容量和可用容量来满足此请求。启动EC2实例失败。
- 您的容量块预留 <reservation id> 尚未激活。启动EC2实例失败。
- 没有与您的请求匹配的竞价容量。启动EC2实例失败。
- 已运行 <实例数量> 个实例。启动EC2实例失败。
当前不支持请求的配置。
原因:您的启动模板或启动配置中的某些选项可能与实例类型不兼容,或者您请求的 AWS 区域或可用区域可能不支持实例配置。
解决方案:尝试不同的实例配置。要搜索符合您要求的实例类型,请参阅亚马逊EC2用户指南中的查找亚马逊EC2实例类型。
有关解决该问题的更多指导,请检查以下内容:
-
请确保您选择了您的实例类型支持的。AMI例如,如果实例类型使用基于 ARM 的 AWS Graviton 处理器而不是英特尔至强处理器,则需要兼容 ARM 的处理器。AMI有关选择兼容实例类型的更多信息,请参阅 Amazon EC2 用户指南中的更改实例类型的兼容性。
-
测试实例类型在所请求的区域和可用区中可用。最新一代实例类型可能尚未在给定区域或可用区域中可用。旧一代实例类型可能在给定区域或可用区中不可用。要搜索按地点(区域或可用区)提供的实例类型,请使用describe-instance-type-offerings命令。有关更多信息,请参阅亚马逊EC2用户指南中的查找亚马逊EC2实例类型。
-
如果您使用专用实例或专用主机,请确保选择了作为专用实例或专用主机受支持的实例类型。
安全组 <该安全组的名称> 不存在。启动EC2实例失败。
原因:可能已删除启动模板或启动配置中指定的安全组。
解决方案:
-
使用describe-security-groups命令获取与您的账户关联的安全组列表。
-
从该列表中选择要使用的安全组。要改为创建安全组,请使用create-security-group命令。
-
创建新的启动模板或启动配置。
-
使用update-auto-scaling-group命令使用新的启动模板或启动配置更新您的 Auto Scaling 组。
密钥对 <与您的EC2实例关联的密钥对>不存在。启动EC2实例失败。
原因:可能已删除启动实例时使用的密钥对。
解决方案:
-
使用describe-key-pairs命令获取可供您使用的密钥对列表。
-
从该列表中选择要使用的密钥对。要改为创建密钥对,请使用create-key-pair命令。
-
创建新的启动模板或启动配置。
-
使用update-auto-scaling-group命令使用新的启动模板或启动配置更新您的 Auto Scaling 组。
请求的实例类型(<实例类型>)在请求的可用区(<实例可用区>)中不受支持...
错误消息:您请求的<instance type>可用区 () 不支持您请求的实例类型 (<instance Availability Zone>)... 启动EC2实例失败。
原因:您的自动扩缩组中指定的可用区不支持您选择的实例类型。
解决方案:
-
使用describe-instance-type-offerings命令验证哪些可用区支持您选择的实例类型,或者通过在 Amazon EC2 控制台中查看实例类型页面的网络窗格上的可用区值。
-
使用update-auto-scaling-group命令更新或移除 Auto Scaling 组设置中任何不支持的区域的子网。有关更多信息,请参阅 添加可用区。
您的竞价请求价格 0.015 低于要求的最低竞价请求履行价格 0.0735...
原因:请求中的 Spot 最高价低于选定的实例类型的 Spot 价格。
解决方案:提交具有较高 Spot 最高价(可能是按需价格)的新请求。之前,您支付的 Spot 价格是基于出价的。今天,您支付当前 Spot 价格。通过将最高价格设置得更高,Amazon EC2 Spot 服务有更好的机会启动和维持所需的容量。
设备名称 <device name> 无效/设备名称上传无效。启动EC2实例失败。
原因 1:启动模板或启动配置中的块储存设备映射所包含的块储存设备名称可能无法使用或目前不受支持。
解决方案:
-
验证哪些设备名称可用于您的特定实例配置。有关设备命名的更多详细信息,请参阅 Amazon EC2 用户指南中的 Linux 实例上的设备名称。
-
手动创建不属于 Auto Scaling 组的 Amazon EC2 实例,然后调查问题。如果块储存设备命名配置与 Amazon 系统映像 (AMI) 中的名称冲突,则实例将在启动期间失败。有关更多信息,请参阅 Amazon EC2 用户指南中的屏蔽设备映射。
-
确认您的实例已成功启动后,使用 describe-volumes 命令查看如何向实例公开卷。
-
使用卷描述中列出的设备名称创建新的启动模板或启动配置。
-
使用update-auto-scaling-group命令使用新的启动模板或启动配置更新您的 Auto Scaling 组。
<name associated with the instance storage device>参数的值 () virtualName 无效... 启动EC2实例失败。
原因:与块储存设备相关联的虚拟名称的指定格式不正确。
解决方案:
-
通过在
virtualName
参数中指定设备名称创建新的启动模板或启动配置。有关设备名称格式的信息,请参阅 Amazon EC2 用户指南中的 Linux 实例上的设备命名。 -
使用update-auto-scaling-group命令使用新的启动模板或启动配置更新您的 Auto Scaling 组。
EBS实例AMIs存储不支持块储存设备映射。
原因:启动模板或启动配置中指定的块储存设备映射在您的实例上不受支持。
解决方案:
-
使用实例类型支持的块储存设备映射来创建新的启动模板或启动配置。有关更多信息,请参阅 Amazon EC2 用户指南中的屏蔽设备映射。
-
使用update-auto-scaling-group命令使用新的启动模板或启动配置更新您的 Auto Scaling 组。
置放群组可能无法与类型为“<instance type>”的实例一起使用。启动EC2实例失败。
原因:您的集群置放群组包含无效实例类型。
解决方案:
-
有关置放群组支持的有效实例类型的信息,请参阅 Amazon EC2 用户指南中的置放群组。
-
按照置放群组中的详细说明创建新的置放群组。
-
或者,也可以使用受支持的实例类型创建新的启动模板或启动配置。
-
使用update-auto-scaling-group命令使用新的置放群组、启动模板或启动配置来更新您的 Auto Scaling 群组。
客户。 InternalError: 启动时出现客户端错误。
问题:Amazon A EC2 uto Scaling 尝试启动具有加密EBS卷的实例,但服务相关角色无权访问用于加密该卷的 AWS KMS 客户托管密钥。有关更多信息,请参阅 使用加密卷所需的 AWS KMS 密钥策略。
原因 1:您需要密钥策略,该策略向适当的服务相关角色授予使用客户托管密钥的权限。
解决方案 1:允许服务相关角色使用客户管理密钥,如下所示:
-
确定将哪个服务相关角色用于此 Auto Scaling 组。
-
更新客户托管密钥上的密钥策略并允许服务相关角色使用客户托管密钥。
-
更新 Auto Scaling 组来使用服务相关角色。
有关允许服务相关角色使用客户托管密钥的密钥策略示例,请参阅 示例 1:允许访问客户托管密钥的关键策略部分。
原因 2:如果客户托管密钥和 Auto Scaling 组位于不同的 AWS 账户中,则需要配置对客户托管密钥的跨账户访问权限,以便向适当的服务相关角色授予使用客户托管密钥的权限。
解决方案 2:允许外部账户中的服务相关角色使用本地账户中的客户托管密钥,如下所示:
-
更新客户托管密钥上的密钥策略,以允许 Auto Scaling 组账户访问客户托管密钥。
-
在 Auto Scaling 组账户中定义可以创建授权的IAM用户或角色。
-
确定将哪个服务相关角色用于此 Auto Scaling 组。
-
使用适当的服务相关角色作为被授权者委托人,创建对客户托管密钥的授权。
-
更新 Auto Scaling 组来使用服务相关角色。
有关更多信息,请参阅 示例 2:允许跨账户访问客户托管密钥的关键策略部分。
解决方案 3:将同一 AWS 账户中的客户托管密钥作为 Auto Scaling 组。
-
使用属于与 Auto Scaling 组相同的账户中的另一个客户托管密钥,复制并重新加密快照。
-
允许服务相关角色使用新的客户托管密钥。请参阅解决方案 1 的步骤。
我们目前在您请求的可用区中没有足够的 <实例类型> 容量。启动EC2实例失败。
错误消息:您请求的可用区(<请求的可用区>)中当前没有足够的 <实例类型> 容量。我们的系统将调配额外的容量。您当前可以通过不在请求中指定可用区,或者选择 <当前支持该实例类型的可用区列表> 来获取 <实例类型> 容量。启动EC2实例失败。
原因:目前,不支持请求的实例类型和可用区组合。
解决方案:要解决此问题,请尝试以下方法:
-
等待几分钟,让 Amazon A EC2 uto Scaling 在其他已启用的可用区域中找到该实例类型的容量。
-
将自动扩缩组扩展到其他可用区。有关更多信息,请参阅 添加可用区。
-
请遵循使用不同实例类型集的最佳实践,以便您不依赖于某一特定实例类型。有关更多信息,请参阅 Auto Scaling 组具有多个实例类型和购买选项。
所请求的预留没有足够的兼容容量和可用容量来满足此请求。启动EC2实例失败。
原因 1:您已达到可通过 targeted
按需容量预留启动的实例数量限制。
解决方案 1:增加可通过 targeted
按需容量预留启动的实例数量,或者使用容量预留组,以便预留容量以外的任何容量都将作为常规按需容量启动。有关更多信息,请参阅 使用容量预留在特定可用区中预留容量 。
原因 2:您已达到可用某一容量块启动的实例数限制。
使用容量块,您将受到最初购买的容量值的限制。如果您遇到的启动次数超过预期并且可用容量耗尽,则会导致启动失败。终止实例在完全终止之前要经过漫长的清理过程。在此期间,无法重新使用它们。这也可能导致启动失败。有关更多信息,请参阅 Capacity Blocks用于机器学习工作负载。
解决方案 2:要解决此问题,请尝试以下方法:
-
保持请求不变。如果 Capacity Block 实例即将终止,则必须等待几分钟,该实例才能完成终止,容量才能恢复可用。在容量可用之前,Amazon A EC2 uto Scaling 会继续自动提出启动请求。
-
请务必购买足够的容量来容纳峰值工作负载,这样就不会经常遇到此错误。
您的容量块预留 <reservation id> 尚未激活。启动EC2实例失败。
原因:指定的容量块尚未激活。
解决方案:按照推荐的容量块方法进行操作,并使用计划扩缩。这样做可以帮助您确保仅在预留处于活动状态时增加自动扩缩组的所需容量,并在预留结束之前减少所需容量。
没有与您的请求匹配的竞价容量。启动EC2实例失败。
原因:目前没有足够的备用容量来满足您的竞价型实例请求。
解决方案:要解决此问题,请尝试以下方法:
-
等待几分钟;容量可能经常转移。在容量可用之前,Amazon A EC2 uto Scaling 会继续自动提出启动请求。
-
将自动扩缩组扩展到其他可用区。有关更多信息,请参阅 添加可用区。
-
请遵循使用不同实例类型集的最佳实践,以便您不依赖于某一特定实例类型。有关更多信息,请参阅 Auto Scaling 组具有多个实例类型和购买选项。
已运行 <实例数量> 个实例。启动EC2实例失败。
原因:您已达到可在某一区域中启动的实例数限制。在您创建 AWS 账户时,我们会为每个地区可以运行的实例数量设置默认限制。
解决方案:要解决此问题,请尝试以下方法:
-
如果您当前的限制不足以满足需求,您可以根据区域请求提高配额。有关更多信息,请参阅《亚马逊EC2用户指南》中的亚马逊EC2服务配额。
-
提交减少了实例数(可在后期阶段增加)的新请求。