Azure Virtual Desktop での自動スケーリング プランとシナリオ例
- [アーティクル]
-
-
自動スケーリングを使用すると、ホスト プール内のセッション ホスト仮想マシン (VM) をスケジュールに応じてスケールアップまたはスケールダウンして、デプロイ コストを最適化できます。
注意
- Azure Virtual Desktop (クラシック) では、自動スケーリングはサポートされていません。
- 自動スケーリングと Azure Automation を使用したセッション ホストのスケーリングを同じホスト プールで使用することはできません。 どちらか一方を使用する必要があります。
- 自動スケーリングは、ホスト プールを作成できる同じリージョン内の Azure と Azure Government で使用できます。
- Azure Virtual Desktop での Azure Stack HCI の自動スケーリング サポートは、現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
最適な結果を得るには、Azure Virtual Desktop Azure Resource Manager (ARM) テンプレートまたは Microsoft のファースト パーティ ツールを使用してデプロイした VM で自動スケーリングを使用することをお勧めします。
プランを作成する前に、次の点に注意してください。
1 つのスケーリング プランを、同じ種類のホスト プールの 1 つ以上のホスト プールに割り当てることができます。 スケーリング プランのスケジュールは、割り当てられているホスト プールすべてに適用されます。
ホスト プールごとに 1 つのスケーリング プランのみを関連付けることができます。 1 つのスケーリング プランを複数のホスト プールに割り当てた場合、それらのホスト プールを別のスケーリング プランに割り当てることはできません。
休止状態は、個人用ホスト プールで使用できます。 詳細については、仮想マシンでの休止状態に関するページを参照してください。
スケーリング プランは、それに構成されているタイム ゾーンでのみ動作します。
スケーリング プランには、1 つまたは複数のスケジュールを設定できます。 たとえば、平日と週末で異なるスケジュールを設定できます。
スケジュールを定義する前に、使用パターンを理解しておく必要があります。 次の時間帯にスケジュールを設定する必要があります。
- Ramp-up(増加): 使用量が増える始まりの日。
- ピーク時: 一日のうちで使用量が最も高くなる時刻。
- Ramp-down(減少): 使用量が減少するとき。 これは通常、コストを節約するために VM をシャットダウンするときです。
- オフピーク時: 一日のうちで使用量が最も低くなる時刻。
スケーリング プランは、有効にするとすぐに有効になります。
また、こちらの制限事項にも留意してください。
自動スケーリングを、Microsoft の他のスケーリングまたはサードパーティ製のスケーリング ツールと組み合わせて使用しないでください。 スケーリング プランを適用するホスト プールでは、これらを必ず無効にしてください。
プールされたホスト プールの場合、自動スケーリングによってドレイン モードが上書きされるため、ホスト プールの VM を更新する場合は除外タグを必ず使用してください。
プールされたホスト プールの場合、自動スケーリングでは、ホスト プールの設定における既存の負荷分散アルゴリズムは無視され、代わりにスケジュール構成に基づいた負荷分散が適用されます。
プールされたホスト プールの自動スケーリング シナリオの例
このセクションでは、プールされたホスト プールで、自動スケールのさまざまな部分がどのように機能するかを示す 4 つのシナリオがあります。 各例には、ホスト プールの設定とアニメーションによるビジュアル デモを示す表があります。
シナリオ 1: 自動スケーリングによって仮想マシンがオンにされるタイミング
このシナリオでは、使用済みホスト プール容量が容量しきい値を超えたときに、スケーリング プラン スケジュールのどのフェーズでも自動スケーリングによって、セッション ホスト仮想マシン (VM) をオンにできることを示します。
たとえば、次の表に示すホスト プールの設定を見てみましょう。
パラメーター |
値 |
段階 |
ランプアップ |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
幅優先 |
容量のしきい値 |
30% |
ホストの最小割合 |
30% |
使用可能なセッション ホスト |
2 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
10 |
ユーザー セッション |
0 |
使用されているホスト プールの容量 |
0% |
このフェーズの開始時に、自動スケーリングによって、ホストの最小割合に一致するように 2 つのセッション ホストがオンにされています。 6 の 30% は整数ではありませんが、自動スケーリングによって、最も近い整数に切り上げられています。 使用可能なセッション ホストが 2、ホストあたりのセッションの最大数が 5 ということは、このホスト プールの使用可能なホスト プール容量が 10 であることを意味します。 今のところ、ユーザー セッションは存在しないので、使用済みホスト プール容量は 0% です。
1 日が始まり、3 人のユーザーがサインインしてユーザー セッションを開始するとします。 負荷分散アルゴリズムが幅優先であるため、これらのユーザー セッションは 2 つの使用可能なセッション ホストに均等に分散されます。 使用可能なホスト プール容量は 10 のままですが、新しいユーザー セッションは 3 つで、使用済みホスト プール容量は 30% になります。 しかしながら、使用済みホスト プール容量が容量しきい値を超えるまで、自動スケーリングによって仮想マシン (VM) がオンにされることはありません。 この例では、容量しきい値は 30% なので、自動スケーリングによって VM がオンにされることはまだありません。
この時点で、ホスト プールのパラメーターは次のようになります。
パラメーター |
値 |
段階 |
ランプアップ |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
幅優先 |
容量のしきい値 |
30% |
ホストの最小割合 |
30% |
使用可能なセッション ホスト |
2 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
10 |
ユーザー セッション |
3 |
使用されているホスト プールの容量 |
30% |
別のユーザーがサインインしてセッションを開始すると、合計 4 つのユーザー セッションが 2 つのセッション ホストに分散されるようになります。 使用済みホスト プール容量が 40% になり、容量しきい値を超えます。 その結果、使用済みホスト プール容量が容量しきい値 (30%) 以下になるように、自動スケーリングによって、もう 1 つのセッション ホストがオンにされます。
まとめると、使用済みホスト プール容量が容量しきい値を超えたとき、パラメーターは次のようになります。
パラメーター |
値 |
段階 |
ランプアップ |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
幅優先 |
容量のしきい値 |
30% |
ホストの最小割合 |
30% |
使用可能なセッション ホスト |
2 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
10 |
ユーザー セッション |
4 |
使用されているホスト プールの容量 |
40% |
自動スケーリングによってもう 1 つのセッション ホストがオンにされた後、パラメーターは次のようになります。
パラメーター |
値 |
段階 |
ランプアップ |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
幅優先 |
容量のしきい値 |
30% |
ホストの最小割合 |
30% |
使用可能なセッション ホスト |
3 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
15 |
ユーザー セッション |
4 |
使用されているホスト プールの容量 |
27% |
もう 1 つのセッション ホストをオンにすることは、ホスト プール内の使用可能なセッション ホストが 3 つになることを意味します。 セッションの最大数は 5 のままで、使用可能なホスト プール容量が 15 に増加します。 使用可能なホスト プール容量が増加することで、使用済みホスト プール容量が 27% に減少し、容量しきい値の 30% を下回ります。
ユーザーがもう 1 人サインインすると、5 つのユーザー セッションが 3 つの利用可能なセッション ホストに分散されるようになります。 使用済みホスト プール容量が 33% になり、容量しきい値 30% を超えます。 容量しきい値を超えると、自動スケーリングがアクティブ化され、もう 1 つのセッション ホストがオンにされます。
この例はランプアップ フェーズ中のため、新しいユーザーはサインインを維持する可能性が高いです。 ユーザー数が増えると、このパターンがさらにはっきりします。
ユーザー セッションの合計数 |
使用可能なセッション ホストの数 |
使用できるホスト プールの容量 |
容量のしきい値 |
使用されているホスト プールの容量 |
自動スケーリングによってもう 1 つのセッション ホストがオンにされるか? |
5 |
3 |
15 |
30% |
33% |
はい |
5 |
4 |
20 |
30% |
25% |
いいえ |
6 |
4 |
20 |
30% |
30% |
いいえ |
7 |
4 |
20 |
30% |
35% |
はい |
7 |
5 |
25 |
30% |
28% |
いいえ |
この表からわかるように、自動スケーリングによって新しいセッション ホストがオンにされるのは、使用済みホスト プール容量が容量しきい値を超えたときのみです。 しかしながら、使用済みホスト プール容量が容量しきい値以下である場合は、自動スケーリングによってセッション ホストがオンにされることはありません。
次のアニメーションは、シナリオ 1 で確認した内容を視覚的にまとめたものです。
シナリオ 2: 自動スケーリングによって仮想マシンがオフにされるタイミング
このシナリオでは、次のすべてに該当する場合に、自動スケーリングによってセッション ホストがオフにされることを示します。
- 使用済みホスト プール容量が容量しきい値を下回る。
- 容量しきい値を超えていない状態で
- 自動スケーリングでは、ユーザー セッションがないセッション ホストのみをオフにします (スケーリング プランがランプダウン フェーズ中で、強制ログオフ設定をオンにしている場合を除く)。
- プールされた自動スケーリングでは、ユーザー エクスペリエンスの低下を避けるために、ランプアップ フェーズでセッション ホストがオフになりません。
このシナリオでは、次のような値のホスト プールで開始されます。
パラメーター |
値 |
段階 |
Peak |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
幅優先 |
容量のしきい値 |
30% |
ホストの最小割合 |
30% |
使用可能なセッション ホスト |
5 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
25 |
ユーザー セッション |
7 |
使用されているホスト プールの容量 |
28% |
ピーク フェーズ中のため、ユーザー数は比較的安定した状態でとどまることが予想されます。 ただし、使用されているリソースの量を安定させながら効率を維持するために、自動スケーリングでは必要に応じてセッション ホストをオンまたはオフにします。
それでは、ピーク時間中に 7 人のユーザーがサインインしているとします。 ユーザー セッションの総数が 7 の場合、使用済みホスト プール容量量は 28% になります。 使用済みホスト プール容量が容量しきい値を超えないと、自動スケーリングでセッション ホストをオフにすることはできないため、セッション ホストが自動スケーリングによってオフにされることはまだありません。
7 人のユーザーのうちの 2 人が昼休み中にサインアウトすると、5 つのユーザー セッションが 5 つのセッション ホストに残ります。 セッションの最大数は 5 のままであるため、使用可能なホスト プール容量は 25 です。 ユーザーが 5 人だけということは、使用済みホスト プール容量が 20% になることを意味します。 自動スケーリングで、使用済みホスト プール容量が容量しきい値を超えていない状態で、セッション ホストをオフにできるかどうかを確認する必要があります。
自動スケーリングによってセッション ホストがオフにされた場合、使用可能なホスト プール容量は 20 になります。 ユーザーが 5 人なので、使用済みホスト プール容量は 25% になります。 25% は容量しきい値の 30% より小さいため、自動スケーリングによって、ユーザー セッションのないセッション ホストが選択され、ドレイン モードに設定され、オフにされます。
自動スケーリングによって、ユーザー セッションのないセッション ホストの 1 つがオフにされると、使用可能なセッション ホストが 4 つ残ります。 セッションの最大数は 5 のままであるため、使用可能なホスト プール容量は 20 です。 ユーザー セッションは 5 であるため、使用済みホスト プール容量は 25% で、引き続き容量しきい値を下回ります。
ところが、別のユーザーがサインアウトして昼食に出かけると、4 つのユーザー セッションが、ホスト プールの 4 つのセッション ホストに分散されます。 セッションの最大数はまだ 5 であり、使用可能なホスト プール容量は 20 で、使用済みホスト プール容量は 20% です。 別のセッション ホストをオフにした場合、3 つのセッション ホストと使用可能なホスト プール容量は 15 のままになり、使用済みホスト プール容量は約 27% に増加します。 27% は容量しきい値を下回りますが、ユーザー セッションが 0 のセッション ホストは存在しません。 自動スケーリングにより、ユーザー セッションの数が最も少ないセッション ホストが選択され、ドレイン モードに設定され、すべてのユーザー セッションがサインアウトするまで待機してからオフにされます。 いずれかの時点で、使用済みホスト プール容量が、自動スケーリングでセッション ホストをこれ以上オフにできなくなった時点で、そのセッション ホストがドレイン モードから外されます。
次のアニメーションは、シナリオ 2 で確認した内容を視覚的にまとめたものです。
シナリオ 3: 自動スケーリングによってユーザーにサインアウトを強制するタイミング
スケーリング プラン スケジュールのランプダウン フェーズ中に強制ログオフ設定を有効にしている場合にのみ、自動スケーリングによって、ユーザーにサインアウトが強制されます。 スケーリング プラン スケジュールの他のフェーズ中は、強制ログオフ設定によって、ユーザーがサインアウトされることはありません。
たとえば、次のパラメーターを持つホスト プールを確認します。
パラメーター |
値 |
段階 |
ランプダウン |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
深さ優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
10% |
使用可能なセッション ホスト |
4 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
20 |
ユーザー セッション |
4 |
使用されているホスト プールの容量 |
20% |
ランプダウン フェーズ中に、ホスト プール管理者が容量しきい値を 75%、ホストの最小割合を 10% に設定しました。 このフェーズで容量しきい値を高く、ホストの最小割合を低くすると、終業時に新しいセッション ホストをオンにする必要が減ります。
このシナリオで、現在、このホスト プール内の 4 つの使用可能なセッション ホストに 4 人のユーザーがいるとします。 使用可能なホスト プール容量は 20 であるため、使用済みホスト プール容量は 20% ということになります。 この情報に基づき、自動スケーリングによって、容量しきい値の 75% を超えていない状態で、2 つのセッション ホストをオフにできることが検出されます。 ただし、ホスト プール内のすべてのセッション ホストにユーザー セッションが存在するため、2 つのセッション ホストをオフにするには、自動スケーリングによって、ユーザーにサインアウトが強制される必要があります。
強制ログオフ設定を有効にすると、自動スケーリングによって、ユーザー セッションが最も少ないセッション ホストが選択され、セッション ホストがドレイン モードにされます。 自動スケーリングによって、一定時間後にセッションから強制的にサインアウトされるという通知が、選択されたセッション ホストのユーザーに送信されます。 その時間が経過すると、ユーザーがまだセッションを終了していない場合は、自動スケーリングによってセッションが強制的に終了されます。 このシナリオでは、ホスト プール内の各セッション ホストに同じ数のユーザー セッションがあるため、自動スケーリングによって 2 つのセッション ホストがランダムに選択され、すべてのユーザーが強制的にサインアウトされ、セッション ホストがオフにされます。
自動スケーリングによって 2 つのセッション ホストがオフにされると、使用可能なホスト プール容量は 10 になります。 残っているユーザー セッションは 2 つのみになり、次の表に示すように、使用済みホスト プール容量は 20% です。
パラメーター |
値 |
段階 |
ランプダウン |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
深さ優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
10% |
使用可能なセッション ホスト |
2 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
10 |
ユーザー セッション |
2 |
使用されているホスト プールの容量 |
20% |
ここで、サインアウトを強制された 2 人のユーザーが作業を続けたいので再度サインインするとします。 使用可能なホスト プール容量はまだ 10 です。使用済みホスト プール容量は 40% で、容量しきい値の 75% を下回っています。 しかしながら、使用可能なセッション ホストは 1 つ、使用可能なホスト プール容量は 5 だけになるため自動スケール機能で、これ以上のセッション ホストをオフにすることはできません。 ユーザーは 4 人で、使用済みホスト プール容量は 80% となり、容量しきい値を超えます。
そのため、パラメーターは次のようになります。
パラメーター |
値 |
段階 |
ランプダウン |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
深さ優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
10% |
使用可能なセッション ホスト |
2 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
10 |
ユーザー セッション |
4 |
使用されているホスト プールの容量 |
40% |
この時点で別のユーザーがサインアウトした場合、2 つの使用可能なセッション ホスト間で分散されるユーザー セッションは 3 つだけになります。 つまり、ホスト プールは次のようになります。
パラメーター |
値 |
段階 |
ランプダウン |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
深さ優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
10% |
使用可能なセッション ホスト |
2 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
10 |
ユーザー セッション |
3 |
使用されているホスト プールの容量 |
30% |
セッションの最大数はまだ 5 であり、使用可能なホスト プール容量は 10 で、使用済みホスト プール容量は 30% になります。 自動スケーリングにより、容量しきい値を超えていない状態で、1 つのセッション ホストをオフにできるようになります。 自動スケーリングによって、ユーザー セッション数が最も少ないセッション ホストが選択され、そのセッション ホストがオフにされます。 次に、自動スケーリングによって、セッション ホストがドレイン モードに設定され、セッション ホストがオフにされるという通知がユーザーに送信された後、一定時間後に残りのユーザーが強制的にサインアウトされ、オフにされます。 そうすると、ホスト プール内に使用可能なセッション ホストが 1 つ残り、セッションの最大数は 5 になり、使用可能なホスト プール容量が 5 になります。
自動スケーリングによって、選択されたセッション ホストがオフにされるときにユーザーのサインアウトが強制されるため、残りのユーザー セッションは 2 つだけになり、使用済みホスト プール容量が 40% になります。
まとめると、ホスト プールは次のようになります。
パラメーター |
値 |
段階 |
ランプダウン |
セッション ホスト総数 |
6 |
セッションの最大数 |
5 |
負荷分散アルゴリズム |
深さ優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
10% |
使用できるホスト プールの容量 |
5 |
ユーザー セッション |
2 |
使用可能なセッション ホスト |
1 |
使用されているホスト プールの容量 |
40% |
その後、サインアウトを強制されたユーザーが再度サインインし、ホスト プールが次のようになると想像してみましょう。
パラメーター |
値 |
段階 |
ランプダウン |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
深さ優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
10% |
使用可能なセッション ホスト |
1 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
5 |
ユーザー セッション |
3 |
使用されているホスト プールの容量 |
60% |
これで、ホスト プール内に 3 つのユーザー セッションがあります。 しかしながら、ホスト プールの容量は 5 のままです。つまり、使用済みホスト プール容量は 60% で、容量しきい値を下回ります。 残りのセッション ホストをオフにすると、使用可能なホスト プール容量が 0 になり、ホストの最小割合の 10% を下回るため、自動スケーリングにより、ランプダウン フェーズ中は常に少なくとも 1 つの使用可能なセッション ホストが存在することが保証されます。
次のアニメーションは、シナリオ 3 で確認した内容を視覚的にまとめたものです。
仮想マシンのタグ名がスケーリング プランの除外タグと一致する場合、自動スケーリングによって、オンとオフ、またはそのドレイン モード設定の変更は行われません。 除外タグは、スケーリング プラン スケジュールのすべてのフェーズで適用できます。
次に、最初に使用するホスト プールの例を示します。
パラメーター |
値 |
段階 |
ピーク時以外 |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
幅優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
10% |
使用可能なセッション ホスト |
1 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
5 |
ユーザー セッション |
3 |
使用されているホスト プールの容量 |
60% |
このシナリオ例では、ホスト プール管理者は、6 つのセッション ホストのうち、5 つにスケーリング プランの除外タグを適用します。 新しいユーザーがサインインすると、ユーザー セッションの総数は 4 に増えます。 使用可能なセッション ホストは 1 つだけで、ホスト プールのセッションの最大数はまだ 5 であるため、使用可能なホスト プール容量は 5 です。 使用済みホスト プール容量は 80% です。 ただし、使用済みホスト プール容量が容量しきい値を超える場合でも、現在実行中のものを除いてすべてのセッション ホストが、除外タグでタグ付けされているため、自動スケーリングによって他のセッション ホストがオンにされることはありません。
そのため、ホスト プールは次のようになります。
パラメーター |
値 |
段階 |
ピーク時以外 |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
幅優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
10% |
使用可能なセッション ホスト |
1 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
5 |
ユーザー セッション |
4 |
使用されているホスト プールの容量 |
80% |
次に、4 人のユーザー全員がサインアウトし、使用可能なセッション ホストにユーザー セッションが残っていないとします。 ホスト プール内にユーザー セッションがないので、使用済みホスト プール容量は 0 です。 オフピーク フェーズ中は、自動スケーリングのホストの最小割合設定により、少なくとも 1 つのセッション ホストを使用可能に保つ必要があるため、ユーザーがいないにもかかわらず、自動スケーリング機能によって、この 1 台のセッション ホストがオンのまま維持されます。
まとめると、ホスト プールはここでは次のようになります。
パラメーター |
値 |
段階 |
ピーク時以外 |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
幅優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
10% |
使用可能なセッション ホスト |
1 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
5 |
ユーザー セッション |
0 |
使用されているホスト プールの容量 |
0% |
管理者が最後のタグ付けされていないセッション ホスト仮想マシンに除外タグ名を適用してオフにした場合、他のユーザーがサインインしようとしても、自動スケーリングで、ユーザー セッションに対応するために VM をオンにすることはできなくなります。 そのユーザーに "使用可能なリソースがありません" というエラーが表示されます。
ただし、VM を再度オンにできないということは、ホスト プールによって、ホストの最小割合を満たすことができなくなることを意味します。 原因となる可能性のある問題を解決するには、管理者は 2 つの VM から除外タグを削除します。 自動スケーリングにより、10% の最小要件を満たすために必要な VM は 1 つだけであるため、VM の 1 つのみがオンにされます。
そのため、最終的に、ホスト プールは次のようになります。
パラメーター |
値 |
段階 |
ピーク時以外 |
セッション ホスト総数 |
6 |
負荷分散アルゴリズム |
幅優先 |
容量のしきい値 |
75% |
ホストの最小割合 |
19% |
使用可能なセッション ホスト |
1 |
セッションの最大数 |
5 |
使用できるホスト プールの容量 |
5 |
ユーザー セッション |
0 |
使用されているホスト プールの容量 |
0% |
次のアニメーションは、シナリオ 4 で確認した内容を視覚的にまとめたものです。