使用 Graviton 執行個體和容器 - AWS 規範指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Graviton 執行個體和容器

概觀

AWS Graviton 執行個體採用 的 ARM 處理器 AWS ,旨在為在 Amazon Elastic Compute Cloud (Amazon EC2) 中執行的雲端工作負載提供最佳價格效能,包括在其中執行的容器 AWS。目前有三代的 Graviton 可用於 Amazon EC2。本指南著重於搭配 .NET 應用程式使用 Graviton 2 和 3,因為當您使用最新版本的 Graviton 時,可大幅節省成本。請記住,Graviton 執行個體只會執行 Linux 作業系統。因此,Graviton 執行個體是 Linux 上執行的 .NET 的強大產品,但不是 Windows 作業系統或舊版 .NET Framework 應用程式的選項。

與可比較的 EC2 執行個體相比,Graviton 3 的效率高出 60%,效能最高提升 40%。本指南著重於使用 Graviton 的成本效益,但請務必注意,Graviton 提供效能改善和環境永續性改善的額外優勢。

成本影響

當您切換到 Graviton 時,最多可節省 45%。將任何舊版 .NET Framework 應用程式重構為現代 .NET 版本後,即可解鎖使用 Graviton 執行個體的功能。移至 Graviton 是 .NET 開發人員的有效成本最佳化技術。

下表中的範例顯示遷移至 Graviton 執行個體可以實現效能改善的可能性。

Graviton 效能圖表

如需用於在上圖中建立結果的基準方法的完整明細和說明,請參閱 AWS 運算部落格中的使用 AWS Graviton2:基準為 .NET 5 提供支援

提升效率的其中一個原因是 x86 和 Graviton 之間 vCPU 意義的差異。在 x86 架構中,vCPU 是超執行緒實現的邏輯核心。在 Graviton 中,vCPU 等於實體核心,允許 vCPU 完全投入工作負載。

與相當的 x86/x64 執行個體相比,Graviton2 的結果是價格效能提升 40%。Graviton3 透過 Graviton2 提供下列項目:

  • 效能提升,效能提升 25%

  • 浮點效能高達兩倍

  • 密碼編譯工作負載效能提升高達兩倍

  • 機器學習效能提升高達三倍

此外,Graviton3 是雲端中第一個採用 DDR5 記憶體的執行個體。

下表顯示 Graviton 型執行個體與同等 x86 型執行個體之間節省成本的差異。

此表顯示 Graviton 節省 19.20%。

執行個體類型 架構 vCPU 記憶體 (GB) 每小時成本 (隨需)
t4g.xlarge ARM 4 16 0.1344 美元
t3.xlarge x86 4 16 0.1664 美元

此表顯示 Graviton 節省 14.99%。

執行個體類型 架構 vCPU 記憶體 (GB) 每小時成本 (隨需)
c7g.4xlarge ARM 16 32 0.5781 美元
c6i.4xlarge x86 16 32 0.6800 美元

在考慮 Graviton 時,請務必測試應用程式的效能描述檔。Graviton 無法取代實心軟體開發實務。您可以使用測試來驗證您是否充分利用基礎運算資源。

成本最佳化建議

有多種方式可以利用 Graviton 處理器/執行個體。本節將逐步解說從使用 x86 架構機器移至 Graviton (ARM) 執行個體所需的變更。

在 Lambda 中變更執行時間設定

建議您在 中切換執行期設定 AWS Lambda。如需詳細資訊,請參閱 Lambda 文件中的修改執行期環境。由於 .NET 是編譯語言,因此您必須遵循建置程序才能讓此運作。如需如何執行此操作的範例,請參閱 GitHub 中 Graviton 上的 .NET

容器

針對容器化工作負載,建立多架構容器映像。您可以在 Docker build 命令中指定多個架構來執行此操作。例如:

docker buildx build -t "myImageName:latest" --platform linux/amd64,linux/arm64 --push .

您也可以使用 等工具 AWS Cloud Development Kit (AWS CDK) 來協助協調建置。如需 Docker 的範例,請參閱 Docker 文件中的使用 Docker 桌面建置 Arm 和 x86 的多存檔映像

Amazon EC2

若要從 x86/x64 遷移至 ARM,請在編譯步驟中將 ARM 架構設為目標。在視覺化工作室中,您可以建立 ARM64 CPU。如需說明,請參閱 Microsoft 文件中的如何將專案設定為目標 Arm64 和其他平台

如果您使用的是 .NET CLI,則在 ARM 機器上執行建置會產生與 Graviton 相容的建置。若要觀看示範,請觀看 YouTube 上的使用 Arm64 on AWS Graviton2 加速 .NET 6 效能。 YouTube 相依性問題將導致編譯時間錯誤,然後可以個別解決。只要有任何相依性的 ARM 程式庫,轉換應該相對簡單。

其他資源