このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
AI/ML ワークロード用の Amazon EKS クラスターを設定する
ヒント
今後開催予定の Amazon EKS AI/ML ワークショップに登録
このセクションでは、GPU、モデルの重み用の Amazon S3 ストレージ、必要な AWS IAM アクセス許可など、推論ワークロードを実行する準備ができている Amazon EKS クラスターを作成する方法について説明します。
アーキテクチャの概要
セットアップでは、以下のインフラストラクチャが作成されます。
-
GPU 対応ノードを備えた EKS クラスター — オンデマンドフォールバックを備えたスポットキャパシティを使用して G ファミリー GPU インスタンスを動的にプロビジョニングする Karpenter マネージド NodePool。
-
スタックのモニタリング — Prometheus はクラスター、ノード、GPU メトリクスをスクレイプし、Amazon Managed Service for Prometheus (AMP) にリモート書き込みます。Grafana は視覚化用のダッシュボードを提供します。NVIDIA DCGM Exporter は、使用率、メモリ、温度、消費電力、NVLink 帯域幅、テンソルアクティビティなどの GPU 固有のメトリクスを追加します。
-
モデルの重み S3 バケット — モデルの重みを保存するための Amazon S3 バケット。ワークロードポッドに読み取り/書き込みアクセスを許可する EKS Pod Identity の関連付けがあります。
クラスターコンピューティングオプション
このガイドには、クラスターを設定するための 2 つのパスが記載されています。1 つを選択し、すべてのステップを一貫して実行します。
-
EKS Auto Mode — EKS Auto Mode が有効になっている EKS クラスターを 1 つのコマンドでプロビジョニングします。Karpenter ベースの自動スケーリング、EKS ノードモニタリングエージェント、SOCI を使用した高速コンテナプル、NVIDIA デバイスプラグインなど、必要なコンポーネントはすべてすぐに使用できる状態で提供されます。
-
セルフマネージド Karpenter — 各コンポーネントを明示的にインストールして設定します。Karpenter は
eksctlを使用して、自動ノード修復は機能ゲートを介して、EKS ノードモニタリングエージェントは EKS アドオンとして、NVIDIA デバイスプラグインは Helm を使用して行います。また、EKS 最適化 NVIDIA AL2023 AMI を使用して SOCI を設定するカスタムEC2NodeClassを作成します。
設定内容
| Step | 説明 |
|---|---|
|
クラスターを作成する |
GPU ワークロードに必要な EKS コントロールプレーンとクラスターレベルのコンポーネントをプロビジョニングします。 |
|
動的にプロビジョニングされた GPU ノードを作成する |
ワークロードがスケジュールされたときに G ファミリー GPU インスタンスをプロビジョニングする動的 GPU NodePool を定義します。 |
|
サンプルポッドでテストする |
Karpenter をトリガーして GPU 対応ノードをプロビジョニングする |
|
リザーブドキャパシティを追加する (オプション) |
リザーブドキャパシティを優先し、スポット/オンデマンドにフォールバックするために、オンデマンドキャパシティ予約 (ODCR) を NodeClass にアタッチします。 |
|
モニタリングをインストールする |
AMP へのリモート書き込みと GPU メトリクス用の NVIDIA DCGM Exporter を使用して、kube-prometheus-stack (Prometheus + Grafana) をデプロイします。 |
|
モデルの重みバケットを作成する |
S3 バケットを作成し、ワークロードポッドがモデルの重みを読み書きできるように EKS Pod Identity を設定します。 |
はじめに
AWS CLI を使用したステップバイステップの手順については、「CLI を使用して AI/ML ワークロード用の Amazon EKS クラスターを設定する」を参照してください。