Azure Managed Service Column <Azure運用コラム>

Azure仮想マシンをお得に利用するAzure Spot Virtual Machinesついて解説します!

Category: 入門編

2023.04.19

Azure Spot Virtual Machines概要、特徴、料金について

近年、クラウドサービスは IT システムを構築するにあたって、必要不可欠な存在です。クラウドの大きなメリットは、 IT リソースをオンデマンドに必要な分だけ利用できる柔軟性、状況に応じてスケールアウト・イン、スケールアップ・ダウンが可能な拡張性にあると言えます。このメリットを支えているのが仮想化( Virtualization )技術です。

仮想化技術によってコンピューターリソースを自由に使えるようになったことで、使った分だけ課金される従量制課金の仕組みを採用している事業者がほとんどです。クラウドサービスは大変便利な技術ですが、計画的に利用しないとコスト負担が大きくなってしまう可能性があります。

Azure Spot Virtual Machines は、 SLA が提供されない代わりに、通常の従量課金制よりも大幅に割引された料金で利用できる支払い方法の一つです。本記事では Azure Spot Virtual Machines (以下、スポット仮想マシン)についての概要、仕組み、メリット・デメリット、デプロイ方法について解説します。

1. Azure Spot Virtual Machinesとは?

概要

スポット仮想マシンは余剰リソースを利用した仮想マシンです。余剰リソースであることから、 SLA を保証された仮想マシンよりも割安に利用できます。

Microsoft は、 Azure サービスの安定的に稼働を目的とし、あらかじめ予備となるサーバーリソースを各リージョンのデータセンター内に用意しています。そのため平常時では利用されていない余剰リソースが必ず出てくることになります。この余剰リソースを一時的に安価に利用することができるのがスポット仮想マシンです。

Microsoft としては、平常時は使用されない遊休リソースを有効活用でき、ユーザーからすれば Azure を安価に利用できるので、まさに 両者にとって有益な関係で成り立つサービスと言えます。

利用可能な容量は、サイズ、リージョン、時刻などによって異なりますが、ユーザーは 仮想マシン作成時に「 Azure スポットインスタンス」 項目にチェックするだけで、通常と同じ特性の仮想マシンを低コストで利用できます。

 Azure Spot Virtual Machinesとは?

図版出典:Microsoft 公式サイト

その反面、 Azure 全体のリソースが不足状態になった場合、削除されてしまうデメリットがあります。データセンターで余剰リソースが少なくなるとユーザに通知を行い、自動的に仮想マシンが削除されます。また SLA がなく可用性を保証していない点にも注意が必要です。

そのためバッチ処理ジョブ、開発・テスト環境など、中断に対応できるワークロードに適していると言えるでしょう。

2.Azure Spot Virtual Machines の特徴

通常の仮想マシンとの違い

技術的な仕様は、イメージ、ハードウェア、ディスク、パフォーマンスなど通常の仮想マシンと同様です。主な違いとして、は優先度と可用性にあります。この 2 点について解説します。

優先的なアクセス権がない。

通常の仮想マシンは要求があればいつでもコンピューティングリソースへ優先的にアクセスできます。一方、スポット仮想マシンは、余剰のコンピューティングリソースがある場合にのみデプロイされます。実行を継続できるのは通常の仮想マシンがリソースを必要としないときに限られます。

可用性の保証がない。

可用性が保証されず SLA も存在しません。 SLA とは「サービス品質保証」の意味であり、サービスを提供する事業者が利用者に対し、サービスの品質を保証する契約のことです。代表的なものとしては仮想マシンの稼働時間などが挙げられます。 Azure の SLA については公式サイトをご参照ください。

つまり SLA がないということはデプロイした直後から、いつでも仮想マシンが削除されてしまうリスクがあるということです。仮想マシンが削除されても、何も保証がありません。

利用シーン

ではスポット仮想マシンはどのような環境で利用されるのでしょうか?利用シーンの特徴について解説します。

中断可能なワークロードが推奨

