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 设为私有而不共享,则启动新实例时可能会导致授权错误。有关共享私有 AM I 的更多信息,请参阅《适用于 Linux 实例的 Amazon 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 的虚拟化类型而异。有关更多信息,请参阅适用于 Linux 实例的 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 控制台中查看实例类型屏幕上的 “架构” 列。有关选择兼容的实例类型的更多信息,请参阅适用于 Linux 实例的 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 控制台中查看实例类型屏幕上的架构列,验证您打算包含在混合实例策略中的每种实例类型的架构。有关如何确定兼容性的信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的更改实例类型的兼容性

  3. 使用update-auto-scaling-group命令从 Auto Scaling 组中更新或移除不兼容的实例类型。

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

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

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

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

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

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

解决方案:

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

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