高可用性とコスト削減のためのスポット優先度ミックス
適用対象: ✔️ フレキシブル スケール セット
Azure では、仮想マシン スケール セットのデプロイに対して中断不可能な標準 VM と中断可能なスポット VM を組み合わせて柔軟に実行できます。 フレキシブル オーケストレーションを使用してこのスポット優先度ミックスをデプロイすることで、ワークロード要件に応じて、利用できる容量の増加とインフラストラクチャ コストの削減の間で容易にバランスを取ることができます。 この機能を使用すると、スケール セット機能の管理が容易になり、次の目標を実現できます。
- スポット VM の大幅な割引を適用することで、コンピューティング インフラストラクチャのコストを削減します
- スケール セットのデプロイで中断不可能な標準 VM を使用して、利用できる容量を維持します
- インフラストラクチャで削除される容量に対応して復旧するよりも前に、削除によってすべての VM が同時に除去されることがないという安心感を与えます
- Azure で VM の作成と削除を調整できるようにすることで、スポット VM と標準 VM の両方を必要とするコンピューティング ワークロードのスケールアウトとスケールインが簡素化されます
制限事項
スケールセットでsinglePlacementMode
が有効になっている場合、スポット優先度ミックスはサポートされていません。
ミックスを構成する
スポット VM と標準 VM 間でカスタムの分布割合を構成できます。 プラットフォームでは、作成または削除する適切な数の VM を選択することで、それぞれのスケールアウト操作とスケールイン操作を自動的に調整して目的の分布を実現します。 また、必要に応じて、任意のスケール操作中に仮想マシン スケール セットで維持する基本の標準 VM の数を構成することもできます。
スポット VM の削除ポリシーは、スケール セット内のスポット VM に設定されている内容に従います。 割り当て 解除は既定の動作であり、削除されたスポット VM は停止割り当て解除状態に移行します。 または、スポット削除ポリシーを [削除] に設定できます。ここで、VM とその基になるディスクは削除されます。
スケールイン ポリシー
スポット優先度ミックスを使用する場合、スケール セットのスケールイン ポリシーは、スケール セット内のスポット VM と 標準 VM の分割率を維持するために動作します。 スポット優先度ミックスは、最も古い VM または最新の VM を削除するのではなく、分割率を維持するために、スケールイン アクション中にスポット VM または 標準 VM を削除する必要があるかどうかを決定します。
ARM テンプレート
スポット優先度の組み合わせを設定するには、ARM テンプレートを使用して、スポット優先度 VM プロファイルを使用するフレキシブル オーケストレーションで、スケール セットに次のプロパティを追加します。
"priorityMixPolicy": {
"baseRegularPriorityCount": 0,
"regularPriorityPercentageAboveBase": 50
},
パラメーター:
baseRegularPriorityCount
– 標準の "通常" の優先度となる VM の基本の数を指定します。スケール セットの容量がこの数以下の場合、すべての VM が "通常" の優先度になります。regularPriorityPercentageAboveBase
– スケール セットの容量が baseRegularPriorityCount を超える場合に使用される "通常" および "スポット" の優先度の VM の分割割合を指定します。
スポット優先度ミックスは、Azure portal の Virtual Machine Scale Sets 作成プロセスの [スポット] タブで設定できます。 以降の手順では、そのプロセス中にこの機能にアクセスする方法について説明します。
- Azure Portal にログインします。
- 検索バーで、[仮想マシン スケール セット] を検索して選択します。
- [仮想マシン スケール セット] ページで [作成] を選択します。
- [基本] タブで、必須フィールドに入力し、[オーケストレーション] モードとして [フレキシブル] を選択し、[Azure Spot 割引で実行する] チェック ボックスをオンにします。
- [スポット] タブで、[VM と割引済みのスポット VM によるスケーリング] セクションの [VM とスポット VM によるスケーリング] オプションの横にあるチェック ボックスをオンにします。
- [ベース VM (中断不可)] と[インスタンスの分散] フィールドに入力して、スポット VM と標準 VM 間の分割率を構成します。
- 仮想マシン スケール セットの作成プロセスを続行します。
スポット優先度ミックスの更新
スポット VM と標準 VM の最適な割合の分割が変更された場合は、スケール セットのデプロイ後にスポット優先度ミックスを更新できます。 スポット優先度ミックスの更新は、変更が行われた 後 のすべてのスケールセットの操作に対して適用されます。一方、既存の VM はそのままの状態で残ります。
Azure ポータルの仮想マシン スケール セット リソース ページの [構成] タブから、既存のスポット優先度ミックスを更新することができます。 以降の手順では、そのプロセス中にこの機能にアクセスする方法について説明します。 注: ポータルでは、既にスポット優先度ミックスが有効化されているスケール セットについてのみ、スポット優先度ミックスを更新することが可能です。
Azure ポータルの仮想マシン スケール セット リソース ページの [構成] タブから、既存のスポット優先度ミックスを更新することができます。 以降の手順では、そのプロセス中にこの機能にアクセスする方法について説明します。 注: ポータルでは、既にスポット優先度ミックスが有効化されているスケール セットについてのみ、スポット優先度ミックスを更新することが可能です。
- スポット優先度ミックスを調整したい特定の仮想マシン スケール セットへと移動してください。
- 左側のバーを下にスクロールし、[構成] を選択してください。
- 現在のスポット優先度ミックスが表示されます。 ここでは、スポット VM と標準 VM の中断不可能なベース VM 数とインスタンスの分布を変更することができます。
- 必要に応じてスポット ミックスを更新します。
- [保存] ボタンを押して、変更を保存します。
例
次の例では、スポット優先度ミックスの構成のしくみを理解するのに役立つように、シナリオの前提条件、アクションの表、結果の各段階の説明を紹介します。
これらの例を参照する前に注意するべき重要な用語:
- sku.capacity は、仮想マシン スケール セット内の VM の合計数です
- ベース (標準) VM は、標準の非スポット VM の数で、最小 VM 数と似ています
シナリオ 1
この例には、次のシナリオ前提条件が適用されます。
- 自動スケーラーによってスケール セットに VM が追加または削除されるため、sku.capacity は可変です
- ベース (標準) VM: 10
- 追加の標準 VM: 0
- スポット優先度 VM: 0
- regularPriorityPercentageAboveBase: 50%
- 削除ポリシー: 削除
操作 | sku.capacity | ベース (標準) VM | 追加の標準 VM | スポット優先度 VM |
---|---|---|---|---|
作成 | 10 | 10 | 0 | 0 |
スケール アウト | 20 | 10 | 5 | 5 |
スケール アウト | 30 | 10 | 10 | 10 |
スケール アウト | 40 | 10 | 15 | 15 |
スケール アウト | 41 | 10 | 15 | 16 |
スケール アウト | 42 | 10 | 16 | 16 |
スケール イン - Evict-Delete (すべてのスポット インスタンス) | 26 | 10 | 16 | 0 |
スケール アウト | 30 | 10 | 16 | 4 |
スケール アウト | 42 | 10 | 16 | 16 |
スケール アウト | 44 | 10 | 17 | 17 |
例の各段階の説明:
- 最初に、10 台の VM を含む仮想マシン スケール セットを作成します。
sku.capacity
は可変であり、VM の開始数を設定することはありません。 ベース VM は 10 台に設定されているため、開始 VM の合計数は 10 台のベース (標準) VM だけです。
- その後、50% の標準 VM と 50% のスポット VM を使用して、5 回スケールアウトします。
- 50/50 の分割があるため、4 番目のスケールアウトでは、標準 VM よりもスポット VM が 1 台多くなります。 再びスケールアウト (5 回目のスケールアウト) すると、もう 1 台の標準 VM が追加されて、50/50 のバランスが復元されます。
- 次に、削除ポリシーを 削除 にしてスケール セットをスケールインします。これにより、すべてのスポット VM が削除されます。
- このシナリオで説明したスケールアウト操作では、スポット VM を作成することによってのみ、スケール セット内の 50/50 のバランスを復元します。
- 最後のスケールアウトでは、スケール セットは既にバランスが取れているため、VM の種類ごとに 1 台が作成されます。
シナリオ 2
この例には、次のシナリオ前提条件が適用されます。
- sku.capacity は可変であり、自動スケーラーによって定義されます。20 台から始まります
- ベース (標準) VM: 10
- 追加の標準 VM: 2
- スポット優先度 VM: 8
- regularPriorityPercentageAboveBase: 25%
- 削除ポリシー: 割り当て解除
操作 | sku.capacity | ベース (標準) VM | 追加の標準 VM | スポット優先度 VM |
---|---|---|---|---|
作成 | 20 | 10 | 2 | 8 |
スケール アウト | 50 | 10 | 10 | 30 |
スケール アウト | 110 | 10 | 25 | 75 |
スケール イン: Stop-Deallocate (10 インスタンス) | 100 | 10 | 25 | 75 (実行中の VM 65 台、停止して割り当て解除された VM 10 台) |
スケール アウト | 120 | 10 | 27 | 83 (実行中の VM 73 台、停止して割り当て解除された VM 10 台) |
例の各段階の説明:
- 仮想マシン スケール セットとスポット優先度ミックスを最初に作成すると、VM が 20 台になります。
- これらの VM のうち 10 台は基本 (標準) VM、2 台は追加の標準 VM であり、regularPriorityPercentageAboveBase が 25% なのでスポット優先度 VM は 8 台です。
- この比率を説明するもう 1 つの方法は、スケール セット内の 4 台のスポット VM ごとに 1 台の標準 VM がある、というものです。
- その後、2 回スケールアウトして、さらに 90 台の VM を作成します。23 台の標準 VM と 67 台のスポット VM です。
- 10 台の VM によってスケールインすると、10 台のスポット VM が "停止して割り当て解除され"、スケール セットに不均衡が生じます。
- 次のスケールアウト操作では、さらに 2 台の標準 VM と 8 台のスポット VM が作成され、ベースを上回る場合の比率 25% に近づけられます。
トラブルシューティング
スポット優先度ミックスが使用できない場合は、virtualMachineProfile
で "スポット" 優先度を指定するように priorityMixPolicy
を構成してください。 priorityMixPolicy
の設定を有効にしないと、このスポット機能にアクセスすることはできません。
FAQ
Q: スポット優先度ミックスの設定を変更しましたが、既存の VM が変更されないのはなぜですか?
スポット優先度ミックスは、スケール セットのスケール アクションに適用されます。 スポット VM と標準 VM の割合分割を変更しても、既存のスケール セットは再調整されません。 スケール セットをスケーリングすると、実際の割合の分割変更が表示されます。
Q: 均一オーケストレーション モードでスポット優先度ミックスは有効になっていますか?
スポット優先度ミックスは、フレキシブル オーケストレーション モードの仮想マシン スケール セットでのみ使用できます。
Q: スポット優先度ミックスはどのリージョンで有効になっていますか?
スポット VM、つまりスポット優先度ミックスは、すべてのグローバル Azure リージョンで使用できます。