Azure Batch と信頼性
Azure Batch を使用すると、大規模な並列かつハイパフォーマンス コンピューティング (HPC) のバッチ ジョブを Azure で効率的に実行できます。
Azure Batch は次の用途に使用します。
- コンピューティング ノード (仮想マシン) のプールを作成および管理する。
- 実行するアプリケーションをインストールする。
- コンピューティング ノードで実行するジョブをスケジュールする。
以降のセクションでは、Azure Batch に固有の設計と構成のチェックリスト、推奨される設計、構成オプションについて説明します。
設計と構成のチェックリスト
回復性を考慮して、ワークロードを設計し、Azure Batch を構成しましたか?
- すべてのリージョンでアプリケーション バイナリや参照データを最新の状態に維持します。
- 使用するジョブの数を少なくして、タスクを多くします。
- さまざまなリージョンで複数の Batch アカウントを使用すると、1 つのリージョンで Azure Batch アカウントが使用できなくなった場合でも、アプリケーションの実行を継続できます。
- 持続的なタスクを作成します。
- 各リージョン内に必要なすべてのサービス (Batch アカウントやストレージ アカウントなど) を事前に作成します。
- Batch アカウントを使用して必要な数のコアを割り当てることができるように、事前にすべてのサブスクリプションに適切なクォータが設定されていることを確認してください。
設計と構成に関する推奨事項
次の推奨事項の表を参照して、サービスの信頼性のためにワークロードの設計と Azure Batch の構成を最適化します。
推奨 | Description |
---|---|
すべてのリージョンでアプリケーション バイナリや参照データを最新の状態に維持します。 | 最新の状態に維持することにより、ファイルのアップロードやデプロイを待つことなく、リージョンをすばやくオンラインにできるようになります。 |
使用するジョブの数を少なくして、タスクを多くします。 | 1 つのジョブを使用して 1 つのタスクを実行するのは効率的ではありません。 たとえば、10 個のタスクをそれぞれ含む 100 個のジョブを作成するのではなく、1000 個のタスクを含む 1 つのジョブを使用する方が効率的です。 それぞれが 1 つのタスクを持つ 1000 個のジョブを実行することは、最も非効率的かつ低速で、最もコストがかかる方法です。 |
さまざまなリージョンで複数の Batch アカウントを使用すると、1 つのリージョンで Azure Batch アカウントが使用できなくなった場合でも、アプリケーションの実行を継続できます。 | 高可用性アプリケーションでは複数のアカウントを持つことが重要です。 |
持続的なタスクを作成します。 | タスクは、特に実行時間の長いタスクの場合は、耐障害性があり、再試行に対応できるように設計する必要があります。 タスクが複数回実行されている場合でも、タスクによって同じ単一の結果が生成されるようにします。 同じ結果を実現する 1 つの方法は、タスクを "ゴール シーク" にすることです。 もう 1 つの方法は、タスクが "べき等" になるようにすることです (タスクの実行回数に関係なく、同じ結果が得られます)。 |
各リージョン内に必要なすべてのサービス (Batch アカウントやストレージ アカウントなど) を事前に作成します。 | 多くの場合、アカウントの作成では料金は発生せず、料金はアカウントを使用したときやデータを保存するときにのみ発生します。 |
ヒント
Load Balancerの信頼性ガイダンスの詳細については、「Azure Batchの信頼性」を参照してください。