Azure Batchとは?長時間のバッチ処理の効率化を実現するサービスの特徴を解説

公開日:2024年12月24日最終更新日: 2024年12月24日

バッチ処理は時間の掛かるタスクをこなすために使われる手法で、データ分析やAIモデル学習などビジネスの現場でも多く活用されています。また、重い処理が続くことから、夜間や休日のようなサーバーの稼働が少ない時間帯に一括で実行されることが多いです。

ただし、既存のサーバー上で動かすにはパフォーマンスに影響を及ぼす可能性がありますし、新しいサーバーを用意するにも大きなコストが掛かってしまいます。

Azure Batchは、バッチ処理に必要なサーバーリソースが動的に提供されるクラウドサービスです。タスクの処理状況に応じて最適なサーバーリソースが割り当てられ、高パフォーマンスのバッチ処理を低コストで実現できます。本記事ではAzure Batchが得意とする利用場面やその料金体系を解説していきます。

Azure Batchとは

Azure Batchは、バッチ処理に必要な実行環境や管理機能を提供するクラウドサービスです。3Dモデルのレンダリングやビッグデータの分析など長時間のタスクを、時間短縮を図りながらも最適なコストで実施できます。

バッチ処理の規模が大きくなるほど丁度良いインフラの選定が難しくなりますが、Azure Batchではタスクに特化した最適な性能の仮想マシンが用意されています。さらに、並列に稼働する仮想マシンが処理負荷に応じて数台から1,000台規模にまで自動拡張されて効率化が図られるため、利用者はタスクの実行や計画に集中できます。

このようなバッチ処理の管理はAzureポータルサイトから操作もできますし、Web APIを通じてアプリケーションから任意のタイミングで仮想マシン起動からタスク実行まで制御することも可能です。そのため、Azure Batchはサーバーリソースを長く占有するような大規模なバッチ処理に対して特に有効です。

Azure Batchの特徴

Azure Batchは、バッチ処理の計画に最適な次の3つの特徴を持っています。

大規模なバッチ処理の時間を大幅に短縮可能

Azure Batchは次のような高い処理能力が求められるタスクに対して特に有効です。

  • 3Dモデルや映像のレンダリング
  • ビックデータを使った統計処理
  • 機械学習やAIモデルの学習

タスクの実行環境として、高速処理を可能にするCPUやGPUに特化したマシンや、ストレージやメモリを多く積んだマシンなど必要な性能の仮想マシンを選べるため、自前でサーバーを用意しなくても大規模なタスクを効率的にこなせます。

また、処理負荷に応じて仮想マシンの台数が自動的に増減する仕組みを備えており、タスクに対して集中的にサーバーリソースを投下することができます。そのため、長時間で高負荷なタスク処理でもコストを抑えながら時間短縮が図れます。

スポット利用によるコスト最適化

Azure Batchの料金体系はバッチ処理を動かした時間だけ料金が発生する従量課金制です。バッチ処理の実行環境としてコストの異なる仮想マシンが用意されており、その種類や利用時間に応じて料金が決められています。

バッチ処理では複数台の仮想マシンが並列に稼働する仕組みで、使い終わったらそれらの仮想マシンは削除されます。停止している間には無駄な料金が掛からないためコストを抑えることができます。

なお、バッチ処理の実行指示や実行に使用する仮想マシンの構成は、Azureの管理ポータルから簡単に操作できるようになっています。

様々な要件のバッチ処理に対応

Azure Batchはビジネスで必要となる様々な場面のバッチ処理に活用できます。

例えば、処理負荷が高く時間が掛かっているタスクに使うマシンの導入やメンテナンスに大きなコストが掛かっているとき、Azure Batchに初期コストなしで移行することができます。バッチ処理は、Windows環境のバッチやLinuxのシェルによる実行が可能で、さらに既存のアプリケーション内からWeb API経由で様々な操作が可能です。

また、特別なアプリケーションを利用している場合にも対応可能です。必要なアプリケーションをアップロードしておけば、仮想マシン起動時にインストールさせることもできますし、それらをまとめたコンテナを用意しておけばバッチ処理用の仮想マシンとして動かすこともできます。

Azure BatchとAzure Functionsの違い

Azure Batchとよく比較されるサービスとして、サーバーレスのコード実行サービスであるAzure Functionsがあります。

Azure Functionsはサーバー管理が不要なWeb APIを実装できるサービスで、処理時間や実行回数に応じて料金が発生します。Webアプリケーションのバックエンドのように短い応答時間が望ましい場合に適したサービスです。

比較項目Azure BatchAzure Functions
稼働環境仮想サーバー、コンテナサーバーレス
適したケース長時間のバッチ処理Web APIなどリアルタイムな応答
料金体系従量課金制
※サーバー性能ごとに単価が異なる
従量課金制
※タスクの実行時間や呼出回数に依存した

Azure Batchの利用料金

