Graviton インスタンスとコンテナを使用する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Graviton インスタンスとコンテナを使用する

概要

AWS Graviton インスタンスは、 で実行されているコンテナを含め、Amazon Elastic Compute Cloud (Amazon EC2) で実行されているクラウドワークロードに最適な価格パフォーマンスを提供する AWS ように によって設計されたARMプロセッサを搭載しています AWS。現在、Amazon で使用できる Graviton は 3 世代ありますEC2。このガイドでは、 での Graviton 2 および 3 の使用に焦点を当てています。NET最新バージョンの Graviton を使用すると大幅なコスト削減が見込めるためです。Graviton インスタンスは Linux オペレーティングシステムのみを実行することに注意してください。その結果、Graviton インスタンスは、Linux で実行される NETの強力なサービスですが、Windows オペレーティングシステムやレガシー のオプションではありません。NET フレームワークアプリケーション。

Graviton 3 は、同等のEC2インスタンスよりも 60% 効率が高く、パフォーマンスが最大 40% 向上します。このガイドでは、Graviton を使用するコスト上の利点に焦点を当てていますが、Graviton にはパフォーマンスの向上と環境の持続可能性の向上という追加の利点があることに注意してください。

コストへの影響

Graviton に切り替えると、最大 45% の節約を実現できます。レガシー を再ファクタリングした後。NET アプリケーションを最新の NETバージョンにフレームワークすると、Graviton インスタンスを使用する機能をアンロックできます。Graviton への移行は、. デベロッパーにとって効果的なコスト最適化手法ですNET。

次の表の例は、Graviton インスタンスに移行することで達成できるパフォーマンス向上の可能性を示しています。

Graviton パフォーマンスグラフ

前述の図の結果の作成に使用されるベンチマークアプローチの完全な内訳と説明については、 AWS コンピューティングブログの「Powering .NET 5 with AWS Graviton2: Benchmarks」を参照してください。

効率が向上した理由の 1 つは、x86 と Graviton の間の vCPU の意味の違いです。x86 アーキテクチャでは、vCPU はハイパースレッディングによって達成される論理コアです。Graviton では、vCPU は物理コアに相当し、vCPU をワークロードに完全にコミットできます。

Graviton2 の結果は、同等の x86/x64 インスタンスよりも 40% の価格パフォーマンスが向上しています。Graviton3 では、Graviton2 に対して以下が提供されます。

  • パフォーマンスが 25% 向上し、パフォーマンスプロファイルが向上

  • 最大 2 倍の浮動小数点パフォーマンス

  • 暗号化ワークロードのパフォーマンスが最大 2 倍高速化

  • 機械学習のパフォーマンスが最大 3 倍向上

さらに、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コンパイルされた言語であるため、これを機能させるにはビルドプロセスに従う必要があります。これを行う方法の例については、「」のNET「Graviton」を参照してください GitHub。

コンテナ

コンテナ化されたワークロードの場合は、マルチアーキテクチャコンテナイメージを作成します。これを行うには、Docker ビルドコマンドで複数のアーキテクチャを指定します。例:

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

また、 などのツールを使用して AWS Cloud Development Kit (AWS CDK) 、ビルドのオーケストレーションに役立てることもできます。Docker の例については、Docker ドキュメントの「Building Multi-Arch Images for Arm and x86 with Docker Desktops」を参照してください。

Amazon EC2

x86/x64 ARMから に移行するには、コンパイルステップでARMアーキテクチャをターゲットにします。Visual Studio では、 ARM64 を作成できますCPU。手順については、Microsoft ドキュメントのArm64 およびその他のプラットフォームをターゲットにするようにプロジェクトを設定するには」を参照してください。

を使用している場合はNETCLI、ARMマシンでビルドを実行すると、Graviton 互換ビルドが生成されます。デモを確認するには、Accelerate をご覧ください。NET の AWS Graviton2 で Arm64 を使用した 6 のパフォーマンス YouTube。依存関係の問題により、コンパイル時のエラーが発生し、個別に対処できます。依存関係にARMライブラリがある限り、移行は比較的簡単です。

追加リソース