Containers

Amazon EKS

Kubernetesの上でGPU/Inferentia/Trainiumノードを扱える、ECSのもう一つのGPU選択肢。OSSのML運用エコシステム(Kubernetes標準ツール群)を前提にするシナリオで名指しされます。

  • B|実装まわり
  • D2 実装と統合

ひとことで言うと

マネージドKubernetesです。GenAIの文脈での役どころはECSのEC2起動タイプとほぼ重なりますが、Kubernetes標準のツール群(Helm・Karpenter・GPU Operator等)をそのまま持ち込める点が違います。GPUだけでなくInferentia・Trainiumのノードもサポート対象です。

要するに、標準規格の工場です。ECSはAWS専用のライン、EKSは業界標準のライン(Kubernetes)。標準規格のぶん、外部のML運用ツール(Kubeflow・Ray等)をそのまま持ち込めます。
その代わり、標準規格を動かすための設定(デバイスプラグイン・ドライバのインストール)は自分たちで面倒を見る場面が増えます。

なぜ生まれたか

自前のGenAIモデルをコンテナでGPU推論・学習させたい要求はECSと同じですが、すでにKubernetesで運用基盤を持つ組織や、OSSのML運用ツール(分散学習・推論のオーケストレーションツール)を前提に設計したいケースでは、AWS専用のオーケストレーションであるECSでは足りません。

EKSはこの隙間を、Kubernetes互換を保ったまま、GPU・Inferentia・Trainiumインスタンス向けに事前構成済みのAMI(EKS-optimized accelerated AMI)を提供することで埋めています。ドライバ・CUDAツールキット・コンテナランタイムがあらかじめ組み込まれているため、Kubernetesのノードとして参加させるだけでアクセラレータが使える状態になります。

ECSでは足りない要求EKSが埋める形
Kubernetes標準ツール(Helm・Kubeflow等)の活用Kubernetes互換のオーケストレーション
Inferentia/Trainium向けの学習・推論Neuron向け最適化AMI
マルチクラウド前提の運用ノウハウAWS専用でないKubernetes API

何に使うか

用途使い方関連ドメイン
GPUノードでの自前モデル推論・学習AL2023/Bottlerocketの NVIDIA向け最適化AMIでノードグループを構成するD2
Inferentia/Trainiumでの推論・学習Neuron向け最適化AMI(aws-neuronx-dkms等を内蔵)でノードを構成するD2・D4
KubernetesネイティブなオートスケールKarpenterと組み合わせ、GPUノードプールを需要に応じて増減させるD4
OSSのMLオーケストレーションKubeflow・Ray等、Kubernetes前提のツールをそのまま載せるD2

試験でどう問われるか

問われ方正解に寄る条件引っかけの選択肢
「Kubernetesの運用ノウハウ・ツールを活かしてGenAIモデルをGPUで動かしたい」Kubernetesエコシステム前提 → EKS+GPU最適化AMIECS(AWSネイティブで完結し、Kubernetesツールは持ち込めない)
GPUノードでNVIDIA GPU Operatorを併用したいドライバの二重管理を避ける → EKS-optimized AMI側のドライバインストールを無効化し、Operatorに一本化(もしくは逆)両方が個別にドライバをインストールし競合する構成をそのまま使う
古いP2インスタンスでGPU推論を続けたいP2は非対応 → サポート対象インスタンスタイプへの移行が必要P2をそのままEKSクラスタに参加させようとする(NVIDIAドライバ470以前が必要でEKSは非対応)

Amazon EC2 P2インスタンスはAmazon EKSでサポートされていません。P2が要求する古いNVIDIAドライババージョン(470以前)が理由で、公式に非対応と明記されています。GenAIの学習・推論コストを抑えるためにレガシーなGPUインスタンスを使い回そうとするシナリオでは、この非対応が引っかけとして機能します。

実務でどう使うか

  • EKS-optimized accelerated AMIには、GPU向け(NVIDIA)とアクセラレータ向け(Neuron/Inferentia・Trainium)の2系統がある。 モデルの実行先ハードウェアに応じて選ぶAMIが変わります
  • NVIDIA GPU OperatorとEKS-optimized AMIを併用する場合、ドライバとツールキットのインストールをどちらか一方に一本化する必要があります。 両方が個別にインストールを試みると競合します
  • NVIDIA Kubernetesデバイスプラグイン・DRAドライバはAL2023 NVIDIA AMIには含まれていません。 別途インストールが必要で、Bottlerocket側は構成が異なります。AMIの種類ごとに「何が最初から入っていて、何を自分で足すか」が違う点に注意します
  • 新しいGPU世代(G7)は最新のEKS-optimized AMIでもドライババージョンが対応していないことがあります。 最新世代のインスタンスを使う場合はカスタムAMIのビルドが必要になる場合があります
AMI系統対応ハードウェア
AL2023 / Bottlerocket NVIDIAGPU(p3・p4d・p5・g4dn・g5・g6等)
AL2023 / Bottlerocket NeuronInferentia・Trainium

取り違えやすいもの

迷う相手切り分けの一言
Amazon ECS(EC2起動タイプ)どちらもGPUインスタンスでコンテナを動かせる。Kubernetes標準ツール・マルチクラウド前提ならEKS、AWSネイティブな構成で完結するならECS
SageMaker AI(HyperPod等)SageMaker AIはMLライフサイクル管理までカバーするマネージドサービス。EKSはオーケストレーション基盤であり、その上のML運用は自分たちで組む
AWS FargateFargateにGPUという選択肢はそもそも存在しない。GPUが要件に出た時点でEKS(またはECSのEC2起動タイプ)に絞られる
Amazon BedrockBedrockは基盤モデルを借りる。EKSは自前のモデル・自前の推論スタックをKubernetes上で建てる選択で、要件が「独自モデル・独自の運用ツール」であるほどEKS側に寄る

想起チェック

Q1. GenAIモデルの推論をGPUで、かつKubernetesの運用資産を活かして動かしたいときの選択肢は?

Amazon EKS+EKS-optimized accelerated AMIです。ECSはAWSネイティブなオーケストレーションでKubernetesツールを持ち込めないため、Kubernetesエコシステムが前提条件になっているシナリオではEKSが正解に寄ります。

Q2. P2インスタンスでEKSのGPUワークロードを組もうとするとどうなるか?

サポートされていません。 P2が要求する古いNVIDIAドライバ(470以前)にEKSが対応していないためです。GPUインスタンスは現行世代への移行が前提になります。

出典(AWS公式)