AWS Batch のコンポーネント
AWS Batch は、リージョン内の複数のアベイラビリティーゾーン間で実行中のバッチジョブを簡略化します。新規または既存の VPC 内に AWS Batch コンピューティング環境を作成できます。コンピューティング環境が稼働し、ジョブキューに関連付けられた後で、ジョブを実行する Docker コンテナイメージを指定するジョブ定義を指定できます。コンテナのイメージは、コンテナレジストリに保存され引き出されます。これは AWS インフラストラクチャの内にある場合も外にある場合もあります。
コンピューティング環境
コンピューティング環境は、ジョブを実行するために使用されるマネージドまたはアンマネージドコンピューティングリソースのセットです。マネージド型のコンピューティング環境では、複数の詳細レベルで目的のコンピューティングタイプ (Fargate または EC2) を指定できます。コンピューティング環境は、特定の EC2 インスタンスタイプや特定のモデル (c5.2xlarge や m5.10xlarge など) を使用するように設定できます。または、最新のインスタンスタイプを使用するように指定することのみを選択できます。また、環境の vCPU の最小数、希望数、最大数を、スポットインスタンスに対して支払う金額と共に、オンデマンドインスタンスの価格と一連のターゲット VPC サブネットの割合として指定できます。AWS Batch によって必要に応じてコンピューティングタイプの起動、管理、終了が効率的に行われます。お客様独自のコンピューティング環境を管理することもできます。その場合は、ユーザー自身が AWS Batch によって作成される Amazon ECS クラスターでインスタンスの設定とスケーリングを行う必要があります。詳細については、AWS Batch のコンピューティング環境 を参照してください。
ジョブキュー
AWS Batch ジョブを送信するときは、コンピューティング環境にスケジュールされるまでそのジョブが存在する、特定のジョブキューに送信します。1 つのジョブキューには、1 つ以上のコンピューティング環境を関連付けることができます。これらのコンピューティング環境には優先度の値を割り当てることができ、複数のジョブキュー自体にまたがって割り当てることもできます。例えば、時間が重要なジョブを送信する高優先度キューや、コンピューティングリソースが安価であるときにいつでも実行できるジョブ用の低優先度キューを持つことができます。詳細については、ジョブキュー を参照してください。
ジョブ定義
ジョブ定義は、ジョブの実行方法を指定します。ジョブ定義は、ジョブのリソースのブループリントであると考えることができます。他の AWS リソースへのアクセスを提供するために、ジョブに IAM ロールを指定することができます。また、メモリ要件と CPU 要件の両方を指定できます。また、ジョブ定義では、永続的ストレージのコンテナのプロパティ、環境変数、マウントポイントを制御できます。ジョブ定義の多くの仕様は、個別のジョブを送信するときに新しい値を指定してオーバーライドできます。詳細については、ジョブ定義 を参照してください。
ジョブ
AWS Batch に送信する作業単位 (シェルスクリプト、Linux 実行可能ファイル、Docker コンテナイメージなど)。ジョブには名前を付けます。ジョブは、ジョブ定義で指定したパラメーターを使用して、コンピューティング環境でコンテナ化されたアプリケーションとして AWS Fargate または Amazon EC2 リソースで実行されます。ジョブは、他のジョブを名前または ID で参照できます。また、他のジョブの正常な完了または指定したリソースのアベイラビリティに依存する場合があります。詳細については、ジョブ を参照してください。
スケジューリングポリシー
スケジューリングポリシーを使用して、ジョブキュー内のコンピューティングリソースをユーザーやワークロード間でどのように配分するかを設定できます。公平配分スケジューリングポリシーを使用すると、ワークロードまたはユーザーに異なる共有識別子を割り当てることができます。AWS Batch ジョブスケジューラのデフォルトは、先入れ先出し (FIFO) 戦略です。詳細については、公平配分スケジューリングポリシー を参照してください。
消費型リソース
消費型リソースは、サードパーティーのライセンストークン、データベースアクセス帯域幅、サードパーティー API への呼び出しを調整する必要性など、ジョブの実行に必要なリソースです。ジョブの実行に必要な消費型リソースを指定すると、Batch はジョブをスケジュールするときにこれらのリソースの依存関係を考慮します。必要なすべてのリソースが利用可能なジョブのみを割り当てることで、コンピューティングリソースの使用率の低下を抑制できます。詳細については、リソース認識型スケジューリング を参照してください。
サービス環境
サービス環境は、AWS Batch がジョブ実行のために SageMaker と統合する方法を定義します。サービス環境により、AWS Batch は AWS Batch のキューイング、スケジューリング、優先度管理機能を提供しながら、SageMaker のジョブを送信および管理できます。サービス環境は、SageMaker トレーニングジョブなどの特定のサービスタイプの容量制限を定義します。容量制限は、環境内のサービスジョブで使用できる最大リソースを制御します。詳細については、AWS Batch のサービス環境 を参照してください。
サービスジョブ
サービスジョブは、サービス環境で実行するために AWS Batch に送信する作業単位です。サービスジョブは、実際の実行を外部サービスに委任しながら、AWS Batch のキューイングおよびスケジューリング機能を活用します。例えば、サービスジョブとして送信された SageMaker トレーニングジョブは AWS Batch によってキューに入れられ、優先順位が付けられますが、SageMaker トレーニングジョブの実行は SageMaker AI インフラストラクチャ内で行われます。この統合により、データサイエンティストと ML エンジニアは、SageMaker AI トレーニングワークロードに対して、AWS Batch の自動ワークロード管理と優先度キューイングを活用できます。サービスジョブは、名前または ID で他のジョブを参照し、ジョブの依存関係をサポートできます。詳細については、AWS Batch のサービスジョブ を参照してください。