Azure Virtual Desktop (AVD) で スケーリングプラン を試す!

オートスケール機能「第三弾」となる[スケーリングプラン]が登場しました!
特徴は、セッション数の割り合いを考慮しながら、スケールアウト/インを行えるところです。
シャットダウン時には、セッションが無い場合や強制的に停止するなどが選択できます。
この機能は、Azure Portalに組み込まれているので、他のAzureサービスをデプロイする必要はありません。

【動作のしくみ】

ランプアップ&ピーク時間:セッションホストをスケールアウトさせる時間帯
ランプダウン&ピーク時間外:セッションホストをスケールアウト/インさせる時間帯

ランプアップ&ピーク時間の設定

ホストの最小割合:最小起動台数を調整できる
ホストプール内の全セッションホスト[セッション数の上限]の合計値、に対する割合で指定

例:ホストプール内の合計セッション数が[10]、ホストの最小割合が[10%]の場合、1台の
セッションホストが常に起動している状態となります。

容量のしきい値:スケールアウト
起動しているセッションホストの[セッション数の上限]の合計値、に対する割合で指定

例:起動しているセッションホストの合計セッション数が[10]、容量のしきい値が[60%]である場合、アクテイブセッションが[60%]を上回ると、追加でセッションホストを起動します。
※アクテイブセッションの割合が、しきい値を下回るまでVMを起動させます。

ランプダウン&ピーク時間外の設定

ホストの最小割合:最小起動台数 ※上記と同じ動作

容量のしきい値:スケールアウト/イン
起動しているセッションホストの[セッション数の上限]の合計値、に対する割合で指定

例:起動しているセッションホストの合計セッション数が[10]、容量のしきい値が[60%]である場合、アクテイブセッションが[60%]を上回ると、追加でセッションホストを起動します。
また、アクテイブセッションが[60%]を下回ると、セッションホストを停止します。
※停止のための条件は、停止した状態でも、既存のアクテイブセッションを受け入れられる&しきい値を下回っている場合に限ります。

[利用のための諸条件]

・個人用プールは、ランプアップ/ダウンに関係なく設定通りに[起動/停止]が行われる
・1つのホストプールに割り当てられるスケーリングプランは1つだけ
・1つのスケーリングプランを複数のホストプールに割り当てられる
・各曜日に対してスケジュール設定が可能
・ドレインモードのセッションホストも対象になるので、除外タグを利用
・ホストプール作成時に設定した、負荷分散アルゴリズムは上書きされる
・指定した閾値と同じ場合は、何もしません。
・セッションホストがゾーン冗長構成の場合、各ゾーン均等に処理されるわけではない
・サインイン/アウトのタイミングで評価している
・全台停止している場合、スケールアウトは機能しません ※Start VM on Connect


全体の流れ

Step1:サブスクリプションにロールを割り当てる
Step2:スケーリングプランの作成
Step3:診断ログの設定


Step1:サブスクリプションにロールを割り当てる

[サブスクリプション]ー[アクセス制御]ー[+追加]ー[ロールの割り当ての追加]を選択

[Desktop Virtualization Power On Off  Contributor]を選択

[Windows Virtual Desktop]もしくは、[Azure Virtual Desktop]を選択
※アプリケーションID[9cdead84-a844-4324-93f2-b2e6bb768d07]を選択すればOK

サブスクリプションへの割り当てを確認できます。


Step2:スケーリングプランの作成

[スケーリングプラン]ー[+作成]を選択

【プールの場合】

名前:表示名
場所:スケーリングプランの保存場所 ※メタデータの場所と同じにする
フレンドリ名:※変更可能
説明:スケジュールの概要を記載するのが良いかも ※変更可能
タイムゾーン:セッションホストの場所に合わせる ※変更可能
ホストプールの種類:※プールを選択
除外タグ:※変更可能

ここからスケジュール作成に移ります。

1つの曜日に1つのスケジュールを割り当て可能

開始時間:ランプアップの開始時間
負荷分散アルゴリズム:スムーズなサインインのため[幅優先]を推奨
ホストの最小割合:0~100 ※ピーク時間にも引き継がれる
容量のしきい値:0~100 ※ピーク時間にも引き継がれる

開始時間:ランプダウンの開始時間 ※24時を超えた設定は不可
負荷分散アルゴリズム:停止の影響を受けるユーザーを減らすため[深さ優先]を推奨
ホストの最小割合:0~100 ※ピーク時以外の時間にも引き継がれる
容量のしきい値:0~100 ※ピーク時以外の時間にも引き継がれる
ユーザーのログオフを強制する:はい=強制的に停止する
ユーザーをログアウトしてVMをシャットダウンするまでの遅延時間:
通知メッセージ:停止するVMのデスクトップ上に表示します。

ユーザーのログオフを強制する:いいえ=下記の状態で停止する
上:アクテイブセッションもしくは、切断されたセッションが無い場合に停止 ※空の状態
下:アクテイブセッションが無い場合に停止 ※切断されたセッションがあっても停止

スケジュールの作成が完了

割り当てるホストプールを選択します。 ※複数指定可能

最後に確認

【個人の場合】

名前:表示名
場所:スケーリングプランの保存場所 ※メタデータの場所と同じにする
フレンドリ名:※変更可能
説明:スケジュールの概要を記載するのが良いかも ※変更可能
タイムゾーン:セッションホストの場所に合わせる ※変更可能
ホストプールの種類:※個人用を選択
除外タグ:※変更可能

ここからスケジュール作成に移ります。

1つの曜日に1つのスケジュールを割り当て可能

開始時間:ランプアップの開始時間
接続時にVMを起動する:※[いいえ]の場合、下記[起動するVM]を利用して起動して下さい。
起動するVM:
切断時間:[0~360分]。セッション切断状態から、下記を実行するまでの時間
実行:[なし/シャットダウン]
ログオフ時間:[0~360分]。ログオフ状態から、下記を実行するまでの時間
実行:[なし/シャットダウン]

スケジュールの作成が完了

割り当てるホストプールを選択します。 ※複数指定可能

最後に確認


Step3:診断ログの設定

[診断設定]ー[診断設定を追加する]を選択

Blobに出力

insights-logs-autoscale:スケールアウト/インに関するログ
insights-logs-management:イベントログ

insights-logs-autoscale “Message”を抜粋

“Message”:”Active session hosts are at 25.00% capacity (1 sessions across 2 active session hosts). This is below the minimum capacity threshold of 90%. 1 session hosts can be drained and deallocated.”

“Message”:”Active session hosts are at 50.00% capacity (1 sessions across 1 active session hosts). This is below the minimum capacity threshold of 90%. But, if any session hosts are drained/deallocated, the maximum capacity threshold of 90% will be exceeded. No action will be taken.”


おまけ

ユーザーのログオフを強制した時の警告画面