Azure Spot Virtual Machines を使用する

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット

Azure Spot Virtual Machines を使用すると、大幅にコストを削減して未使用の容量を利用できます。 Azure で容量の回復が必要になると、Azure インフラストラクチャによって Azure Spot Virtual Machines が削除されます。 そのため、Azure Spot Virtual Machines は、バッチ処理ジョブ、開発/テスト環境、大規模なコンピューティング ワークロードなど、中断に対応できるワークロードに最適です。

利用可能な容量は、サイズ、リージョン、時刻などによって異なります。 Azure Spot Virtual Machines をデプロイすると、利用可能な容量がある場合は Azure によって VM が割り当てられますが、このような VM には SLA がありません。 Azure スポット仮想マシンは、高可用性を保証するものではありません。 Azure で容量の回復が必要になると、30 秒前通知の後、Azure インフラストラクチャによって Azure Spot Virtual Machines が無効化されます。

YouTube video about Spot VMs and reducing operational costs of stateless workloads.

削除ポリシー

VM は、容量または設定した最大価格に基づいて削除できます。 Azure スポット仮想マシン の作成では、削除ポリシーを [割り当て解除] (既定値) または [削除] に設定できます。

[割り当てを解除する] ポリシーでは、VM が停止済み/割り当て解除済み状態に移行され、後でもう一度デプロイすることができます。 ただし、割り当てが成功する保証はありません。 割り当てを解除された VM はクォータに影響を及ぼし、基になるディスクのストレージ コストが課金されます。

VM が無効化される際に削除したい場合は、無効化ポリシーを [削除] に設定できます。 無効化された VM は基になるディスクと共に削除されるので、ストレージの料金が引き続き発生することはありません。

Azure Scheduled Events を通じて VM 内通知を受け取ることができます。 これにより、VM が排除されつつある場合には通知が送られ、排除される前にジョブを完了し、タスクのシャットダウンを実行するために 30 秒が与えられます。

オプション 結果
最大価格は現在の価格以上に設定されています。 容量とクォータが使用可能な場合は、VM がデプロイされます。
最大価格は現在の価格未満に設定されています。 VM はデプロイされていません。 最大価格が >= 現在の価格である必要があることを示すエラー メッセージが表示されます。
最大価格が現在の価格以下の場合に、停止または割り当て解除された VM を再開する 容量とクォータがある場合は、VM がデプロイされます。
最大価格が現在の価格未満の場合に、停止または割り当て解除された VM を再開する 最大価格が >= 現在の価格である必要があることを示すエラー メッセージが表示されます。
VM の価格が上がり、現在価格が最大価格を超えています。 VM が削除されます。 実際に削除する前に、30 秒前通知を受け取ります。
無効化後、VM の料金は < 最大価格に戻ります。 VM が自動的に再起動されることはありません。 自分で VM を再起動することができ、現在の価格で課金されます。
最大価格が -1 に設定されている場合 VM は価格の理由により無効化されることはありません。 最大価格は、Standard VM の価格を上限にした現在の価格になります。 標準価格を超えて課金されることはありません。
最大価格を変更する 最大価格を変更するには、VM の割り当てを解除する必要があります。 VM の割り当てを解除し、新しい最大価格を設定して、VM を更新します。

ヒント

Azure で信頼性の高い割り込み可能なワークロードを作成する方法については、Azure Virtual Machine Spot Eviction ガイドを参照してください。

制限事項

次の VM サイズは、Azure Spot Virtual Machines ではサポートされていません。

  • B シリーズ
  • 任意のサイズのキャンペーン バージョン (Dv2、NV、NC、H キャンペーン サイズなど)

Azure Spot Virtual Machines は、21Vianet によって運営される Microsoft Azure を除き、任意のリージョンにデプロイできます。

現在サポートされているオファーの種類は次のとおりです。

  • Enterprise Agreement
  • 従量課金制プラン コード ( 003P)
  • スポンサー (0036P および 0136P)
  • クラウド サービス プロバイダー (CSP) については、パートナー センターを参照するか、パートナーに直接お問い合わせください。

価格

Azure Spot Virtual Machines の価格は、リージョンと SKU に基づいて変動します。 詳細については、LinuxWindows の VM 価格を参照してください。

Azure 小売価格 API を使用してスポット価格に関する情報を問い合わせるという方法で価格情報を問い合わせることもできます。 meterNameskuName の両方に Spot が含まれています。

変動する価格に対して、小数点以下最大 5 桁を使用して、最大価格を米ドル (USD) で設定することができます。 たとえば、0.98765 の値は、1 時間あたり $0.98765 米ドルの最大価格になります。 最大価格を -1 に設定した場合、VM は価格に基づいて削除されません。 VM の価格は、使用可能な容量とクォータがある限り、現在のスポットの価格または標準 VM の価格のいずれか低い方になります。

