バッチ・オブジェクトの連携方法
OCI Batchは、リソースの階層を使用して、大規模なワークロードを定義、グループ化および実行します。各オブジェクトには、ジョブのグループ化からタスクの実行方法の定義まで、特定のロールがあります。バッチ・ジョブを効率的に設定および管理するには、これらのオブジェクトの連携方法を理解する必要があります。
OCIバッチ・オブジェクト間のキー関係
- バッチ・コンテキスト: バッチ・コンテキストは、ワークロードの最上位レベルのコンテナです。これには、ネットワーク設定、フリート、権限、ログ、ジョブの優先順位付けルールなど、実行する必要があるすべてのジョブが含まれます。様々なバッチ・コンテキストを使用して、ワークロードを分離します。詳細は、バッチ・コンテキストの管理を参照してください。
- ジョブ・プール: 各バッチ・コンテキストは、ジョブをジョブ・プールに編成します。ジョブ・プールでは、関連するジョブがグループ化されるため、管理と優先順位付けが容易になります。ジョブ・プール・タグを使用して、ジョブ・プール内のジョブに優先順位を付け、アクセス制御とスケジューリングを支援します。詳細は、ジョブ・プールの管理およびジョブの優先順位付けの構成を参照してください。
- ジョブ: ジョブは、ジョブ・プール内の一連の関連作業を表します。各ジョブは、1つ以上のタスクの論理グループとして機能します。ジョブは、ジョブ・プールまたはジョブ作成プロセス中に適用されたジョブ・プール・タグおよびジョブ・タグを使用して、ジョブ・プールで優先度付けされます。ジョブの優先順位付けによって、バッチ・コンテキストの優先順位付けルールに基づいて最初に実行されるジョブが決まります。詳細は、ジョブの管理およびジョブの優先順位付けの構成を参照してください。
- タスク: タスクは、ジョブ内の個別の実行単位です。タスクは、ジョブの作成時に定義します。詳細は、ジョブの作成に関する項を参照してください。各タスクには次のコンポーネントが含まれます。
- タスク環境: タスク環境では、コンテナ・イメージ、実行ユーザーおよびグループ設定、必要なNFSボリューム・マウントなど、タスクの実行時環境を定義します。タスク環境は再利用できます。タスク環境は1回定義し、複数のタスクに割り当てることができます。詳細は、タスク環境の管理を参照してください。
- タスク・プロファイル: タスク・プロファイルは、タスクに必要な最小コンピュート・リソースを指定します。タスク・プロファイルは再利用可能で、タスク全体のリソース要件の標準化に役立ちます。詳細は、「タスク プロファイルの管理」を参照してください。
- 資格/権利要求: 資格/権利は、ソフトウェア・ライセンスなどの制限されたリソースを制御するために使用されます。所有するリソースを表す権限を作成します。タスクに資格を割り当てると、資格スロットが使用可能な場合にのみタスクが実行されます。タスクの実行では、1つのスロットを使用します。このスロットは、タスクの終了時に解放されます。資格はライセンス・サーバーに接続しません。指定された制限を使用して、同時タスクの最大数を強制します。
- タスクの依存関係: 依存関係は、従属タスクの開始前に前提条件タスクが完了するように実行順序を指定します。
- フリート割当: フリートは、フリートに割り当てられたタスクの実行に使用されるOCIシェイプ構成を表します。タスクの実行準備が完了すると、定義済のフリート割当ポリシーに従って、タスク・プロファイルで指定されたリソース要件(OCPUおよびRAM)に一致する使用可能なコンピュート・フリートにバッチによってスケジュールされます。詳細は、フリートとタスクの照合のトピックのフリート割当ポリシーを参照してください。
- ジョブの優先順位付け: ジョブの優先順位付けにより、複数のジョブがリソースに対して競合する場合に最初に実行するジョブおよびタスクが決まります。バッチは、バッチ・コンテキストで構成したタグと重みを使用して優先順位付けを処理します。ジョブは継承され、ジョブ・プールから優先度をオーバーライドできます。管理者は、優先度の低いジョブより緊急のプロジェクトが実行されるようにポリシーを設定できます。ジョブの発行時またはプールの設定時にタグを適用できます。バッチでは、これらの設定を使用して、現在のバッチ・コンテキストのルールに従ってキュー内のジョブをランク付けします。バッチ・コンテキストの作成時にジョブの優先度を設定します。詳細は、バッチ・コンテキストの管理およびジョブの優先順位付けの構成を参照してください。
バッチ・ワークフローの概要

- イメージおよび外部リソースの準備: コンテナ・イメージを開始、構築およびOracle Cloud Infrastructure (OCI)レジストリにプッシュします。必要なファイル・ストレージを事前に設定し、ストレージおよびコンテナ・イメージにアクセスするための適切な権限があることを確認します。必要なすべてのイメージと外部依存関係を事前に整理しておくと、バッチ・ジョブを円滑に実行できます。
- ロギングおよびネットワーキングの設定: 次に、ログ・グループおよび必要なログを作成します。バッチ・ジョブが他のOCIリソースと安全に通信できるように、Virtual Cloud Network (VCN)およびサブネット・アクセスを構成します。
- 環境の定義: 各ジョブが実行される環境を定義します。バッチ・コンテキストを作成して、様々なワークロードを分離したままにし、テナンシ内のジョブに優先順位を付け、様々なプロジェクトのリソースを管理できます。
- タスク・プロファイルの定義: タスク・プロファイルを作成して、OCPU、メモリー、ディスク領域など、タスクの最小ハードウェア要件を定義します。これらの設定を指定することで、タスクが適切なサイズのコンピュート・フリートにスケジュールされ、リソースの使用量とコストが最適化されます。タスク・プロファイルはフリート割当ポリシーに不可欠であり、バッチは各タスクをニーズに基づいて最適なリソース構成と照合できます。
- バッチ・コンテキストの作成: ジョブを編成および管理するための最上位コンテナとしてバッチ・コンテキストを設定します。ワークロードに必要なネットワーキング、ロギング、フリートおよび権限の設定を定義します。
- ジョブ・プールの作成: 各バッチ・コンテキスト内にジョブ・プールを作成して、関連するジョブをまとめて保持し、必要に応じてワークロードを分離します。ユーザー・アクセスに認可ポリシーを適用し、ジョブ・プール内の様々なプロジェクトまたはチームに特定のリソースをマップできます。ジョブ・プール・タグを使用して、各プール内のジョブの優先度を設定します。
- 職務の定義: 職務はバッチ処理のコア ユニットです。実行のために特定のジョブ・プールに発行します。各ジョブは、完了する必要がある1つ以上のタスクで構成されます。ジョブは、実行時の動的調整のために優先度レベルでタグ付けされるため、重要なジョブが必要なリソースを受け取ることができます。
- タスクの定義: 各ジョブ内の個々のタスクを定義します。タスクは、ワークフローの完了に必要な基本的な計算ステップです。各タスクは、実行するコマンド、環境およびタスク・プロファイルを指定するコンピュート・タスクによって定義されます。各タスクは、コンテナ・イメージや必要なボリューム・マウントなど、実行する必要のあるすべてのものを含むバッチ・タスク環境で実行されます。また、タスク・プロファイルにリンクされ、必要な最小CPUおよびメモリーを定義することで、タスクが正しいフリートと照合されます。
- 実行およびモニター: ジョブを発行し、ジョブ・ダッシュボードを使用して進捗を追跡します。