azure batchとは
MSのドキュメントの通りですが、
利用用途
1.一時的に
2.大量の計算を
3.並列で実行したい
処理が利用用途に合います。
利点
大量のリソースをAzureマネージドサービスで簡単に準備、処理の実行ができます。
プール、ノード、ジョブ、タスク
azure batchを利用する上で、
- プール
- ノード
- ジョブ
- タスク
これらを理解する必要があり、ドキュメントを読めばわかるのですが、
はじめうまく理解できなかったため、以下のように図にしました。
プール
VMのテンプレート定義と理解しています。
一つのプールには同じスペックのVM(仮想マシン)を複数作成できます。
つまりスペックが異なるVMが必要な場合は別プールを用意する必要があるということです。
ノード
VMという理解で問題ないと思います。
ジョブ
タスクの集合体であり、一つのプールにひも付きます。
ここがポイントだと思っていて、ジョブが紐づくのはプールであり、
ノードではありません。
ジョブに属するタスクがどのノードで実行されるかはAzureBatchによって振り分けられ
利用者視点ではタスクがどのノードで実行されるかを意識する必要はありません。
タスク
大量に実行したいなんらかの処理の最小単位
Azure Batch と Azure Kubernetes Service
Azure BatchとAKS(Azure Kubernetes Service)は似ています。
AKS(Azure Kubernetes Service)をご利用の方は、Azure BatchでできることってAKSでできるのでは?
と思われることでしょう。
用途に応じて使い分けるとよいでしょう。
(個人的には)設定の難易度 Azure Batch < AKS という理解なので、
まずはAzure Batchを検討して、ハマらないようであればAKSを検討する。といった形がよいかと考えます
まとめ
さくっと大量に処理できるリソースを準備したいバッチ処理がある場合にはAzure Batchの利用を
検討されてみてはいかがでしょうか。
実際読んだだけだとよくわからないと思うので実際手を動かしてみるとよいと思います
具体的な設定手順は@nakazaxさんの以下記事がわかりやすいです。
https://qiita.com/nakazax/items/47daae65708bc3188cbf