Azureでは多様なサービスが提供されており、バッチ処理の実行環境を構築する際にどれを利用すべきか迷うかもしれない。

 最初に理解しておきたいのは、Azureのサービスがオンプレミス(自社所有)環境におけるジョブ管理機能をすべて網羅できているとはいえないことだ。

 ここでいうジョブ管理機能とは、バッチ処理を構成するジョブ同士の順序を管理し、設定されたスケジュールやファイル登録、先行ジョブ完了などのトリガーに基づいてジョブを実行するといったもの。Azure上でこうした機能を実現するには基本的に、ジョブ管理パッケージソフトを仮想マシンで稼働させるか、自前で作り込む必要がある。

 Azureにはバッチ処理専用サービスの「Azure Batch」がある。これは、気象データや遺伝子配列の分析に用いる並列コンピューティング/ハイパフォーマンスコンピューティング(HPC)の実行基盤を提供するPaaSだ。大規模なコンピューティング処理を必要とするジョブを、多数の仮想マシンで並列実行するようにスケジュール設定し、ジョブの処理負荷に合わせてコンピューティングリソースを自動的に増減させる。

 Azure BatchはHPCでは有用だが、多くのユーザー企業が必要とする一般的な規模のバッチ処理を想定すると、Azureでは別のサービスを使ったほうがよい。Azureにはそのためのサービスが充実している。

 そこで本稿では、HPCを除く一般的な規模のバッチ処理向け実行環境を、Azureでどのように構築すべきかについて解説する。