オートスケール機能「第三弾」となるオートスケールが登場しました!
特徴は、セッション数を考慮しながら、スケールアウト/インを行えるところです。
シャットダウン時には、セッションが無い場合や強制的に停止するなどが選択できます。
この機能は、AzurePortalに組み込まれているので、何かをデプロイする必要はありません。
【動作のしくみ】
ランプアップ&ピーク時間:セッションホストをスケールアウトさせる時間帯
ランプダウン&ピーク時間外:セッションホストをスケールアウト/インさせる時間帯
ランプアップ&ピーク時間の設定
ホストの最小割合:最小起動台数を調整できる
ホストプール内の全セッションホスト[セッション数の上限]の合計値、に対する割合で指定
例:ホストプール内の合計セッション数が[10]、ホストの最小割合が[10%]の場合、1台の
セッションホストが常に起動している状態となります。
容量のしきい値:スケールアウト
起動しているセッションホストの[セッション数の上限]の合計値、に対する割合で指定
例:起動しているセッションホストの合計セッション数が[10]、容量のしきい値が[60%]である場合、アクテイブセッションが[60%]を上回ると、追加でセッションホストを起動します。
※アクテイブセッションの割合が、しきい値を下回るまでVMを起動させます。
ランプダウン&ピーク時間外の設定
ホストの最小割合:最小起動台数 ※上記と同じ動作
容量のしきい値:スケールアウト/イン
起動しているセッションホストの[セッション数の上限]の合計値、に対する割合で指定
例:起動しているセッションホストの合計セッション数が[10]、容量のしきい値が[60%]である場合、アクテイブセッションが[60%]を上回ると、追加でセッションホストを起動します。
また、アクテイブセッションが[60%]を下回ると、セッションホストを停止します。
※停止のための条件は、停止した状態でも、既存のアクテイブセッションを受け入れられる&しきい値を下回っている場合に限ります。
[利用のための諸条件]
・ホストプールの種類は[Pooled]のみ。
・1つのホストプールに割り当てられるスケーリングプランは1つだけ
・1つのスケーリングプランを複数のホストプールに割り当てられる
・各曜日に対してスケジュール設定が可能
・ドレインモードのセッションホストも対象になるので、除外タグを利用
・ホストプール作成時に設定した、負荷分散アルゴリズムは上書きされる
・サインイン/アウトのタイミングで評価している
・全台停止している場合、スケールアウトは機能しません
全体の流れ
Step1:カスタムロールの作成
Step2:カスタムロールの割り当て
Step3:スケーリングプランの作成
Step4:診断ログの設定
Step1:カスタムロールの作成
[サブスクリプション]ー[アクセス制御]ー[+追加]ー[カスタムロールの追加]を選択
カスタムロール名:表示名
説明:コメントを記載
ベースラインのアクセス許可:
ロールを複製します=既存ロールをベースにして作成
最初から始める=ベース無しで作成
JSONから開始=JSONファイルをアップロードして作成
※「アクセス許可」「割り当て可能なスコープ」は変更なし
[actions]項目に下記を追加します。
“Microsoft.Insights/eventtypes/values/read”,
“Microsoft.Compute/virtualMachines/deallocate/action”,
“Microsoft.Compute/virtualMachines/restart/action”,
“Microsoft.Compute/virtualMachines/powerOff/action”,
“Microsoft.Compute/virtualMachines/start/action”,
“Microsoft.Compute/virtualMachines/read”,
“Microsoft.DesktopVirtualization/hostpools/read”,
“Microsoft.DesktopVirtualization/hostpools/write”,
“Microsoft.DesktopVirtualization/hostpools/sessionhosts/read”,
“Microsoft.DesktopVirtualization/hostpools/sessionhosts/write”,
“Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/delete”,
“Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read”,
“Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/sendMessage/action”,
“Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/read”
これにて、カスタムロールが完成!
Step2:カスタムロールの割り当て
[サブスクリプション]ー[アクセス制御]ー[+追加]ー[ロールの割り当ての追加]を選択
作成したカスタムロールを選択
[+メンバーを選択する]ー[Windows Virtual Desktop]を選択
割り当てを確認
Step3:スケーリングプランの作成
[スケーリングプラン]ー[+作成]を選択
名前:表示名
場所:スケーリングプランの保存場所 ※セッションホストの場所とは関係なし
フレンドリ名 ※変更可能
説明:スケジュールの概要を記載するのが良いかも ※変更可能
タイムゾーン:セッションホストの場所に合わせる ※変更可能
ホストプールの種類:[Pooled]固定
除外タグ:※変更可能
ここからスケジュール作成に移ります。
1つの曜日に1つのスケジュールを割り当て可能
開始時間:ランプアップの開始時間
負荷分散アルゴリズム:スムーズなサインインのため[幅優先]を推奨
ホストの最小割合:0~100 ※ピーク時間にも引き継がれる
容量のしきい値:0~100 ※ピーク時間にも引き継がれる
開始時間:ランプダウンの開始時間 ※24時を超えた設定は不可
負荷分散アルゴリズム:停止の影響を受けるユーザーを減らすため[深さ優先]を推奨
ホストの最小割合:0~100 ※ピーク時以外の時間にも引き継がれる
容量のしきい値:0~100 ※ピーク時以外の時間にも引き継がれる
ユーザーのログオフを強制する:はい=強制的に停止する
ユーザーをログアウトしてVMをシャットダウンするまでの遅延時間:
通知メッセージ:停止するVMのデスクトップ上に表示します。
ユーザーのログオフを強制する:いいえ=下記の状態で停止する
上:アクテイブセッションもしくは、切断されたセッションが無い場合に停止 ※空の状態
下:アクテイブセッションが無い場合に停止 ※切断されたセッションがあっても停止
スケジュールの作成が完了
割り当てるホストプールを選択します。 ※複数指定可能
最後に確認
Step4:診断ログの設定
[診断設定]ー[診断設定を追加する]を選択
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.”
おまけ
ユーザーのログオフを強制した時の警告画面