Azure Batchの料金は、仮想マシンのグレードとその使用時間に応じて料金が発生します。下記の表では仮想マシン(Windows Server)のグレードごとに料金を示しています。

汎用

コアメモリ一時ストレージ1時間あたりの料金
A1 v212GiB10GiB4.9106円
A2 v224GiB20GiB10.4349円

メモリの最適化

コアメモリ一時ストレージ1時間あたりの料金
E2a v4216GiB50GiB14.9772円
E4a v4432GiB100GiB29.9237円

ストレージの最適化

コアメモリ一時ストレージ1時間あたりの料金
L8s v2864GiB80GiB67.5202円
L16s v216128GiB160GiB135.0404円

GPU

コアメモリ一時ストレージGPU1時間あたりの料金
NC6656GiB340GiB1X K80107.2650円
NC1212112GiB680GiB2X K80214.5301円

なお、上記の表は2024年12月時点の情報で、東日本リージョンでの料金を1ドル円換算で算出しています。

Azure Batchの使い方

ここからはAzure Batchの使い方を解説します。Azure Batchを利用するにはAzureアカウントに加えて下記サービスの作成が必要です。

  • Batchアカウント
  • ストレージアカウント

以降では、これらのアカウントをAzureポータルから作成する方法を紹介します。さらに、バッチ処理に使用する仮想マシンを選び、実行するタスクを作成する手順も紹介していきます。

なお、以降で紹介する各アカウントやリソースは利用料金が発生するため注意しましょう。

ストレージアカウントの作成

まずはAzureポータルのサービス一覧から「ストレージアカウント」を選択しましょう。

ストレージアカウントの画面に遷移したら「作成」を押します。

ストレージ作成画面が開くので、下記の項目を入力していきましょう。

  • サブスクリプション
  • リソースグループ
  • ストレージアカウント名
  • リージョン

Batchアカウントの作成

Azureポータルのサービス一覧から「Batchアカウント」を選択しましょう。

Batchアカウントの画面に遷移したら「作成」を押します。

Batchアカウントの作成画面が開くので、下記の項目を入力していきましょう。

  • アカウント名
  • 場所
  • 既存のストレージアカウントの選択

プールの作成

続いて、Batchアカウント画面からメニュー「プール」を選び、「追加」を押しましょう。

プール作成画面が開くので、下記の項目を入力していきましょう。

  • プールID
  • 発行者
  • オファー
  • SKU
  • OSディスクストレージアカウントの種類
  • VMサイズ
  • ターゲットの専用ノード数

作成処理が完了すると、プール一覧の画面に追加されていることが確認できます。

タスクの作成

最後に、バッチ処理を動かすためのジョブとタスクを作成していきます。

Batchアカウント画面からメニュー「ジョブ」を選び、「追加」を押しましょう。

ジョブ作成画面が開いたら、下記の項目を入力していきます。

  • ジョブID
  • 既存プールの選択(先ほど作成したプール)

ジョブが作成できたら、プール画面のジョブ一覧に戻ります。作成したジョブを選択するとジョブの画面に移るので、メニュー「タスク」を選びましょう。タスクの画面が開いたら、「追加」を選びます。

タスクの作成画面が開くので、下記の項目を入力していきます。

  • タスクID
  • コマンドライン:cmd /c “set AZ_BATCH & timeout /t 90 > NULL”

なお登録したコマンドでは、環境変数を表示して90秒間待機するという処理が実行されます。

「送信」を押すとタスクが実行されます。タスク一覧の画面からタスクを選ぶと、コマンドの実行結果として出力されたファイルを確認できます。

まとめ

Azure Batchは、長時間掛かるタスクを最適なコストで実施できるインフラを提供するクラウドサービスです。サーバーリソースの構成やタスクの時間調整を気にすることなくタスクをスケジューリングできます。また、タスクに対して適切なリソースを集中投下できるため、バッチ処理1回あたりに掛かるコストの最適化が図れます。

社内でボトルネックになっているタスクをAzure Batchに移行することで時間短縮にもつながり、業務全体の効率化が期待できます。長時間のタスクの実施を必要とする場合や、既存タスクの効率化を図りたい場合にはAzure Batchを検討してみてください。

クラウドの運用代行や導入、開発は23年の実績をもつジードにご相談ください

  • クラウドの運用代行

    クラウドの監視・保守・運用の代行 お客様が運営するクラウドの監視・保守・運用業務を、ジードが代行いたします。

    サービスの詳細はこちら

  • クラウドの設計・構築

    クラウドの設計・構築 お客様のご要望に沿って、適切なクラウド選定から設計・構築までを行います。

    サービスの詳細はこちら

  • クラウド上でのシステム開発

    クラウドの設計・構築 Azure上で、AI + 機械学習、分析、ブロックチェーン、IoTを開発します。

    サービスの詳細はこちら

お問い合わせ・お見積もりのご依頼はお気軽に

トップへ戻る