本記事はマイクロソフト社員によって公開されております。
こんにちは、Windows サポートチームの矢野です。
本記事では、以下公開技術文書に記載の AVD スケーリングツールを使用した際の PeakTime 時間外の挙動についてご紹介いたします。
Azure Automation を使用してセッション ホストをスケーリングする
目次
- Azure Automation とは
- スケーリング ツール の仕組みに関して
- PeakTime ではない時刻の挙動に関して
- PeakTime ではない時刻に MinimumNumberOfRDSH の値が設定値のまま挙動するためには
Azure Automation とは
公開技術文書において Azure Automation は以下のように説明されております。
「Azure Automation は、Azure 環境と非 Azure 環境を一貫性をもって管理するクラウドベースのオートメーションと構成サービスを提供します。 プロセスの自動化、構成管理、更新の管理、共有機能、異種環境機能で構成されます。 Automation は、ワークロードとリソースのデプロイ、運用、使用停止を完全に制御します。」
AVD ではこの Azure Automation を使用したスケーリングツールが提供されており、スケーリングツールを使用することで以下のような動作を実施することが可能になります。
- ピーク時とピーク時以外の営業時間に基づいて、VM の起動と停止をスケジュールします。
- CPU コアあたりのセッション数に基づいて VM をスケールアウトします。
- ピーク時以外の時間帯に VM をスケールインして、最低限の数のセッション ホスト VM だけを実行状態のままにします。
スケーリング ツール の仕組みに関して
上記公開技術文書の手順を行うことで作成される スケーリング ツール の仕組みとして以下のように記述されております。
「スケーリング ツールは、Azure Automation アカウント、PowerShell Runbook、Webhook、Azure Logic Apps を組み合わせて使用することで機能します。 ツールが実行されると、Azure Logic Apps によって Webhook が呼び出されて Azure Automation Runbook が起動します。 その後、Runbook によってジョブが作成されます。」
PowerShell Runbook が AVDAutoScaleRunbookARMBased という名前の Runbook に該当します。
この AVDAutoScaleRunbookARMBased に記載されている PowerShell スクリプトが本スケーリングツールの挙動の内容になります。
今回は PeakTime ではない時刻の挙動に関して解説いたします。
PeakTime ではない時刻の挙動に関して
強制ログオフの条件はピーク時間外、その時点でのユーザーセッション数が
1 | MinimumNumberOfRDSH の値 × 1セッションホストの最大セッション数 (ホストプールのセッション数上限) × 0.9 |
よりも大きい場合、セッションホストの最低稼働数が
1 | ユーザーセッション数 / (1セッションホストの最大セッション数 * 0.9) |
に変更されます。そのため、MinimumNumberOfRDSH で指定したにもかかわらず、PeakTime 時間外に想定外のセッションホストが起動する事象が発生します。
MinimumNumberOfRDSH で指定した値を確実に反映させるためには現状、Runbook の PowerShell スクリプトを編集する必要がございます。
PeakTime ではない時刻に MinimumNumberOfRDSH の値が設定値のまま挙動するためには
AVDAutoScaleRunbookARMBased の概要ページ内の編集より PowerShell スクリプトの 181 行目の $MaxUserSessionsThresholdCapacity を以下のように編集します。(想定されるホストプールへの接続数より必ず大きい値を指定するため、下記の例では十分に大きな値 1000000 に設定いたしました)
1 | [int]$MaxUserSessionsThresholdCapacity = 1000000 |
上記の編集を行う事でセッションホストの最低稼働数が変更される事なく動作することが可能でございます。
※2021 年 1 月 19 日時点での情報になります。
更新履歴 - Update History
- 2021/01/19: 本 Blog の公開
- 2021/06/17: WVD の名称が AVD に変更