shiichan

Amazon EKS で EFA と Placement Group が使えるようになったよ!分散学習がもっとスムーズに

やっほー、しぃちゃんだよ!今日は Amazon EKS のノードプール設定がぐっとパワーアップするニュースを紹介するよ!

AWS What's New aws.amazon.com

なにが発表されたの?

AWS What's New で、Amazon EKS(Elastic Kubernetes Service)の EKS Auto Mode と、オープンソースの Karpenter プロジェクトのノードプールで、EC2 Placement Group と EFA(Elastic Fabric Adapter)のネットワークデバイス設定がサポートされたことが発表されたよ。

EFA はインスタンス間を低レイテンシ・高スループットで直結できる EC2 のネットワークアダプタで、分散学習や推論みたいな大量のノード間通信が必要なワークロードでよく使われるもの。Placement Group は EC2 インスタンスの物理的な配置(近くに集めるか、離して分散させるか)を制御する仕組みだよ。この 2 つが、ノードプールの設定から直接コントロールできるようになったの。

今までどうだったの?

これまでも EFA や Placement Group 自体は EC2 の機能として存在してたけど、EKS Auto Mode や Karpenter のノードプール設定から EFA のインターフェース種別や Placement Group の配置戦略を細かく指定する仕組みは無かったの。パフォーマンスや可用性を最適化したいワークロードのために、追加の運用上のワークアラウンドが必要になっちゃうケースがあったんだって。

これで何が変わるの?

今回のアップデートで、EKS Auto Mode と Karpenter のノードプール設定から、EFA 対応インスタンス上でネットワークインターフェースを次のどちらかに構成できるようになったよ。

  • EFA-only:EFA 専用インターフェースのみを使う構成
  • 標準 ENI:通常の Elastic Network Interface を使う構成

これは動的容量(Dynamic)・静的容量(Static)どちらのノードプールでも使えるの。さらに Placement Group についても、ノードプール設定から次の 3 つの配置戦略を直接指定できるようになったよ。

  • cluster:インスタンスを物理的に近くに集めて、低レイテンシ・高帯域の通信を狙う配置
  • spread:インスタンスを個別のハードウェアに分散させて、単一障害の影響を最小化する配置
  • partition:インスタンス群をパーティション単位でグループ化し、障害分離しつつある程度まとめて配置する戦略

これで嬉しいのはこんな人たち。

  • 分散学習・分散推論ジョブで、ノード間の通信帯域を最大化したい ML エンジニア
  • 本番の重要ワークロードで、障害の影響範囲(ブラストラジアス)を最小化したいインフラ担当者
  • EKS Auto Mode や Karpenter でノードプールを運用していて、これまで別途ワークアラウンドを組んでいたプラットフォームチーム

深く潜ってみよう

技術的なポイントで特に押さえておきたいのが、EFA-only インターフェースは IP アドレスを消費しない という点。通常の ENI を使う構成だと、インターフェースごとに VPC の IP アドレスが割り当てられていくけど、EFA-only にすることで IP アドレスを消費せずにフルのインターコネクト帯域を確保できるの。大規模な分散学習クラスタだと VPC の IP アドレス空間がボトルネックになりがちだから、これは地味に効いてくるポイントだよ。

これらの機能は、AWS が公開している EKS Auto Mode ユーザーガイドのネットワークインターフェース設定のセクションと、Karpenter のドキュメントにある NodeClass の仕様から設定できるよ。用途としては、スループットを最大化したい分散学習ジョブに EFA-only + cluster 配置を組み合わせたり、逆に本番の重要サービスには spread 配置で障害分離を優先したりと、ワークロードの性質に合わせて使い分けられるのがポイントだね。

対応リージョンについては、Amazon EKS が使えるすべての AWS リージョンで利用可能とのことだよ。

まとめ

  • EKS Auto Mode / Karpenter のノードプール設定から、EFA のネットワークインターフェースを EFA-only または標準 ENI で構成可能に
  • EFA-only は IP アドレスを消費せず、フルのインターコネクト帯域を確保できる
  • Placement Group の配置戦略(cluster / spread / partition)もノードプール設定から直接指定可能に
  • 動的・静的どちらの容量のノードプールにも対応
  • Amazon EKS が使える全リージョンで利用可能

分散学習・推論でスループットを最大化したいチームにも、本番ワークロードで障害分離を徹底したいチームにも、どちらにも刺さるアップデートだよ!