プール ノードへのアプリケーションとデータのコピー
Azure Batch は、データとアプリケーションをタスクで使用できるように、それらを計算ノードに取り込む方法をいくつかサポートしています。
選択する方法は、お使いのファイルまたはアプリケーションのスコープによって異なる場合があります。 データとアプリケーションは、ジョブ全体を実行するために必要になることがあるため、すべてのノードにインストールする必要があります。 一部のファイルまたはアプリケーションは、特定のタスクにのみ必要になる場合があります。 それ以外もジョブのためにインストールする必要があるかもしれませんが、すべてのノードに存在する必要はありません。 Batch には、これらのシナリオごとにツールが用意されています。
ファイルに必要なスコープを決定する
ファイルのスコープ (プール、ジョブ、タスク) を決定する必要があります。 プールにスコープが設定されているファイルでは、プール アプリケーション パッケージまたは開始タスクを使用する必要があります。 ジョブにスコープが設定されているファイルは、ジョブ準備タスクを使用する必要があります。 プールまたはジョブ レベルでスコープが設定されているファイルの例としては、アプリケーションが挙げられます。 タスクにスコープが設定されているファイルでは、タスク リソース ファイルを使用する必要があります。
プールの開始タスク リソース ファイル
プール内のすべてのノードにインストールする必要があるアプリケーションまたはデータには、プールの開始タスク リソース ファイルを使用します。 この方法は、インストール コマンドを実行するために、アプリケーション パッケージまたは開始タスクのリソース ファイル コレクションのいずれかと共に使用します。
たとえば、開始タスクのコマンド ラインを使用してアプリケーションを移動またはインストールできます。 Azure ストレージ アカウント内のファイルまたはコンテナーの一覧を指定することもできます。 詳細については、REST ドキュメントの Add#ResourceFile を参照してください。
プールで実行されるすべてのジョブが、最初に .msi ファイルを使用してインストールする必要があるアプリケーション (.exe) を実行する場合は、開始タスクの成功を待機プロパティを true に設定する必要があります。 詳細については、REST ドキュメントの Add#StartTask を参照してください。
アプリケーション パッケージの参照
プール内のすべてのノードにインストールする必要があるアプリケーションまたはデータについては、アプリケーション パッケージの使用を検討してください。 アプリケーション パッケージに関連付けられているインストール コマンドはありませんが、開始タスクを使用して任意のインストール コマンドを実行できます。 アプリケーションのインストールが必要ない場合、または多数のファイルで構成されている場合は、この方法を使用できます。
アプリケーション パッケージは、多くのファイル参照を小さなペイロードに結合できるため、多数のファイルがある場合に役立ちます。 100 を超える個別のリソース ファイルを 1 つのタスクに追加しようとすると、1 つのタスクの内部システム制限に対して Batch サービスが発生する可能性があります。 また、アプリケーション パッケージは、同じアプリケーションの異なるバージョンが多数存在し、それらの中から選択する必要がある場合にも役立ちます。
拡張機能
拡張機能は、プロビジョニング後の構成と Batch 計算ノードでのセットアップを容易にする小さなアプリケーションです。 プールを作成するときに、サポートされている拡張機能を選択できます。これは、計算ノードがプロビジョニングされる際に、それらにインストールされます。 その後、拡張機能はその目的の操作を実行できます。
ジョブの準備タスク リソース ファイル
ジョブを実行するためにインストールする必要があるが、プール全体にインストールする必要がないアプリケーションまたはデータについては、ジョブの準備タスク リソース ファイルの使用を検討してください。
たとえば、プールにさまざまな種類のジョブが多数あり、実行するために .msi ファイルが必要なジョブの種類が 1 つしかない場合は、ジョブの準備タスクにそのインストール ステップを配置するのが理にかなっています。
タスク リソース ファイル
タスク リソース ファイルは、アプリケーションまたはデータが個々のタスクにのみ関連する場合に適しています。
たとえば、5 つのタスクがあり、それぞれが別のファイルを処理してから、出力を BLOB ストレージに書き込む場合、タスク リソース ファイル コレクションに入力ファイルを指定する必要があります。これは、各タスクに独自の入力ファイルがあるためです。
ノードにデータを取り込むその他の方法
Azure Batch ノードを制御し、カスタム実行可能ファイルを実行できるため、任意の数のカスタム ソースからデータをプルできます。 Batch ノードがターゲットに接続されていること、およびノード上のそのソースに対する資格情報があることを確認してください。
Batch ノードにデータを転送する方法の例をいくつか次に示します。
- SQL からのデータのダウンロード
- 他の Web サービス/カスタムの場所からのデータのダウンロード
- ネットワーク共有のマッピング
Azure Storage
BLOB ストレージにはダウンロードのスケーラビリティ ターゲットがあることに注意してください。 Azure Storage のファイル共有のスケーラビリティ ターゲットは、1 つの BLOB の場合と同じです。 サイズは、必要なノードとプールの数に影響します。
次のステップ
- Batch でアプリケーション パッケージを使用する方法を確認します。
- ノードとプールの使用の詳細を確認します。