Azure Batch とは

完了

最大限使用される機会は少ない、非常に強力なコンピューティング プラットフォームの永続的なデプロイをサポートするリソースを持つ組織はほぼありません。 通常は、コンピューティング能力を提供するために、Azure Batch のような柔軟でスケーラブルなコンピューティング ソリューションが必要になります。

Azure Batch を使用してアップロードされた浄水メーターの写真に OCR を実行するプロセスの一部として、Azure Batch ワークフローの主要なコンポーネントを理解する必要があります。

ここでは、Azure Batch は何を行うために設計されているのか、また一般的なワークフローで Batch コンポーネントがどのように使用されるのかについて、説明します。

コンピューティング集中型タスクと並列ワークロード

一部のワークロードでは、膨大なコンピューティング能力が必要とされます。 たとえば、財務リスクのモデリング、3D 画像のレンダリング、メディアのコード変換、遺伝子配列分析などです。 場合によっては、タスクがより短時間で実行されるように、これらのワークロードを個別のサブタスクに分割して並列で実行することができます。 3 台の Virtual Machines (VM) を使用すると、3 分の 1 の時間で処理を行うことができます。

非営利の OCR プロジェクトの一部として、Azure Batch を使用して OCR 実行作業を分割し、処理を並列で行って、完了までの時間を短縮することができます。

Azure Batch のコンポーネント

Azure Batch は、このような Azure 上の並列およびコンピューティング集中型の大規模なタスクに使用できます。 大まかに言えば、Azure Batch は多くのコンポーネントの連携を伴います。 Batch リソースすべてのコンテナーとして機能する Azure Batch アカウントのコンテキスト内で、すべてが行われる必要があります。

いくつかのユース ケースでは、実行中に使用する入力ファイルとアプリケーションをダウンロードし、その結果を格納するために、このアカウントを Azure Storage アカウントに関連付ける必要がある場合があります。 Azure Batch アカウント内に、Windows または Linux を実行する仮想コンピューティング ノードのプールを、指定した数と CPU およびメモリ サイズで作成することができます。これらは Azure Batch サービスによって自動的に管理およびスケジュール設定されます。 Batch アカウントには数多くの Batch プールを含めることができます。

1 つまたは複数のプールを作成したら、個別のジョブを作成します。これらのジョブはスケジュール設定した全タスクの論理コンテナーのように機能し、共通プロパティを共有することができます。 やはり、数多くのジョブを作成することができます。

最後に、処理が実際にどのように行われるかを記述したタスクを作成します。 タスクを使用してコマンド ラインを直接呼び出すことも、Azure Storage にアップロードしたアプリケーションをタスクに実行させることもできます。 次の演習では、Azure Batch の主要コンポーネントすべてがどのように連携するかを確認します。

一般的な Azure Batch ワークフロー

一般的な Azure Batch ワークフローとはどのようなものかについて、見てみましょう。 次の図に示すように、Azure Batch の一般的な実際のシナリオには、データとアプリケーションのファイルが必要になります。 これらのデータとアプリケーションのファイルを Azure ストレージ アカウントにアップロードすることで、Batch のワークフローが開始します。 次に、Windows または Linux の仮想コンピューティング ノードを必要な数だけ含む Batch プールを作成します。 時間の経過とともにワークロードの需要が変わる場合、必要に応じて自動スケーリングすることもできます。

その後、Batch サービスはノードをオンラインにして、ノード上でのタスクの実行をスケジュールします。 タスクの実行が開始する前に、処理に必要なデータとアプリケーションのファイルがすべてストレージからダウンロードされることがあります。 タスクの実行中は、ノードの状態とタスクの進行状況を照会することができます。 ノードでタスクが完了すると、タスクの出力を検査すること、または Azure ストレージにプッシュすることができます。

Diagram of the Azure Batch workflow.