価格と削除の履歴

ポータル

VM の作成時に、ポータルではあるリージョンの価格と削除率の履歴をサイズ別に表示できます。 [Azure Spot 割引で実行する] チェックボックスをオンにすると、VM のサイズ選択の下に "価格履歴を表示し、近くのリージョンの価格を比較する" というタイトルのリンクが表示されます。 そのリンクを選択すると、指定された VM サイズのスポット価格のテーブルまたはグラフが表示されます。 次の画像の価格と削除率は単なる例です。

ヒント

削除率は "1 時間ごと" に見積もられます。 たとえば、削除率が 10% の場合は、過去 28 日間の履歴削除データに基づいて、VM が次の 1 時間以内に削除される可能性が 10% であることを意味します。

グラフ:

Screenshot of the region options with the difference in pricing and eviction rates as a chart.

テーブル:

Screenshot of the region options with the difference in pricing and eviction rates as a table.

Azure Resource Graph

Azure Resource Graph を使用して、関連するスポット VM SKU データにプログラムでアクセスできます。 過去 90 日間の価格履歴と過去 28 日間の無効化率を取得して、特定のニーズをより適切に満たす SKU を特定します。

主な利点:

  • ARM または Azure portal の ARG Explorer を使用して、スポットの無効化率と過去数か月間のスポット価格に対してプログラムでクエリを実行する 
  • カスタム クエリを作成し、SKU やリージョンなど、さまざまなパラメーターをフィルター処理する機能を使用して、シナリオに関連する特定のデータを抽出する
  • 複数のリージョンと SKU 間でデータを簡単に比較する
  • 価格や無効化率が低い別のスポット SKU またはリージョンを検索する

Azure portal の ARG Explorer を使用して、スポット価格履歴と無効化率に関する次のサンプル クエリを試してください。 スポット価格履歴と無効化率データが表 SpotResources に示されます。 

スポット価格履歴のサンプル クエリ:

SpotResources 
| where type =~ 'microsoft.compute/skuspotpricehistory/ostype/location' 
| where sku.name in~ ('standard_d2s_v4', 'standard_d4s_v4') 
| where properties.osType =~ 'linux' 
| where location in~ ('eastus', 'southcentralus') 
| project skuName = tostring(sku.name), osType = tostring(properties.osType), location, latestSpotPriceUSD = todouble(properties.spotPrices[0].priceUSD) 
| order by latestSpotPriceUSD asc 

スポット無効化率のサンプル クエリ:

SpotResources 
| where type =~ 'microsoft.compute/skuspotevictionrate/location' 
| where sku.name in~ ('standard_d2s_v4', 'standard_d4s_v4') 
| where location in~ ('eastus', 'southcentralus') 
| project skuName = tostring(sku.name), location, spotEvictionRate = tostring(properties.evictionRate) 
| order by skuName asc, location asc

代わりに、ARG REST API を使用して、価格履歴と無効化率履歴データを取得することもできます。

よく寄せられる質問

Q: 作成後、Azure スポット仮想マシンは通常の標準の VM と同じになりますか?

A: はい。ただし、Azure Spot Virtual Machines に対する SLA はなく、いつでも無効化される可能性があります。

Q: 排除された後も容量が必要な場合はどうすればよいですか?

A: 容量がすぐに必要な場合は、Azure Spot Virtual Machines ではなく、標準の VM を使用することをお勧めします。

Q: Azure Spot Virtual Machines のクォータはどのように管理されますか?

A: Azure Spot Virtual Machines には、個別のクォータ プールがあります。 スポット クォータは、VM とスケール セット インスタンスの間で共有されます。 詳細については、「Azure サブスクリプションとサービスの制限、クォータ、制約」をご覧ください。

Q: Azure Spot Virtual Machines に追加のクォータを要求することはできますか?

A: はい。標準のクォータ要求プロセスを通じて、Azure Spot Virtual Machines のクォータを増やす要求を送信することができます。

Q: どこで質問を投稿できますか。

A:Q&A で質問を投稿し、azure-spot のタグを付けることができます。

質問: スポット VM の最大価格を変更する方法はありますか。

A: 最大価格を変更する前に、VM の割り当てを解除する必要があります。 その後、VM の [Configuration](構成) セクションで、ポータルの最大価格を変更できます。

次のステップ

CLIポータルARM テンプレート、または PowerShell を使用して、Azure Spot Virtual Machines をデプロイします。

また、Azure Spot Virtual Machine インスタンスを使用したスケール セットをデプロイすることもできます。

エラーが発生した場合は、エラー コードを参照してください。