AVDのコスト最適化として、セッションホストを接続ユーザ数に合わせて起動/停止することが出来る
「スケーリングプラン」というものがあります。
スケーリングプラン設定は、独特な用語が多いため設定が分かりづらいですが
実例を交えながら解説したいと思います。
設定項目
設定では下記4つの大きな項目があり、各項目が適用される時間帯を設定し、
設定した時間帯の中でセッションホストの起動をどのように制御するのかを定めます。
・ランプアップ
・ピーク時間
・ランプダウン
・ピーク時以外の時間
これらは上から順に処理され、各項目ごとの時間帯が重なるような設定はできません。
設定内容
以下の想定AVD環境で、各項目ごとの設定ポイントをまとめます。
・ホストプールのセッション数上限:3
・ホストプールのセッションホスト台数:5
ランプアップ
セッションホストを起動してユーザの接続に備えて準備する時間帯です。
この時間帯でセッションホストを起動しておくことでセッションホストへの接続がスムーズとなります。
また、この時間帯では条件を満たした場合でもセッションホストは停止されません。
- 開始時刻
「ランプアップ」を開始する時刻です。 - 負荷分散アルゴリズム
AVDのホストプール作成時に設定する負荷分散アルゴリズムと同様の項目です。
ここで設定した負荷分散アルゴリズムは、
スケーリングプランを割り当てられたホストプールの設定を上書きします。 - ホストの最小割合(%)
対象プール内の全セッションホスト数に対する割合です。
割合設定のため、小数点切り上げによる整数値が起動するセッションホスト数となります。- 例:「ホストの最小割合」が30%の場合
ホストプール内の全5台x30%=1.5台->小数点切り上げにより2台が起動します。
※1%でもあれば最低1台は起動します。
- 例:「ホストの最小割合」が30%の場合
- 容量のしきい値(%)
対象プール内で「起動しているセッションホスト」のセッション上限値の合計に対する割合です。- 例:セッションホストが2台起動中で、「容量のしきい値」が60%の場合
3セッションx2台=6セッションが最大容量となるため、最大容量の60%=3.6セッションがしきい値となります。
この場合、4ユーザ目が接続しに来た場合、4>3.6となり、3台目が起動します。
4台目の起動を判断するしきい値は3セッションx3台=9セッションの60%となり、
5.4セッションが次のしきい値となります。
この場合は、6ユーザ目が接続した場合に起動します。
- 例:セッションホストが2台起動中で、「容量のしきい値」が60%の場合
ピーク時間
セッション数の上下に合わせてセッションホストの台数を変化させる時間帯です。
セッション数が0のセッションホストはシャットダウンの対象となります。
この時間帯は、通常であれば業務時間中に相当すると思われます。
- 開始時刻
「ピーク時間」を開始する時刻です。 - 負荷分散アルゴリズム
ランプアップと同様の内容ですが、変更可能です。 - ホストの最小割合は「ランプアップ」の設定を引き継ぎます。
- 容量のしきい値は「ランプアップ」の設定を引き継ぎます。
セッションホストがシャットダウンする場合、落としてもしきい値が超えない時に実際のシャットダウンが行われます。
- 例:しきい値が下記の場合
- 3台->5.4セッション
- 2台->3.6セッション
接続人数が合計3ユーザまで減れば、セッション数0のセッションホストにシャットダウンが行われます。
「ホストの最小割合」を引き継ぐので、ユーザが全くいない場合でも最低限2台が稼働を続けます。
ランプダウン
セッションホストを落としていく時間帯です。
通常であれば業務終了前後に相当すると思われます。
- 開始時刻
「ランプダウン」を開始する時刻です。 - 負荷分散アルゴリズム
ランプアップと同様の内容で、変更可能です。 - ホストの最小割合(アクティブ ホストの最小パーセンテージ)
対象ホストプール内の全セッションホスト数に対する割合のため、ランプアップと内容は同様です。 - 容量のしきい値
こちらもランプアップと考え方は同様です。 - ユーザのログオフを強制する
有効にした場合、1台当たりの接続セッション数が少ないセッションホストを対象に
「通知メッセージ」に記載した内容を画面に表示してユーザを強制ログオフします。
ユーザを強制ログオフした後、セッションホストをシャットダウンします。
セッションホストを減らす段階のため、
容量のしきい値を大きくしてセッションホストの追加稼働を抑制し、
ホストの最小割合を下げて最低限稼働するセッションホストを減らします。
なお、ホストの最小割合を0%にしても、最後の1台は接続セッション数が0にならない限り稼働を続け、
かつ最後の1台に対しては「ユーザのログオフを強制する」も機能しません。
セッションホストを全て落とすにはグループポリシーやAzure Automationなどと組み合わせる必要があります。
ピーク時以外の時間
最もアクセスが無い時間帯です。
通常は会社の就業時間後に相当すると思われます。
- 開始時刻
「ピーク時以外の時間」を開始する時刻です。 - 負荷分散アルゴリズム
ランプアップと同様の内容で、変更可能です。 - ホストの最小割合は「ランプダウン」の設定を引き継ぎます。
- 容量のしきい値は「ランプダウン」の設定を引き継ぎます。
最後の1台はランプダウンと同様に接続セッションがある限り稼働します。
夜間の稼働確保などが不要で、ホストプール内の全台をシャットダウンで落とし切りたい場合は
予めランプダウンでホストの最小割合0%にしておき、繰り返しになりますが
最後の1台を落とすために、グループポリシーやAzure Automationなどの別の仕組みと組み合わせる必要があります。
参考情報
https://jpwinsup.github.io/blog/2023/03/27/RemoteDesktopService/AVD/AVD-scalingplan/
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/autoscale-create-assign-scaling-plan