Azure Batch ソリューションの設計

完了

Azure Batch では、大規模なアプリケーションをクラウドで効率的に実行します。 コンピューティング集中型のタスクをスケジュールし、インフラストラクチャを管理せずにソリューションのリソースを動的に調整できます。 Azure Batch によって、コンピューティング ノード (仮想マシン) のプールを作成して管理できます。 また Azure Batch では、実行するアプリケーションをインストールし、コンピューティング ノードで実行するようにジョブをスケジュールすることもできます。

Azure Batch について知っておくべきこと

Azure Batch がインフラストラクチャに最適なコンピューティング ソリューションになるシナリオは数多くあります。 Azure Batch は Azure Virtual Machines に似ていますが、新しいワークロードのビルドやデータの移行に使用できます。

Flowchart that shows the decision tree for selecting Azure Batch to build new workloads, and to support lift and shift or cloud-optimized migrations.

  • Azure Batch は、独立して実行されるアプリケーション (並列ワークロード) で適切に動作します。

  • Azure Batch は、相互に通信する必要があるアプリケーション (密結合ワークロード) にも有効です。 たとえば、Batch を使用して、金融サービス企業のためにモンテ カルロ シミュレーションを実行するサービスや、画像を処理するサービスをビルドできます。

  • Azure Batch を使用すると、何十、何百、何千もの仮想マシンにスケーリングできる、大規模な並列でハイ パフォーマンス コンピューティング (HPC) のバッチ ジョブを実現できます。 ジョブを実行する準備ができたら、Azure Batch により次のことが行われます。

    • コンピューティング仮想マシンのプールを開始する。
    • アプリケーションとステージング データをインストールする。
    • 必要なすべてのタスクが含まれるジョブを実行する。
    • 障害を特定し、作業を再度キューに入れ、作業が完了したらプールをスケールダウンする。

Azure Batch の動作の仕組み

Azure Batch の一般的な実際のシナリオには、データとアプリケーションのファイルが必要になります。 Batch のワークフローは、データとアプリケーションのファイルを Azure ストレージ アカウントにアップロードして開始します。 需要に基づいて、Windows または Linux の仮想計算ノードが必要な数だけ含まれる Batch プールを作成します。 需要が増えたら、計算ノードを自動的にスケーリングできます。

Diagram that shows how Azure Batch works to upload, download, create, and monitor tasks.

独自の構成を計画する際に、シナリオの側面をご自分のサービスと Azure Batch コンピューティングの 2 つの部分に分けることができます。

  • プラットフォームとして Azure を使用するご自分のサービス。 このプラットフォームは、計算集中型の作業を実行し、結果を取得するために使用されます。 ジョブとタスクの進行状況を監視することもできます。

  • サービスの背後にあるコンピューティング プラットフォームとして動作する Azure Batch。 Batch では、Azure Storage を使用して、タスクを実行するために必要なアプリケーションまたはデータを取り込みます。 Azure Batch によって出力が Azure Storage に書き込まれます。 バックには、仮想マシンのコレクション (プール) があります。 プールは、そこでジョブとタスクが実行されるリソースです。

Azure Batch を使用する際の考慮事項

Azure Batch を使用するためのベスト プラクティスをいくつか見てみましょう。 提案を確認しながら、Tailwind Traders インフラストラクチャに Azure Batch を統合すると実現できるシナリオについて考えます。

  • プールを検討します。 ジョブが短時間実行されるタスクで構成されている場合は、ジョブごとに新しいプールを作成しないでください。 新しいプールを作成するためのオーバーヘッドにより、ジョブの実行時間が短縮されます。 また、ジョブでプールを動的に使用することをお勧めします。 ジョブですべてのものに同じプールを使用する場合、プールで問題が発生した場合にジョブが実行されない可能性があります。

  • ノードを検討します。 個々のノードが常に使用可能であるとは限りません。 Azure Batch ワークロードの進捗が確定的で保証されている必要がある場合、複数のノードでプールを割り当てる必要があります。 コンプライアンスまたは規制要件があるワークロードには、分離された仮想マシン サイズの使用を検討してください。

  • ジョブを検討します。 アクティビティを正確に監視してログに記録できるように、ジョブに一意の名前を指定します。 タスクを効率的にサイズ設定されたジョブにグループ化することを検討してください。 たとえば、それぞれに 10 個のタスクを含むジョブを 100 個作成するのではなく、1,000 個のタスクを含むジョブを 1 つ使用する方が効率的です。

ビジネス アプリケーション

数分間で、その他の「Azure Batch のベスト プラクティス」についてお読みください。