
- EKS上でJupyterLabとCode Editorを実行できる新アドオン
- セットアップ時間を3〜5日から約5分に短縮
- GPU使用率が最大30%向上する可能性
背景と新アドオン
データサイエンティストは、機械学習パイプラインを動かすEKSクラスター上で、対話型のIDEを使いたいというニーズがある。しかし従来は、クラスターの外にあるJupyterHubや手元のノートPCに移動しなければならず、その間にGPUノード、共有ストレージ、IAMロールなどのインフラを活用できなかった。この課題を解決するのが、AWSが発表した「SageMaker AI Spacesアドオン for Amazon EKS」だ。
このアドオンは、既存のEKSクラスター上でマネージドなJupyterLabとCode Editor環境を実行できる。スタンドアロンのJupyterHub環境を構築するには通常3〜5日かかっていたが、アドオンを使えばデータサイエンティストが約5分で完全に設定されたSpaceを起動できる。
期待できる利点
このアプローチの大きな利点は、対話型のIDEとトレーニングジョブを同じEKSクラスターで動かせることだ。従来のようにノートブック専用の環境を別途用意する必要がなく、ジョブの合間のGPUをIDEに割り当てられる。AWSは、この構成により専用ノートブックフリートと比べてGPU使用率を最大30%向上できる可能性があると説明している。
また、常時稼働のGPU環境を持つ必要がなくなる。専用のノートブック環境を維持するコストは月額数千ドルに上ることもあるが、EKSに統合することでそうした無駄なコストを避けられる。
アーキテクチャの特徴
ソリューションは単一のEKSクラスターを3層で構成する。まずネットワーク層では、Route 53でワイルドカードドメインをインターネット向けのALBに解決し、ACMが発行したTLS証明書で通信を暗号化する。VS Codeからは、SSH-over-SSMのトンネルを使ってSpace Podに直接接続できる。
ルーティング層では、AWS Load Balancer ControllerがALBを管理し、Traefikがホスト名によるルーティングを担当する。認証には、KMSで暗号化したJWTを使う。コンピュートとストレージ層では、Space Podがプライベートサブネットのワーカー上で実行され、EBS CSIドライバーが永続ボリュームを、EFSまたはFSxが共有・高スループットのストレージを提供する。EKS Pod Identityにより、PodごとにスコープされたIAMロールを割り当てられる。
セットアップの要件
セットアップには、EKSクラスターの作成、サブネットのタグ付け、External DNSの設定、AWS Load Balancer Controllerのインストール、TLS証明書の取得、KMSキーの作成などが必要だ。ただし、このアドオンにはいくつかの前提条件がある。
具体的には、EKS Auto Modeを無効にし、Kubernetes 1.30以降のクラシックEC2ノードを使用する必要がある。Spacesアドオンのバージョンは0.1.4以降でなければならない(それ以前はSageMaker HyperPodのみの対応)。さらに、VPC内のすべてのサブネットにあらかじめタグを付けておく必要がある。これを怠ると、ALBがプライベートサブネットに配置され、Spacesにアクセスできなくなる。
運用上の注意点
この構成では、インターネット向けALB、EBSボリューム、EKSクラスターなどにAWSの料金が発生する。また、SSMのアドバンストインスタンス層はSpace Podごとに約0.00695ドル/時間かかるとしている。
セキュリティ面では、Pod Identityのロールを最小権限に絞り、リソースARNを明示的に指定することが推奨されている。また、このアドオンはEKS上にIDEとトレーニング環境を集約するため、チームでの利用を想定する場合は、Amazon Cognitoを使ったOIDCサインインの設定も検討できる。実際の運用には、既存クラスターへの導入やネットワーク構成の調整など、追加の検討事項があるとみられる。
Standing up a standalone JupyterHub environment with GPU access, storage, and authentication typically takes a platform team 3–5 days. With the add-on, a data scientist launches a fully configured Space in about 5 minutes.
GPUアクセス、ストレージ、認証を備えたスタンドアロンのJupyterHub環境を構築するには、プラットフォームチームで通常3〜5日かかります。このアドオンを使えば、データサイエンティストは約5分で完全に設定されたSpaceを起動できます。
日本の開発者・IT企業にとっての意味
日本のIT企業にとって、EKS上でIDEと機械学習ジョブを同じ基盤で動かせることは、GPU資源の効率的な利用につながる。特に、複数のチームがGPUを共有するケースでは、ノートブック専用環境を抱えずに済むため、コスト管理がしやすくなる。一方で、このアドオンはAWSのマネージドサービスに深く依存している。クラウドベンダーロックインが進む点に加え、セットアップにはKubernetesとAWSの権限管理、ネットワーク設定の知識が必要だ。また、サブネットのタグ付けなど、失敗しやすいポイントもあるため、導入時には十分な検証が求められる。
用語解説
- Amazon EKS
- Kubernetesをマネージドで運用できるAWSサービス。コントロールプレーンをAWSが管理する。
- JupyterLab
- ブラウザベースの対話型開発環境。コードや数式、実行結果をノート形式でまとめられる。
- IDE
- 統合開発環境。コードの編集、実行、デバッグをまとめて行うソフトウェア。
- IAMロール
- AWSの操作権限のセット。リソースやサービスに付与してアクセスを制御する。
- Pod
- Kubernetesの最小デプロイ単位。1つ以上のコンテナをまとめて実行する。
- ALB
- Application Load Balancer。HTTP/HTTPSトラフィックを複数のターゲットに振り分ける。
出典
Run interactive IDEs on Amazon EKS with SageMaker AI to power up your AI workflows
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する