当我试图从 AMI 启动 EC2 实例时,为什么有些实例类型不可用?

1 分钟阅读
0

我想从亚马逊云机器镜像(AMI)启动 Amazon Elastic Compute Cloud(Amazon EC2)实例。我想启动的实例类型不可用。

简短描述

AWS Graviton 处理器使用 aarch64(ARM64)架构,不是 x86_64(AMD64)架构。以下是使用 AWS Graviton 处理器的一些实例类型:

  • 一般用途: M7g、M6g、A1、T4g
  • 计算优化: C7g、C7gn、C6g、C6gn
  • 内存优化: R7g、R6g、X2gd
  • 加速计算: G5g
  • 存储优化: Im4gn、Is4gen

ARM64 架构使用与 x86_64 架构系列不同的 CPU 指令集。这些指令提供了一种向处理器发送命令的机制。在软件编译期间,人类可读的软件代码会转换为特定于 CPU 架构的 CPU 指令。该架构类型的任何 CPU 都可以使用这些 CPU 指令。但是,一种架构类型的 CPU 无法理解另一种类型的指令集。从一种架构编译的 AMI 只能在该架构类型的 CPU 上运行。

使用 x86_64 架构创建的 Amazon EC2 实例和 AMI 与使用 ARM64 架构的实例不兼容。当您启动或更改实例类型时,这种不兼容可能会导致以下某一种情况的发生:

  • 当您使用选定的 EC2 AMI 启动 Graviton 实例类型时,启动向导可能会将新的实例类型显示为不可用。
  • 如果您更改已部署但未使用新架构类型的 EC2 实例的实例类型,则可能会收到错误。错误消息与以下内容类似:
    对于架构“x86_64”的实例“i-xyz”,“m6g.large”不是有效的实例类型。

要使用不同的架构,请完成以下步骤:

  1. 创建新的 Amazon EC2 实例或 AMI。
  2. 将应用程序迁移到新的 Amazon EC2 实例。

**注意:**如果未启用增强联网,AMI 可能与您的实例类型不兼容。有关详细信息,请参阅如何在 EC2 实例上启用和配置增强联网?

解决方法

创建新的 Amazon EC2 实例或 AMI

所有主要 Linux 发行版在 ARM 架构上都可用。要启动使用 ARM 架构的实例,请执行下列操作:

  1. 打开 Amazon EC2 控制台
  2. 选择启动实例,然后选择启动实例
  3. 在与您的发行版 ARM 版本对应的 AMI 旁边选择 64 位(ARM),然后选择选择
  4. 完成实例的启动

将应用程序迁移到新的 Amazon EC2 实例

由于指令集不同,因此不可能在架构类型之间直接更改实例类型。要将系统迁移到新的架构,请完成下列步骤:

  1. 为您选择的配置启动新的 EC2 实例
  2. 将您的应用程序迁移到新的 EC2 实例

相关信息

AWS Graviton 处理器

AWS 官方
AWS 官方已更新 10 个月前