我想要將我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體移轉到以 AWS Graviton 為基礎的執行個體類型。
簡短說明
若要移轉至以 AWS Graviton 為基礎的的執行個體,請完成下列步驟:
- 判斷應用程式原始碼和程式庫與以 AWS Graviton 為基礎的執行個體的相容性。
- 使用線上或離線方法將資料複製到新執行個體。
如需詳細的移轉策略,請參閱 AWS Graviton Fast Start。
解決方法
注意: 如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,則請參閱對 AWS CLI 進行錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
判斷應用程式原始碼和程式庫的相容性
分析您目前的工作負載需求,確定以 AWS Graviton 為基礎的執行個體是否可以支援它們。
若要確認應用程式原始碼和應用程式的相容性,請使用 Git Hub 網站上的 Porting Advisor for Graviton。
選取與目前執行個體類型具有相同處理器架構的執行個體類型。使用 ARM64 以外的處理器架構的執行個體無法進行就地升級。Amazon Machine Image (AMI) 特定於處理器的架構。
將資料複製到您的新執行個體
線上方法
Porting Advisor for Graviton 提供有關如何移轉軟體的指南。但是,您仍然必須執行測試,以確保移轉的軟體在 Graviton 執行個體上執行。移轉程式碼後,您必須手動將資料複製到新的 Graviton 執行個體。
使用以 ARM64 為基礎的 AMI 建立的 AWS Graviton 執行個體必須具有以 ARM64 為基礎的 Amazon Elastic Block Store (Amazon EBS) 根磁碟區。您可以在啟動時自動產生此根磁碟區。
如果執行個體支援檔案系統類型,則即使它們是使用 x86\ _64 架構建置的,也可以掛載次要磁碟區。將目前執行個體的根磁碟區附加為次要磁碟區,掛載它們,然後將資料複製到 Graviton 根磁碟區。您可以將目前執行個體中的次要磁碟區附加到以 Graviton 為基礎的執行個體。
重要: 最佳做法是在完成下列步驟之前,先對磁碟區進行快照。
若要將資料複製到執行個體,請完成以下步驟:
- 啟動以 ARM64 為基礎的執行個體。
- 安裝必要的套件和應用程式相依性。
- 將新執行個體設定為與來源 (x86) 執行個體相同。您必須將新執行個體設定為與來源執行個體相同,才能順利執行應用程式。
- 若要將資料從 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 旗標。
- 啟動應用程式,然後確認其是否依照預期執行。
離線方法
注意: 您必須在新的 Graviton 執行個體上安裝所需的二進位檔和相依性。
若要將資料複製到執行個體,請完成以下步驟:
-
停止 x86 執行個體。
-
從同一可用區域中的 ARM64 AMI 啟動新執行個體。
-
將 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
-
使用 SSH 連線至 ARM64 執行個體。
-
執行以下命令來掛載 x86 執行個體的根磁碟區:
sudo mount /dev/vol_label /mnt
注意: 將 vol_label 替換為您的裝置名稱。如果需要,請執行 lsblk 命令來檢索裝置名稱。
-
在 ARM64 執行個體的次要磁碟區和根磁碟區之間複製資料。若要複製資料,請使用磁碟管理或移轉工具,例如 rsync。範例:
sudo rsync -avR /source_path /destination_path
注意: 如需有關 rsync 的詳細資訊,請參閱 die.net 網站上的 rsync (1)-Linux 手冊頁面。
-
若要卸載次要磁碟區,請執行以下命令:
sudo umount /mnt
-
從執行個體中分離次要磁碟區。
相關資訊
開始使用 Graviton
GitHub 網站上適用於 Graviton 執行個體的作業系統