跳至内容

如何将我的 Amazon EC2 Linux 实例迁移到基于 Graviton 的实例类型?

2 分钟阅读
0

我想将我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例迁移到基于 AWS Graviton 的实例类型。

简短描述

要迁移到基于 AWS Graviton 的实例,请完成以下步骤:

  1. 确定您的应用程序源代码和库与基于 AWS Graviton 的实例的兼容性。
  2. 使用在线或离线方法将您的数据复制到新实例。

有关详细的迁移策略,请参阅 AWS Graviton Fast Start 迅速开启程序

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

确定应用程序源代码和库的兼容性

分析您当前的工作负载需求,以确定基于 AWS Graviton 的实例是否可以支持这些需求。

要验证应用程序源代码和应用程序的兼容性,请使用 GitHub 网站上的 Porting Advisor for Graviton

选择与当前实例类型具有相同处理器架构的实例类型。使用 ARM64 以外的其他处理器架构的实例无法就地升级。亚马逊机器映像 (AMI) 特定于处理器的架构。

将数据复制到您的新实例

在线方法

Porting Advisor for Graviton 提供有关如何迁移软件的指导。但是,您仍必须运行测试以确保迁移的软件在 Graviton 实例上运行。迁移代码后,必须手动将数据复制到新的 Graviton 实例。

使用基于 ARM64 的 AMI 创建的基于 AWS Graviton 的实例必须具有基于 ARM64 的 Amazon Elastic Block Store (Amazon EBS) 根卷。您可以在启动时自动生成此根卷。

如果实例支持文件系统类型,则即使辅助卷基于或采用 x86_64 架构,您也可以挂载辅助卷。将当前实例的根卷作为辅助卷连接,将其挂载,然后将数据复制到 Graviton 根卷。您可以将当前实例中的辅助卷连接到基于 Graviton 的实例。

**重要事项:**最佳做法是在完成以下步骤之前拍摄卷快照

要将数据复制到您的实例,请完成以下步骤:

  1. 启动基于 ARM64 的实例。
  2. 安装必要的软件包和应用程序依赖项。
  3. 将新实例配置为与源 (x86) 实例相同的配置。必须将新实例配置为与源实例相同的配置,才能顺利运行应用程序。
  4. 要将数据从 x86 实例迁移到 Graviton 实例并将应用程序数据同步到新实例,请运行以下命令:
    sudo rsync -avR -e "ssh -i key.pem" /source_path/AppData ec2-user@ec2_dns_name.amazonaws.com:/destination_path
    -a, --archive archive mode
    -R, --relative use relative path names
    -v, --verbose increase verbosity
    **注意:**请勿在此步骤中同步操作系统 (OS) 文件和二进制文件。前面的命令会覆盖远程目标目录中与本地源目录中的文件同名的现有文件。要将现有文件保留在远程目标目录中并仅传输新的或修改过的文件,请使用 --update-u 标志。
  5. 启动应用程序,然后验证其性能是否符合预期。

离线方法

**注意:**您必须在新的基于 Graviton 的实例上安装所需的二进制文件和依赖项。

要将数据复制到您的实例,请完成以下步骤:

  1. 停止基于 x86 的实例

  2. 在同一可用区内从基于 ARM64 的 AMI 启动新实例。

  3. 将基于 x86 的实例的根卷作为辅助设备 (/dev/sdf) 连接到基于 ARM64 的实例。
    要查看基于 ARM64 的可用 AMI 列表,请运行以下 describe-images AWS CLI 命令:

    $ aws ec2 describe-images --owners self amazon --filters "Name=architecture,Values=arm64" --query 'Images[*].[Name]' --output text
  4. 使用 SSH 连接到基于 ARM64 的实例

  5. 运行以下命令以挂载 x86 实例的根卷:

    sudo mount /dev/vol_label /mnt

    **注意:**请将 vol_label 替换为您的设备名称。如果需要,请运行 lsblk 命令来检索设备名称。

  6. 在基于 ARM64 的实例的辅助卷和根卷之间复制数据。要复制数据,请使用磁盘管理或迁移工具,例如 rsync。示例:

    sudo rsync -avR /source_path /destination_path

    **注意:**有关 rsync 的详细信息,请参阅 die.net 网站上的 rsync(1) - Linux man page

  7. 要卸载辅助卷,请运行以下命令:

    sudo umount /mnt
  8. 将辅助卷与实例分离。

相关信息

Getting started with Graviton

GitHub 网站上的 Operating systems available for Graviton based instances

AWS 官方已更新 10 个月前