在更改 EC2 Linux 实例的实例类型之前,我需要采取哪些步骤?

上次更新时间:2020 年 6 月 22 日

我的系统需要比当前 Amazon Elastic Compute Cloud (Amazon EC2) 实例上的可用 CPU 或内存更多的 CPU 或内存。在调整实例大小之前应采取哪些步骤来确保成功过渡? 

简短描述

通过更改 EC2 Linux 实例的实例类型,您可以更改:

  • CPU 内核数量
  • RAM 的量
  • Amazon Elastic Block Store (Amazon EBS) 优化
  • 增强联网
  • GPU 内核数

在更改实例类型或实例系列之前,请验证当前实例类型与新实例类型是否兼容。

解决方法

更改实例类型时,以下常见问题会导致兼容性问题。为确保实例类型更改成功,请务必查看这些方面的内容。有关兼容性问题的完整列表,请参阅调整实例大小的兼容性

验证兼容性后,您可以调整 Amazon EBS 支持的实例大小

停止您的实例

更改实例类型之前,您必须停止实例。停止实例前,确保了解以下内容:

  • 如果您的实例受实例存储支持或具有包含数据的实例存储卷,则在实例停止时数据将丢失。如果要从一个实例存储支持的实例迁移到另一个实例存储支持的实例,您必须迁移实例存储支持的实例。有关更多信息,请参阅迁移实例存储支持的实例
  • 如果您的实例是 Amazon EC2 Auto Scaling 组的一部分,停止实例可能会终止实例。如果您使用 Amazon EMR、AWS CloudFormation 或 AWS Elastic Beanstalk 启动实例,您的实例可能是 AWS Auto Scaling 组的一部分。在这种情况下,是否会发生实例终止取决于您的 Auto Scaling 组的实例缩减保护设置。如果您的实例是 Auto Scaling 组的一部分,则在开始执行解决步骤之前,暂时从 Auto Scaling 组中删除该实例
  • 如果您未使用弹性 IP 地址,则停止并重启实例会更改实例的公有 IP 地址。在将外部流量路由到您的实例时,最佳做法是使用弹性 IP 地址而不是公有 IP 地址。如果您使用 Route 53,您可能必须在公有 IP 更改时更新 Route 53 DNS 记录


备份您的数据

最佳做法是维持实例和数据的备份。在更改您的基础设施之前,考虑创建 AMI创建 EBS 卷的快照

增强联网

如果要转换为支持增强联网的实例,请确保安装所有必需的驱动程序并在当前实例上启用增强联网。有关更多信息,请参阅 Linux 上的增强联网

基于 Nitro 的实例类型

在将实例更改为基于 Nitro 的实例类型之前,请确认实例上已安装 NVMe 和 ENA 模块,并且 /etc/fstab 中列出的任何块储存设备均与 NVMe 块储存设备名称(/dev/nvme1/dev/nvme2 等)兼容。要自动执行这些检查,请运行 NitroInstanceChecks 脚本。有关更多信息,请参阅为何我的 Linux 实例在我将其类型更改为基于 Nitro 的实例类型后未启动,并按照运行 NitroInstanceChecks 脚本部分中的说明进行操作。

在运行脚本并进行必要的更新之后,请验证 /etc/udev/rules.d/70-persistent-net.rules 中的驱动程序条目已设置为 ? 还是 ENA

使用文本编辑器来访问该文件。以下示例使用 vi 编辑器。

vi /etc/udev/rules.d/70-persistent-net.rules

正确的条目如下所示:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="01:23:45:67:89:ab", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0

最新一代实例上的联网

最新一代实例只能在 Virtual Private Cloud (VPC) 中启动。如果您的当前实例是 EC2-Classic 实例,则将实例迁移到 VPC 中的 Linux 实例


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?