Amazon EKS コンピュート環境
チュートリアル: Amazon EKS で AWS Batch の使用を開始する EKS コンピュート環境を作成するための簡単なガイドを提供します。このセクションでは、Amazon EKS のコンピューティング環境についてより詳しく説明します。
AWS Batch はマネージド型のバッチ機能を提供することで、Amazon EKS クラスターのバッチワークロードを簡素化します。これには、キューイング、依存関係の追跡、ジョブの再試行と優先順位の管理、ポッド管理、ノードスケーリングが含まれます。 AWS Batch 複数のアベイラビリティーゾーンと複数の Amazon EC2 インスタンスタイプとサイズを処理できます。 AWS Batch Amazon EC2 スポットベストプラクティスのいくつかを統合して、ワークロードを耐障害性のある方法で実行するため、中断が少なくなります。を使用すると、AWS Batch わずかな夜間ジョブや数百万のミッションクリティカルなジョブを自信を持って実行できます。
AWS Batchは、Amazon Elastic Kubernetes Service (Amazon EKS) によって管理される、Kubernetesクラスターのバッチワークロードをオーケストレーションします。 AWS Batchオーバーレイモデルを使用して、このオーケストレーションをクラスターの外部で実施します。AWS Batch は、マネージド型サービスなので、Kubernetes クラスター内にインストールしたり管理したりするコンポーネント (オペレーターやカスタムリソースなど) はありません。AWS Batch クラスターに API AWS Batch サーバーとの通信を許可するロールベースアクセス制御 (RBAC) を設定するだけで済みます。Kubernetes API AWS Batch を呼び出して Kubernetes、ポッドとノード Kubernetes を作成、監視、削除します。
AWS Batch には、ジョブキャパシティ割り当ての観点から最適化を行い、ジョブキューの負荷に基づいてノードを Kubernetes スケールするスケーリングロジックが組み込まれています。ジョブキューが空の場合、設定した最小容量 (デフォルトではゼロ) AWS Batch までノードをスケールダウンします。AWS Batch これらのノードのライフサイクル全体を管理し、ノードをラベルやテイントで装飾します。こうすることで、AWS Batch が管理するノードに他の Kubernetes ワークロードが配置されることはありません。DaemonSets
は例外で、ジョブの適切な実行に必要な監視やその他の機能を提供するために、AWS Batchノードをターゲットにすることができます。さらに、AWS Batchは、管理していないクラスター内のノード上ではジョブ、特にポッドを実行しません。こうすることで、クラスター上の他のアプリケーションに個別のスケーリング・ロジックとサービスを使用できます。
AWS Batch にジョブを送信するには、AWS Batch API を直接操作します。AWS Batch はジョブを podspecs
に変換し、Amazon EKS クラスターで AWS Batch が管理するノードにポッドを配置するリクエストを作成します。kubectl
などのツールを使用して、実行中のポッドやノードを表示できます。ポッドの実行が完了すると、AWS Batchは、システムの低負荷を維持するために作成したポッドを削除する。
有効な Amazon EKS クラスター を AWS Batch に接続すると開始できます。次に、AWS Batch ジョブキューをそれにアタッチし、podspec
と同等の属性を使用して Amazon EKS ジョブ定義を登録します。最後に、ジョブ定義を参照する SubmitJob API オペレーションを使用してジョブを送信します。詳細については、「チュートリアル: Amazon EKS で AWS Batch の使用を開始する」を参照してください。