相对于我当前 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例类型上现有的 CPU 或内存,我的系统需要更多 CPU 或内存。我想知道在更改我的 Linux 实例的实例类型之前需要采取哪些操作。
简短描述
更改实例类型时,您可以修改工作负载的以下配置:
- CPU 内核数量
- RAM 量
- 分配的实例存储空间量
- Amazon Elastic Block Store(Amazon EBS)优化
- 增强联网
- GPU 内核
- FPGA
- 机器学习加速器
**注意:**最佳做法是保留实例和数据的备份。在更改基础设施之前,请创建实例的亚马逊机器映像 (AMI) 或创建 Amazon EBS 卷的快照。
解决方法
验证您当前的实例类型是否与新的实例类型兼容
在更改实例类型或实例系列之前,请验证当前实例类型和新实例类型是否兼容。
停止您的实例
**重要事项:**在停止并启动实例之前,请执行以下操作:
**注意:**当停止或启动某个实例时,该实例的公共 IP 地址将发生变化。最佳做法是使用弹性 IP 地址而不是公共 IP 地址将外部流量路由到您的实例。如果您使用的是 Amazon Route 53,则在公共 IP 地址发生变化时可能需要更新 Route 53 DNS 记录。
要更改实例类型,必须停止您的实例。实例可能需要几分钟才能停止。
(可选)配置增强联网
如果您转换为支持增强联网的实例类型,请安装所有必需的驱动程序。此外,请在您当前的实例上激活增强联网。
(可选)针对基于 Nitro 的实例类型进行配置
如果您将实例类型更改为基于 Nitro 的实例类型,请执行以下操作:
- 确认您已在实例上安装了 NVMe 和 ENA 模块。
- 确认 /etc/fstab 中列出的块设备与 NVMe 块设备名称(例如 /dev/nvme1 和 */dev/nvme2)兼容。
**注意:**对于基于 Nitro 的实例类型,EBS 卷显示为 NVMe 设备。为避免卷不匹配,请在挂载文件系统时使用 UUID 或标签。
要自动执行这些检查,请运行 NitroInstanceChecks 脚本。要访问该脚本,请参阅 GitHub 网站上的 nitro_check_script.sh。有关安装说明,请参阅 Linux 实例在更改为基于 Nitro 的实例后为什么无法启动?中的“在迁移之前自动检查先决条件”
运行脚本并进行必要的更新后,验证 /etc/udev/rules.d/70-persistent-net.rules 中的 DRIVERS 条目是否设置为 ?* 或 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
如果需要,请更新条目,将 DRIVERS 设置为 ?* 或 ENA。
检查您的实例架构的兼容性
如果实例的源 AMI 专为特定架构而构建,则您只能创建具有相同架构的实例类型。例如,32 位 (i386)、64 位 (x86_64) 和 64 位 ARM (arm64) AMI 和 mac1 AMI 专为特定架构而构建。您无法在实例类型之间移动这些映像。
相关信息
Amazon EC2 实例的状态检查
Amazon EC2 定价
如何解决第六代及更高版本的 Amazon EC2 实例的网络性能问题?