最適な利用シーンは「中断可能」であるという点です。中断可能なワークロードには、いくつか共通する特性があります。時間の制約が最小限または、制約がない、企業にとっての優先度が低い、処理時間が短時間、などの特性を持った環境です。

中断可能なワークロードの例としては、バッチ処理アプリケーション、データ分析、非運用の開発環境、試験環境が挙げられます。このような中断可能な環境におけるコスト削減が求められる場合など、最適な機能と言えるでしょう。

ミッションクリティカルなワークロードでは、優先権があり、 SLA の対象となる通常の仮想マシンを利用することが推奨されます。

スポット仮想マシンの削除種類

リソースへ対する優先権がないため、データセンターで余剰リソースが少なくなるとスポット仮想マシンが削除されますが、その削除にも種類があります。削除の種類は、「容量のみによる削除」 と 「価格または容量による削除」の 2 種類です。

容量のみによる削除

余剰のコンピューティング容量が消失したときに削除がトリガーされます。つまり Azure の余剰リソースがなくなったときのみ削除されます。

価格または容量による削除

余剰のコンピューティング容量が消失したときに加え、自分で設定した「 1 時間あたりの最大希望支払い価格」を超えた場合に削除されます。

設計・運用ポリシーについて

スポット仮想マシンを活用しながら、信頼性を担保し、中断可能なワークロードを構築するための基盤を構築する設計と運用ポリシーについて解説します。

速度のために設計する

スポット仮想マシンで実行されるワークロードでは、余剰のコンピューティングリソースが重要です。もし削除の可能性があるときは、必要なすべてのソフトウェアがプレインストールされた代替となる仮想マシンイメージをあらかじめ準備しておく必要があります。

ソフトウェアがプレインストールされているイメージは、削除の発生後に、アプリケーションが完全に稼働する状態に最短時間で回復することに役立ちます。

複数のVMサイズと場所を使用する

柔軟性を高めるために、複数の仮想マシンの種類とサイズを使用することが推奨されます。 Azure では、さまざまな仮想マシンの種類とサイズがあり、仮想マシンの種類ごとに、削除率のパーセンテージ範囲が規定されています。またリージョンによって削除率のパーセンテージ範囲は異なります。

削除の発生を継続的に監視する

スポット仮想マシンは作成後の SLA がなく、いつでも削除される可能性があるため、信頼性を向上させるための最善の方法は、削除されそうなタイミングを予測することです。そのために利用状況を監視することが推奨されます。

3. Azure Spot Virtual Machines の料金

スポット仮想マシンの価格は、様々な要件によって変動するため、詳細は公式サイトをご参照ください。

スポット仮想マシンについてコストの変動状況を価格履歴より表示する機能があります。「構成」画面から「価格履歴の表示」リンクをクリックで確認可能です。

Azure Spot Virtual Machines の料金

図版出典:Microsoft 公式サイト

4.まとめ

本記事ではスポット仮想マシンについて解説しました。コスト面で大きなメリットがありますが SLA がなく、動いて欲しいときに動く保証がなく、突然削除されるなどのデメリットがあります。

このデメリットはかなり大きな影響があり、使えるシナリオは限られているでしょう。テスト環境としての使用、開発用の環境としての利用、バッチ処理、分析処理などが向いています。

しかし上手く活用することでコスト面における大きなメリットを享受できるため是非、必要な場面で導入を推奨します。導入にあたって難しく感じられる場合、専門家の支援を相談することをお勧めします。

Azure の導入を相談したい

Azure導入支援サービス

Azure 導入支援サービス

Microsoft Azure 導入の具体的な方法の検討や技術検証を専門家にサポートいたします。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Azure導入支援・構築・運用サービス総合カタログ

    Microsoft Azure サービスの導入検討・PoC、設計、構築、運用までを一貫してご支援いたします。
    Azure導入・運用時のよくあるお悩み、お悩みを解決するためのアールワークスのご支援内容・方法、ご支援例などをご確認いただけます。

Microsoft Azureを利用したシステムの設計・構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Azure導入個別相談会(無料)

Tag: Azure Spot Virtual Machines

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php