Graviton (ARM) インスタンス
このセクションの環境を準備してください:
オンデマンドインスタンスやスポットインスタンスを使用しているかどうかに関わらず、AWSはEC2およびEC2バックのEKSマネージドノードグループ向けに3種類のプロセッサタイプを提供しています。お客様はIntel、AMD、ARM(AWS Graviton)プロセッサの中から選択できます。AWS Gravitonプロセッサは、Amazon EC2で実行されるクラウドワークロードに最適な価格性能を提供するようAWSによって設計されています。
Gravitonベースのインスタンスは、インスタンスタイプの命名規則のプロセッサファミリーセクションにある文字 g で識別できます。

AWS Gravitonプロセッサは、AWS Nitroシステム上に構築されています。AWSはAWS Nitroシステムを構築して、ホストハードウェアのコンピューティングとメモリリソースのほぼすべてをインスタンスに提供します。これは、ハイパーバイザ機能と管理機能をホストから分離し、専用のハードウェアとソフトウェアにオフロードすることで実現されます。これにより、全体的なパフォーマンスが向上し、仮想マシンと同じ物理ホスト上でハイパーバイザソフトウェアを実行する従来の仮想化プラットフォームとは異なります。従来のプラットフォームでは、仮想マシンはホストのリソース を100%利用することができません。AWS Nitroシステムは、人気のあるLinuxオペレーティングシステムやAWSと独立系ソフトウェアベンダーの多くのアプリケーションとサービスによってサポートされています。
Gravitonプロセッサを使用したマルチアーキテクチャ
AWS GravitonはARMに対応したコンテナイメージを必要とします。理想的にはマルチアーキテクチャ(ARM64とAMD64)に対応し、Gravitonとx86インスタンスタイプの両方との互換性を持つようにします。
Gravitonプロセッサは、最大20%低いコスト、最大40%優れた価格性能、第5世代のx86ベースのインスタンスと比較して最大60%低いエネルギー消費を提供するインスタンスにより、マネージドノードグループのEKSエクスペリエンスを強化します。GravitonベースのEKSマネージドノードグループは、Gravitonプロセッサを搭載したEC2 Auto Scalingグループを起動します。
GravitonベースのインスタンスをEKSマネージドノードグループに追加すると、マルチアーキテクチャインフラストラクチャが導入され、アプリケーションが異なるCPU上で実行できるようにする必要があります。つまり、アプリケーションコードが異なる命令セットアーキテクチャ(ISA)実装で利用可能である必要があります。チームがGravitonベースのインスタンスへのアプリケーションの計画と移植を支援するためのさまざまなリソースがあります。有用なリソースとしてGraviton導入計画やGraviton用ポーティングアドバイザーをご確認ください。

リテールストアのサンプルWebアプリケーションアーキテクチャには、x86-64とARM64の両方のCPUアーキテクチャ用に事前にビルドされたコンテナイメージが含まれています。
Gravitonインスタンスを使用する場合、ARM CPUアーキテクチャ用に構築されたコンテナのみがGravitonインスタンス上でスケジュールされるようにする必要があります。ここで、テイントとトレレーションが役立ちます。
テイントとトレレーション
テイントはノードのプロパティで、特定のPodを排除します。トレレーションはPodに適用され、一致するテイントを持つノード上でのスケジューリングを許可します。テイントとトレレーションは連携して、Podが不適切なノード上でスケジュールされないようにします。
テイントされたノードの構成は、特定のPodが特殊なハードウェア(GravitonベースのインスタンスやGPUが接続されたインスタンスなど)を持つ特定のノードグループ上でのみスケジュールされることを確認する必要があるシナリオで役立ちます。この実習では、マネージドノードグループにテイントを設定する方法と、Gravitonベースのプロセッサを実行しているテイントされたノードを使用するようにア プリケーションを設定する方法について学びます。