通常よりも大幅に低コストで Batch コンピューティングを利用可能に

執筆者: Mark Scurrell (Principal Program Manager)

このポストは、5 月 10 日に投稿された Batch computing at a fraction of the price の翻訳です。

 

本日 Microsoft Build 2017 で、Low-Priority VM のパブリック プレビューが発表されました。これは、Azure Batch を使用して通常よりもはるかに低コストで Azure コンピューティングを利用できる新しい種類の VM です。Low-Priority VM はコンピューティング容量の余剰分から割り当てられ、最大 80% の割引料金で提供されます。そのため、特定の種類のワークロードの実行コストを大幅に削減したり、同じコストで非常に多数のワークロードを実行したりできます。

Low-Priority VM の概要

Low-Priority VM を使用すると、通常よりも大幅に割安な料金で各リージョンに存在する余剰容量にアクセスできます。曜日や時間帯、各 VM サイズの需要といった複数の要因により、余剰容量はリージョンや VM サイズごとに異なります。マイクロソフトは、この未使用分の容量を魅力的な料金で効率的に「貸し出し」ます。ただし、お客様からの要求があっても容量の一部または全部をご提供できない場合があるほか、お客様が割り当てた容量についても一部または全部を返していただく場合があることをご理解ください。Low-Priority VM は、その名前が示すとおり優先度が低く、SLA で保証される通常料金の VM の割り当てが優先されるため、割り当てられない場合や割り込みが発生する場合があります。

現在、それぞれの VM サイズについて、既存の通常料金の VM とは別に固定料金の Low-Priority VM が提供されています。詳細については、Azure Batch の料金ページをご覧ください。

Low-Priority VM の使用方法

Low-Priority VM では大幅にコストを削減できますが、利用できない場合や割り込みが発生する場合があるため、すべての種類のワークロードに適しているとは言えません。Low-Priority VM を活用できる主なワークロードはバッチ処理ジョブであり、そのため Low-Priority VM は Azure Batch から提供されています。

バッチ処理ジョブは単一または複数の独立したタスクから構成され、通常は複数の VM を使用して実行されます。そのため、ジョブが途中で中断されても問題なく、実行時間についても柔軟に対応できます。このように、Low-Priority VM には、タスクの中断が許容され、短時間で実行されるタスクから構成されており、実行時間にも余裕があるジョブが適しています。

Azure Batch では、Low-Priority VM に対する最高レベルのサポートを提供しており、中断されたジョブを処理したり、ジョブの実行時間と実行コストのバランスを調整したりなど、Low-Priority VM を利用しやすくすることを目標としています。たとえば、Azure Batch プールには通常のオンデマンド VM と Low-Priority VM の両方を含めることができるうえ、それぞれの種類の VM の数をいつでも増減してバランスを変更できます。

以下に示すように、Azure Batch を使用できるワークロードの大半は Low-Priority VM を活用できます。

  • メディアの処理とトランスコード : 一定時間内に出力を生成する必要がある場合は、その時間内にジョブを処理できるだけの容量を確保する必要があります。一方で、時間に余裕があり、出力の生成に時間がかかってもかまわない場合は、Low-Priority VM を使用して低コストでジョブを実行できます。
  • レンダリング : レンダリング ジョブは個々のフレームやフレーム内のタイルといった単位で多数のタスクに分割され、並列処理が可能です。1 つのジョブが数万個から数十万個のタスクで構成される場合もあります。
  • テスト : テストの中には、大規模な環境で実行する必要があり、所要時間についてはある程度柔軟に対応できるものが多数あります。特に、大規模な回帰テストや負荷テストに適しています。

Azure Batch で Low-Priority VM をご利用いただいているお客様の例として、Combinostics (英語) の事例をご紹介します。Combinostics は設立から日が浅いスタートアップ企業で、脳の画像を処理する cNeuro ツール スイートを通じて、神経疾患の臨床判断を支援しています。最初にリリースされた cMRI モジュールは、脳の MRI を処理するツールです。運用環境での MRI の処理にはかなりの処理能力が必要です。同社は医療サービスを提供していることもあり、更新されたアルゴリズムを検証する場合は大規模な回帰テストを実行する必要があります。Combinostics では、Low-Priority VM を使用することで、この大規模なテストの関連コストを大幅に削減するという多大なメリットを実現しています。

「新しいスタートアップ企業にとって、時間と予算は最も貴重なリソースです。クラウド インフラストラクチャを使用することで、画像処理アルゴリズムを実行するためのセットアップや管理に費やす時間が短縮され、より多くの時間をお客様に向けた価値創造に利用できます。Low-Priority VM は低料金で利用できるため、コストを削減できるだけでなく、テスト セット全体をより頻繁に実行できるようになりました。アルゴリズムの総合的なテストを頻繁に実行することで問題を早期に発見し、開発作業の労力を軽減できます」。

- Combinostics (英語)、研究開発担当責任者、Jussi Mattila 氏

Azure Batch の機能

Low-Priority VM は Azure Batch で容易に使用することが可能で、通常のオンデマンド VM と併用してジョブの実行コストと実行時間の柔軟性のバランスを調整することができます。

  • Azure Batch プールには、オンデマンド ノードと Low-Priority ノードの両方を含めることができます。この 2 種類のノードは、明示的にサイズ変更操作を行うか、自動スケーリングを使用することで、それぞれ個別にスケーリングできます。常に Low-Priority ノードを使用してコスト削減を最優先したり、割り込まれた Low-Priority ノードの代わりに通常料金のオンデマンド ノードを稼動させて容量を維持したりなど、さまざまな構成を選択することができます。
  • Low-Priority ノードで割り込みが発生した場合、プール内の Low-Priority ノードの目標容量を維持できるように、Batch によって失われた分の容量が自動的に置き換えられます。
  • ノードで割り込みが発生して実行中のタスクが中断された場合、そのタスクは再実行するために再び自動的にキューに追加されます。

参照情報

ぜひ Azure Batch Low-Priority VM をご活用ください。本サービスのさらなる改良に向けて、皆様からのフィードバックをお待ちしております。