Amazon EC2 Auto Scaling 问题排查:AMI 问题 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon EC2 Auto Scaling 问题排查:AMI 问题

本页提供与 AMI 相关联的问题的有关信息、可能原因,以及可用来解决这些问题的步骤。

要检索错误消息,请参阅检索来自扩缩活动的错误消息

当 AMI 的问题导致 EC2 实例启动失败时,您可能会收到一条或多条以下错误消息:

重要

Amazon 支持通过修改 AMI 权限与其他 Amazon 账户私下共享 AMI。如果将 AMI 设为私有而不共享,则启动新实例时可能会导致授权错误。有关共享私有 AMI 的更多信息,请参阅 A mazon EC2 用户指南中的与特定 Amazon 账户共享 AMI

AMI ID <您的 AMI 的 ID> 不存在。启动 EC2 实例失败。

  • 原因:创建启动模板或启动配置后,可能已删除 AMI。

  • 解决方案:

    1. 使用有效的 AMI 创建新的启动模板或启动配置。

    2. 使用 update-auto-scaling-group 命令通过新的启动模板或启动配置更新您的 Auto Scaling 组。

AMI <AMI ID> 正在等待,无法运行。启动 EC2 实例失败。

原因:您可能刚创建 AMI(通过获取运行实例的快照或任何其他方式),它可能还无法使用。

解决方案:必须等待您的 AMI 可用后,才能创建启动模板或启动配置。

设备名称 <device name> 无效。启动 EC2 实例失败。

原因:将 EBS 卷附加到 EC2 实例时,必须为该卷提供有效的设备名称。所选的 AMI 必须支持此设备名称。

解决方案:

  1. 创建新的启动模板或启动配置并为您的 AMI 指定正确的设备名称。推荐的命名约定因 AMI 的虚拟化类型而异。有关更多信息,请参阅 Amazon EC2 用户指南中的设备名称

  2. 使用 update-auto-scaling-group 命令通过新的启动模板或启动配置更新您的 Auto Scaling 组。

指定实例类型的架构 “arm64” 与指定 AMI 的架构 “x86_64” 不匹配......启动 EC2 实例失败。

原因 1:如果 AMI 的架构与您的启动模板或启动配置中使用的实例类型不同,那么当 Amazon EC2 Auto Scaling 尝试使用不兼容的实例配置启动实例时,就会出现错误。

解决方案 1

  1. 使用 describe-images 命令或在 Amazon EC2 控制台中查看 Amazon Machine Images (AMI) 页面详细信息窗格上的架构值,以验证 AMI 的架构。

  2. 使用 describe-instance-types 命令查找与您的 AMI 具有相同架构的实例类型,或者在 Amazon EC2 控制台中查看实例类型屏幕上的架构列。有关选择兼容实例类型的更多信息,请参阅 Amazon EC2 用户指南更改实例类型的兼容性。

  3. 使用与您的 AMI 具有相同架构的实例类型创建新的启动模板或启动配置。

  4. 使用 update-auto-scaling-group 命令通过新的启动模板或启动配置更新您的 Auto Scaling 组。

原因 2:Amazon EC2 Auto Scaling 尝试启动自动扩缩组的混合实例策略中指定的实例类型,但该实例类型的架构与启动模板中指定的 AMI 不同。

解决方案 1:不要在您的混合实例策略中包含具有不同架构的实例类型。

  1. 使用 describe-images 命令或在 Amazon EC2 控制台中查看 Amazon Machine Images (AMI) 页面详细信息窗格上的架构值,以验证 AMI 的架构。

  2. 使用 describe-instance-types 命令或在 Amazon EC2 控制台中查看实例类型屏幕上的架构列,以验证您希望包含在混合实例策略中的每种实例类型的架构。有关选择兼容实例类型的更多信息,请参阅 Amazon EC2 用户指南中的更改实例类型的兼容性。

  3. 使用 update-auto-scaling-group 命令在自动扩缩组中更新或删除不兼容的实例类型。

解决方案 2:要在同一自动扩缩组中同时启动 Arm (Graviton2) 和 x86_64(英特尔)实例,您必须分别使用兼容 ARM 的 AMI 和兼容英特尔 x86 的 AMI 所支持的启动模板来匹配混合实例策略中的实例类型。

  1. 使用 describe-images 命令或在 Amazon EC2 控制台中查看 Amazon Machine Images (AMI) 页面详细信息窗格上的架构值,以在您现有的启动模板中验证 AMI 的架构。

  2. 使用与您打算使用的其他架构相匹配的 AMI 来创建新的启动模板。

  3. 使用 update-auto-scaling-group 命令通过更新您的自动扩缩组来覆盖现有启动模板并为每种兼容的实例类型指定新的启动模板。有关更多信息,请参阅 为实例类型使作不同的启动模板

AMI“<AMI ID>”已禁用,无法运行。启动 EC2 实例失败。

原因:您正试图从已禁用的 AMI 启动实例。有关更多信息,请参阅 Amazon EC2 用户指南中的禁用 AMI

解决方案:

  1. 创建新的启动模板或启动配置,并指定未禁用的 AMI。

  2. 使用 update-auto-scaling-group 命令通过新的启动模板或启动配置更新您的 Auto Scaling 组。