當我嘗試從 AMI 啟動 EC2 執行個體時,為什麼會停用某些執行個體類型?

1 分的閱讀內容
0

我想從 Amazon Machine Image (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 架構使用的 CPU 指令集與 x86_64 架構系列不同。這些指令提供了將命令傳送至處理器的機制。在軟體編譯期間,人類可讀的軟體程式碼會轉換為 CPU 架構專用的 CPU 指令。該架構類型的任何 CPU 都可以使用這些 CPU 指令。但是,一種架構類型的 CPU 無法理解其他類型的指令集。從某架構編譯的 AMI 僅能在該架構類型的 CPU 上執行。

使用 x86_64 架構建立的 Amazon EC2 執行個體和 AMI 不相容於使用 ARM64 架構的執行個體。當您啟動或變更執行個體類型時,這種不相容性可能會導致下列其中一種情況發生:

  • 您使用選取的 EC2 AMI 啟動 Graviton 執行個體類型時,啟動精靈可能會將新的執行個體類型顯示為無法使用。
  • 如果您變更未使用新架構類型的已部署 EC2 執行個體的執行個體類型,則可能會收到錯誤訊息。錯誤訊息類似下列內容:
    「'm6g.large' 不是 'x86_64’ 架構 'i-xyz' 執行個體的有效執行個體類型」。

若要使用其他架構,請完成以下步驟:

  1. 建立新的 Amazon EC2 執行個體或 AMI。
  2. 將應用程式遷移到新的 Amazon EC2 執行個體中。

**注意:**AMI 可能與您的執行個體類型不相容,而不開啟增強型網路。如需詳細資訊,請參閱如何在 EC2 執行個體上開啟和設定增強型網路?

解決方法

建立新的 Amazon EC2 執行個體或 AMI

所有主要的 Linux 發行版本都可以在 ARM 架構上使用。若要啟動使用 ARM 架構的執行個體:

  1. 開啟 Amazon EC2 主控台
  2. 選擇啟動執行個體,接著再選擇啟動執行個體
  3. 選擇與您發行 ARM 版本相對應的 AMI 旁邊的 64-bit (ARM),然後選擇 Select
  4. 完成執行個體的啟動

將應用程式遷移到新的 Amazon EC2 執行個體

由於指令集不同,因此在架構類型之間無法直接變更執行個體類型。若要將系統移轉至新架構,請完成以下步驟:

  1. 為您選擇的組態啟動新的 EC2 執行個體
  2. 將您的應用程式遷移到新的 EC2 執行個體

相關資訊

AWS Graviton 處理器

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