

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# GPU インスタンス向けに EKS 最適化高速 AMI を使用する
<a name="ml-eks-optimized-ami"></a>

Amazon EKS は、GPU インスタンス向けに EKS 最適化 Amazon Linux および Bottlerocket AMI をサポートしています。EKS 最適化高速 AMI は、高速 Kubernetes スタック向けに事前構築および検証されたオペレーティングシステムイメージを提供することで、EKS クラスターでの AI および ML ワークロードの実行を簡素化します。標準の EKS 最適化 AMI に含まれるコア Kubernetes コンポーネントに加えて、EKS 最適化高速 AMI には、EKS クラスターで NVIDIA GPU `G` および `P` EC2 インスタンス、ならびに AWS GPU [Inferentia](https://aws.amazon.com/machine-learning/inferentia/) および [Trainium](https://aws.amazon.com/machine-learning/trainium/) EC2 インスタンスを実行するために必要なカーネルモジュールとドライバーが含まれています。

以下の表は、EKS 最適化高速 AMI のバリアントごとにサポートされている GPU インスタンスタイプを示しています。AMI バリアントの最新の更新については、GitHub の EKS 最適化 [AL2023 リリース](https://github.com/awslabs/amazon-eks-ami/releases)と [Bottlerocket リリース](https://github.com/bottlerocket-os/bottlerocket/blob/develop/CHANGELOG.md)を参照してください。


| EKS AMI バリアント | EC2 インスタンスタイプ | 
| --- | --- | 
|  AL2023 x86\$164 NVIDIA  |  p6-b300、p6-b200、p5、p5e、p5en、p4d、p4de、p3、p3dn、g7e、gr6、g6、g6e、g6f、gr6f、g5、g4dn  | 
|  AL2023 ARM NVIDIA  |  p6e-gb200、p6e-gb300、g5g  | 
|  AL2023 x86\$164 Neuron  |  inf1、inf2、trn1、trn2  | 
|  Bottlerocket x86\$164 aws-k8s-nvidia  |  p6-b300、p6-b200、p5、p5e、p5en、p4d、p4de、p3、p3dn、g7e、gr6、g6、g6e、g6f、gr6f、g5、g4dn  | 
|  Bottlerocket aarch64/arm64 aws-k8s-nvidia  |  g5g  | 
|  Bottlerocket x86\$164 aws-k8s  |  inf1、inf2、trn1、trn2  | 

## EKS 最適化 NVIDIA AMI
<a name="eks-amis-nvidia"></a>

EKS 最適化 NVIDIA AMI を使用することで、[NVIDIA のクラウドエンドユーザーライセンス契約 (EULA)](https://s3.amazonaws.com/EULA/NVidiaEULAforAWS.pdf) に同意したものとみなされます。

最新の EKS 最適化 NVIDIA AMI を確認するには、「[推奨 Amazon Linux AMI ID を取得する](retrieve-ami-id.md)」および「[推奨 Bottlerocket AMI ID を取得する](retrieve-ami-id-bottlerocket.md)」を参照してください。

EKS 最適化 AL2023 または Bottlerocket NVIDIA AMI で Amazon Elastic Fabric Adaptor (EFA) を使用する場合は、EFA デバイスプラグインを個別にインストールする必要があります。詳細については、「[Elastic Fabric Adapter を使用して Amazon EKS で機械学習トレーニングを実行する](node-efa.md)」を参照してください。

## EKS AL2023 NVIDIA AMI
<a name="eks-amis-nvidia-al2023"></a>

EKS 最適化 AL2023 NVIDIA AMI で [NVIDIA GPU Operator](https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/overview.html) を使用する場合は、ドライバーとツールキットのオペレータインストールを無効にする必要があります。これらは既に EKS AMI に含まれているためです。EKS 最適化 AL2023 NVIDIA AMI には、NVIDIA Kubernetes デバイスプラグインまたは NVIDIA DRA ドライバーが含まれていないため、これらは個別にインストールする必要があります。詳細については、「[Amazon EKS で NVIDIA GPU デバイスを管理する](device-management-nvidia.md)」を参照してください。

標準の EKS AMI コンポーネントに加えて、EKS 最適化 AL2023 NVIDIA AMI には、以下のコンポーネントが含まれています。
+ NVIDIA ドライバー
+ NVIDIA CUDA ユーザーモードドライバー
+ NVIDIA Container Toolkit
+ NVIDIA ファブリックマネージャー
+ NVIDIA 永続化
+ NVIDIA IMEX ドライバー
+ NVIDIA NVLink サブネットマネージャー
+ EFA 最小構成 (カーネルモジュールと rdma-core)

NVIDIA CUDA ユーザーモードドライバーとアプリケーションコンテナ内で使用される CUDA ランタイム/ライブラリの詳細については、[NVIDIA ドキュメント](https://docs.nvidia.com/deploy/cuda-compatibility/why-cuda-compatibility.html#why-cuda-compatibility)を参照してください。`nvidia-smi` に表示される CUDA バージョンは、ホストにインストールされている NVIDIA CUDA ユーザーモードドライバーのバージョンであり、アプリケーションコンテナで使用される CUDA ランタイム/ライブラリと互換性がある必要があります。

EKS 最適化 AL2023 NVIDIA AMI は、Kubernetes バージョン 1.33 以降ではカーネル 6.12 を、すべての Kubernetes バージョンでは NVIDIA ドライバー 580 バージョンをサポートしています。CUDA 13 以降を使用するには、NVIDIA 580 ドライバーが必要です。

AMI に含まれるコンポーネントバージョンの詳細については、GitHub の EKS 最適化 [AL2023 リリース](https://github.com/awslabs/amazon-eks-ami/releases)を参照してください。EKS AMI が NVIDIA 依存関係を設定する方法の詳細については、EKS AL2023 NVIDIA AMI の[インストールスクリプト](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2023/provisioners/install-nvidia-driver.sh)と[カーネルロードスクリプト](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2023/runtime/gpu/nvidia-kmod-load.sh)を参照してください。実行中の EC2 インスタンスでは、`dnf list installed` コマンドを使用して、インストールされているパッケージとそのバージョンのリストを確認できます。

EKS 最適化 AMI をベースとしてカスタム AMI を構築する場合、コンポーネントの互換性が損なわれる可能性があるため、オペレーティングシステムのアップグレード (`dnf upgrade` など) を実行したり、EKS 最適化 AMI に含まれる Kubernetes または GPU パッケージをアップグレードしたりすることは、推奨もサポートもされていません。EKS 最適化 AMI に含まれるオペレーティングシステムまたはパッケージをアップグレードする場合は、本番環境にデプロイする前に、開発環境またはステージング環境で徹底的にテストすることをお勧めします。

GPU インスタンス用のカスタム AMI を構築する場合は、実行するインスタンスタイプの世代およびファミリーごとに、個別のカスタム AMI を構築することをお勧めします。EKS 最適化高速 AMI は、基盤となるインスタンスタイプの世代およびファミリーに基づいて、ランタイム時にドライバーとパッケージを選択的にインストールします。詳細については、[インストール](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2023/provisioners/install-nvidia-driver.sh)と[ランタイム](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2023/runtime/gpu/nvidia-kmod-load.sh)の EKS AMI スクリプトを参照してください。

## EKS Bottlerocket NVIDIA AMI
<a name="eks-amis-nvidia-bottlerocket"></a>

EKS 最適化 Bottlerocket NVIDIA AMI で [NVIDIA GPU Operator](https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/overview.html) を使用する場合は、ドライバー、ツールキット、デバイスプラグインのオペレータインストールを無効にする必要があります。これらは既に EKS AMI に含まれているためです。

標準の EKS AMI コンポーネントに加えて、EKS 最適化 Bottlerocket NVIDIA AMI には、以下のコンポーネントが含まれています。EFA の最小限の依存関係 (カーネルモジュールと rdma-core) は、すべての Bottlerocket バリアントにインストールされます。
+ NVIDIA Kubernetes デバイスプラグイン
+ NVIDIA ドライバー
+ NVIDIA CUDA ユーザーモードドライバー
+ NVIDIA Container Toolkit
+ NVIDIA ファブリックマネージャー
+ NVIDIA 永続化
+ NVIDIA IMEX ドライバー
+ NVIDIA NVLink サブネットマネージャー
+ NVIDIA MIG マネージャー

NVIDIA CUDA ユーザーモードドライバーとアプリケーションコンテナ内で使用される CUDA ランタイム/ライブラリの詳細については、[NVIDIA ドキュメント](https://docs.nvidia.com/deploy/cuda-compatibility/why-cuda-compatibility.html#why-cuda-compatibility)を参照してください。`nvidia-smi` に表示される CUDA バージョンは、ホストにインストールされている NVIDIA CUDA ユーザーモードドライバーのバージョンであり、アプリケーションコンテナで使用される CUDA ランタイム/ライブラリと互換性がある必要があります。

インストールされているパッケージとそのバージョンの詳細については、[Bottlerocket ドキュメント](https://bottlerocket.dev/en/)の Bottlerocket バージョン情報を参照してください。EKS 最適化 Bottlerocket NVIDIA AMI は、Kubernetes バージョン 1.33 以降ではカーネル 6.12 を、Kubernetes バージョン 1.34 以降では NVIDIA ドライバー 580 バージョンをサポートしています。CUDA 13 以降を使用するには、NVIDIA 580 ドライバーが必要です。

## EKS 最適化 Neuron AMI
<a name="eks-amis-neuron"></a>

Amazon EKS で Neuron を使用するトレーニングおよび推論ワークロードの方法の詳細については、以下のリファレンスを参照してください。
+  [コンテナ - Kubernetes - 開始方法](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/kubernetes-getting-started.html) (AWS Neuron ドキュメント)
+  GitHub での AWS Neuron EKS サンプルによる[トレーニング例](https://github.com/aws-neuron/aws-neuron-eks-samples/blob/master/README.md#training)
+  [Amazon EKS で Inferentia を使用して ML 推論ワークロードをデプロイする](inferentia-support.md) 

最新の EKS 最適化 Neuron AMI を確認するには、「[推奨 Amazon Linux AMI ID を取得する](retrieve-ami-id.md)」および「[推奨 Bottlerocket AMI ID を取得する](retrieve-ami-id-bottlerocket.md)」を参照してください。

EKS 最適化 AL2023 または Bottlerocket Neuron AMI で Amazon Elastic Fabric Adaptor (EFA) を使用する場合は、EFA デバイスプラグインを個別にインストールする必要があります。詳細については、「[Elastic Fabric Adapter を使用して Amazon EKS で機械学習トレーニングを実行する](node-efa.md)」を参照してください。

## EKS AL2023 Neuron AMI
<a name="eks-amis-neuron-al2023"></a>

EKS 最適化 AL2023 Neuron AMI には、Neuron DRA ドライバー、Neuron Kubernetes デバイスプラグインまたは [Neuron Kubernetes スケジューラ拡張機能](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/tutorials/k8s-neuron-scheduler.html)が含まれていないため、これらは個別にインストールする必要があります。詳細については、「[Amazon EKS で Neuron デバイスを管理する](device-management-neuron.md)」を参照してください。

標準の EKS AMI コンポーネントに加えて、EKS 最適化 AL2023 Neuron AMI には、以下のコンポーネントが含まれています。
+ Neuron ドライバー (aws-neuronx-dkms)
+ Neuron ツール (aws-neuronx-tools)
+ EFA 最小構成 (カーネルモジュールと rdma-core)

EKS AMI が Neuron 依存関係を設定する方法の詳細については、EKS AL2023 Neuron AMI [のインストールスクリプト](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2023/provisioners/install-neuron-driver.sh)を参照してください。AMI に含まれるコンポーネントバージョンについては、GitHub の EKS 最適化 [AL2023 リリース](https://github.com/awslabs/amazon-eks-ami/releases)を参照してください。実行中の EC2 インスタンスでは、`dnf list installed` コマンドを使用して、インストールされているパッケージとそのバージョンのリストを確認できます。

## EKS Bottlerocket Neuron AMI
<a name="eks-amis-neuron-bottlerocket"></a>

標準の Bottlerocket バリアント (aws-k8s) には、AWS Inferentia または Trainium EC2 インスタンスでの実行時に自動的に検出およびロードされる Neuron 依存関係が含まれています。

EKS 最適化 Bottlerocket AMI には、Neuron DRA ドライバー、Neuron Kubernetes デバイスプラグインまたは [Neuron Kubernetes スケジューラ拡張機能](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/tutorials/k8s-neuron-scheduler.html)が含まれていないため、これらは個別にインストールする必要があります。詳細については、「[Amazon EKS で Neuron デバイスを管理する](device-management-neuron.md)」を参照してください。

標準の EKS AMI コンポーネントに加えて、EKS 最適化 Bottlerocket Neuron AMI には、以下のコンポーネントが含まれています。
+ Neuron ドライバー (aws-neuronx-dkms)
+ EFA 最小構成 (カーネルモジュールと rdma-core)

Neuron インスタンスで EKS 最適化 Bottlerocket AMIs を使用する場合は、Bottlerocket の user-data で以下を設定する必要があります。この設定により、コンテナは、ワークロード仕様で指定された `runAsUser` および `runAsGroup`の値に基づいて、マウントされた Neuron デバイスの所有権を取得できます。Bottlerocket での Neuron サポートの詳細については、GitHub の [EKS readme でのクイックスタート](https://github.com/bottlerocket-os/bottlerocket/blob/develop/QUICKSTART-EKS.md#neuron-support)を参照してください。

```
[settings]
[settings.kubernetes]
device-ownership-from-security-context = true
```

EKS 最適化 Bottlerocket AMI に含まれる Neuron ドライバーのバージョンについては、[Bottlerocket カーネルキットの変更ログ](https://github.com/bottlerocket-os/bottlerocket-kernel-kit/blob/develop/CHANGELOG.md)を参照してください。