Amazon EMR on EKS がジョブ実行の同時実行コントロールのサポートを開始
Amazon EMR on EKS を使用すると、Apache Spark や Flink などのオープンソースのビッグデータフレームワークを Amazon EKS (Elastic Kubernetes Service) クラスターで実行できます。ジョブは仮想クラスターに送信します。仮想クラスターは、EKS クラスター上の名前空間にマッピングされます。アプリケーションのパッケージ化、スケジューリング、実行は EMR on EKS が処理します。 本日、EMR on EKS におけるジョブ実行の受付制御 (admission control) を発表しました。この機能では、ジョブ実行の同時実行コントロールと、StartJobRun API からのバックプレッシャーシグナルをサポートします。
今回のリリースにより、仮想クラスターに同時実行ジョブの制限を設定できるようになりました。これにより、同時に実行されるジョブ実行数と、キューで待機できるジョブ実行数をきめ細かく制御できます。これは、PENDING/SUBMITTED 状態のジョブを表す論理的なキューです。これらのコントロールにより、マルチテナントの共有環境で共有 EKS クラスターが過負荷になるのを防ぎ、ノイジーネイバーに起因するスケジューリングの失敗を回避できます。そのため、需要が高い状況でも、重要なワークロードは予測どおりに実行され続けます。 仮想クラスターには、オプションで 2 つの制限を設定します。maxConcurrentJobRuns は、任意の時点で実行されるジョブの最大数です。maxInQueueJobRuns は、EMR on EKS が受け付けたもののまだ実行を開始していないジョブ実行について、キューの最大の深さを指定します。キューがいっぱいになると、StartJobRun は HTTP の ValidationException を返します。そのため、単一のクラスターに負荷を集中させるのではなく、制御された方法でトラフィックを切り捨てたり、別のクラスターに振り分けたりできます。DescribeVirtualCluster を使用すると、現在の制限とリアルタイムのジョブ数をいつでも確認できます。デフォルトでは制限は適用されません。そのため、オプトインするまで既存のワークロードは影響を受けません。
同時実行ジョブの制限は、EMR on EKS が提供されているすべての AWS リージョンでご利用いただけます。 使用を開始するには、「仮想クラスターの管理」を参照してください。