Azure Virtual Desktop の自動スケーリング プランを作成して割り当てる

自動スケーリングを使用すると、ホスト プール内のセッション ホスト仮想マシン (VM) をスケジュールに応じてスケールアップまたはスケールダウンして、デプロイ コストを最適化できます。

自動スケーリングの詳細については、「Azure Virtual Desktop での自動スケーリング プランとシナリオ例」を参照してください。

注意

  • Azure Virtual Desktop (クラシック) では、自動スケーリングはサポートされていません。
  • 自動スケーリングでは Azure Stack HCI 用 Azure Virtual Desktop はサポートされません。
  • 自動スケーリングと、Azure Automation および Azure Logic Apps を使用したセッション ホストのスケーリングを同じホスト プールで使用することはできません。 どちらか一方を使用する必要があります。
  • 自動スケーリングは、Azure と Azure Government で使用できます。

最適な結果を得るには、Azure Virtual Desktop Azure Resource Manager テンプレートまたは Microsoft のファーストパーティ ツールを使用してデプロイした VM で自動スケーリングを使用することをお勧めします。

前提条件

スケーリング プランを使用するには、次のガイドラインに従ってください。

  • スケーリング プランの構成データは、ホスト プール構成と同じリージョンに保存する必要があります。 すべての Azure リージョンでセッション ホスト VM のデプロイがサポートされています。

  • プールされたホスト プールで自動スケーリングを使用する場合は、そのホスト プールに MaxSessionLimit パラメータが構成されている必要があります。 既定値は使用しないでください。 この値は、Azure portal のホスト プール設定で構成するか、New-AzWvdHostPool または Update-AzWvdHostPool の PowerShell コマンドレットを実行して構成します。

  • セッション ホスト VM の電源状態を管理するには、Azure Virtual Desktop アクセス権を付与する必要があります。 使用するサブスクリプションで Azure Virtual Desktop サービス プリンシパルにロールベースのアクセス制御 (RBAC) ロールを割り当てるには、それらのサブスクリプションに対する Microsoft.Authorization/roleAssignments/writeの アクセス許可を持っている必要があります。 これは、ユーザー アクセス管理者所有者の組み込みロールの一部です。

  • 休止状態で個人用デスクトップ自動スケーリング (プレビュー) を使用する場合は、個人用ホスト プールの VM を作成するときに休止機能を有効にする必要があります。 休止状態の前提条件の完全な一覧については、「休止状態を使用するための前提条件」を参照してください。

    重要

    休止状態は、現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

  • PowerShell を使用してスケーリング プランの作成および割り当てを行う場合は、Az.DesktopVirtualization のバージョン 4.2.0 以降のモジュールが必要です。

Azure portal を使用して Desktop Virtualization Power On Off共同作成者ロールを割り当てる

最初のスケーリング プランを作成する前に、割り当て可能なスコープとして、Azure サブスクリプションで Desktop Virtualization Power On Off 共同作成者 RBAC ロールを Azure Virtual Desktopサービスプリンシパルに割り当てる必要があります。 この ロールを、リソース グループ、ホスト プール、VM など、ご利用のサブスクリプションより低いレベルで割り当てると、自動スケーリング機能が正しく動作しなくなります。 各 Azure サブスクリプションを、自動スケーリングで使用するホスト プールとセッション ホスト VM を含む割り当て可能なスコープとして追加する必要があります。 このロールと割り当てにより、Azure Virtual Desktop は、これらのサブスクリプション内のすべての VM の電源状態を管理できます。 また、アクティブなユーザー セッションがない場合、サービスでホスト プールと VM の両方にアクションを適用させることもできます。

"Desktop Virtualization Power On Off 共同作成者" ロールを Azure Virtual Desktop サービス プリンシパルに割り当てる方法については、「Azure Virtual Desktop サービス プリンシパルに RBAC ロールを割り当てる」を参照してください。

スケーリング プランを作成する

サブスクリプションのサービス プリンシパルに Desktop Virtualization Power On Off 共同作成者 ロールを割り当てたので、スケーリング プランを作成できます。 ポータルを使用してスケーリング プランを作成するには:

  1. Azure portal にサインインします。

  2. 検索バーに「Azure Virtual Desktop」と入力し、一致するサービス エントリを選択します。

  3. [スケーリング プラン] を選択し、[作成] を選択します。

  4. [基本] タブで、[プロジェクトの詳細] の下を確認し、スケーリング プランを割り当てるサブスクリプションの名前を選択します。

  5. 新しいリソース グループを作成する場合は、[新規作成] を選択します。 既存のリソース グループを使用する場合は、ドロップダウン メニューからその名前を選択します。

  6. スケーリング プランの名前を [名前] フィールドに入力します。

  7. 必要に応じて、ユーザーに表示される "わかりやすい" 名前と、プランの説明を追加することもできます。

  8. [リージョン] で、スケーリング プランのリージョンを選択します。 オブジェクトのメタデータは、リージョンに関連付けられた地域に格納されます。 リージョンの詳細については、データの場所に関するページを参照してください。

  9. [タイム ゾーン] で、プランで使用するタイム ゾーンを選択します。

  10. [ホスト プールの種類] で、スケーリング プランを適用するホスト プールの種類を選びます。

  11. [除外タグ] に、スケーリング操作に含めない VM のタグ名を入力します。 たとえば、例外タグ excludeFromScaling を使用することで、メンテナンス中に自動スケーリングがドレイン モードをオーバーライドしないようにするために、ドレイン モードに設定されている VM にタグを付けることができます。 ホストプール内のいずれかの VM のタグ名フィールドに "excludeFromScaling" を設定した場合、自動スケーリングはそれらの特定の VM の起動、停止、またはドレイン モードの変更を行いません。

    注意

    • 除外タグによって、タグ付き VM が電源管理のスケーリング操作から除外されますが、タグ付き VM は、引き続きホストの最小割合の計算の一部として見なされます。
    • ユーザー プリンシパル名やその他の個人を特定できる情報など、機密情報を除外タグに含めないようにしてください。
  12. [次へ] を選択します。[スケジュール] タブが表示されます。スケジュールを使用すると、1 日を通して自動スケーリングで VM のオンとオフを切り替えるタイミングを定義できます。 スケジュール パラメータは、スケーリング プランで選んだホスト プールの種類に応じて異なります。

    プールされたホスト プール

    スケジュールの各フェーズでは、自動スケーリングによって VM がオフになるのは、使用されているホスト プールの容量が容量のしきい値を超えない場合のみです。 スケジュールを作成しようとするときに表示される既定値は平日に推奨される値ですが、必要に応じて変更できます。

    スケジュールを作成または変更するには、次のようにします。

    1. [スケジュール] タブで [スケジュールの追加] を選択します。

    2. [スケジュール名] フィールドにスケジュールの名前を入力します。

    3. [Repeat on](次の日に繰り返す) フィールドで、スケジュールを繰り返す日を選択します。

    4. [Ramp up](増加) タブで、次のフィールドに入力します。

      • [開始時刻] で、営業時間のピーク時のために VM の準備を開始する時刻をドロップダウン メニューから選択します。

      • [負荷分散アルゴリズム] には、幅優先アルゴリズムを選択することをお勧めします。 幅優先の負荷分散により、既存の VM 全体にユーザーが分散され、アクセス時間が短縮されます。

        注意

        ここで選択した負荷分散設定によって、元のホスト プール設定で選択した設定がオーバーライドされます。

      • ホストの最小割合 には、このフェーズで常にオンにしておきたいセッション ホストの割合を入力します。 入力した割合が整数でない場合は、最も近い整数に切り上げされます。 たとえば、7 つのセッション ホストで構成されるホスト プールで、使用量が増加する時間帯におけるホストの最小割合を 10% に設定した場合、使用量が増加する時間帯は 1 つの VM が常にオンになり、自動スケーリングによってオフにされることはありません。

      • 容量のしきい値 には、スケーリング アクションの実行をトリガーする使用可能なホスト プール容量の割合を入力します。 たとえば、最大セッション制限が 20 であるホスト プール内の 2 つのセッション ホストが稼働している場合、使用可能なホスト プールの容量は 40 になります。 容量のしきい値が 75% に設定され、セッション ホストに 30 を超えるユーザー セッションがある場合、自動スケーリングは 3 番目のセッション ホストを稼働させます。 これにより、使用可能なホスト プールの容量は 40 から 60 に変更されます。

    5. [ピーク時間] タブで、次のフィールドに入力します。

      • [開始日時] には、1 日のうち使用率が最も高くなる開始時刻を入力します。 時刻が、スケーリング プランに指定したものと同じタイム ゾーンにあることを確認してください。 この時刻は、増加フェーズの終了時刻でもあります。

      • [負荷分散] には、幅優先または深さ優先の負荷分散を選択できます。 幅優先の負荷分散では、新しいユーザー セッションがホスト プール内のすべての使用可能なセッション ホストに分散されます。 深さ優先の負荷分散では、セッション制限に達していない接続数が最も多い利用可能なセッション ホストに、新しいセッションが分散されます。 負荷分散の種類の詳細については、「Azure Virtual Desktop の負荷分散方法を構成する」を参照してください。

      注意

      ここで容量のしきい値を変更することはできません。 代わりに、[Ramp up](増加) で入力した設定がこの設定に引き継がれます。

      • [Ramp-down](減少) には、[Ramp up](増加) と同様のフィールドに値を入力しますが、今回は、ホスト プールの使用量が低下するときの値を入力します。 これには、次のフィールドが含まれます。

        • 開始時刻
        • 負荷分散アルゴリズム
        • ホストの最小割合 (%)
        • 容量のしきい値 (%)
        • Force logoff users(ユーザーの強制ログオフ)

      重要

      • 使用量が減少する時間帯にユーザーに強制的にサインアウトさせるために自動スケーリングを有効にする場合は、シャット ダウンするユーザー セッションの数が最も少ないセッション ホストが選ばれます。 自動スケーリングは、セッション ホストをドレイン モードに設定し、すべてのアクティブ ユーザー セッションにサインアウトを予告する通知を送信し、指定された待機時間が経過すると、すべてのユーザーをサインアウトします。 自動スケーリングは、すべてのユーザー セッションをサインアウトした後、VM の割り当てを解除します。 使用量が減少する時間帯の強制サインアウトを有効にしていない場合、アクティブまたは切断されたセッションがないセッション ホストは、割り当てが解除されます。
      • 使用量が少ない時間帯は、容量のしきい値を超えることなく、ホスト プール内の既存のすべてのユーザー セッションをより少数の VM に統合できる場合にのみ、自動スケーリングによって VM がシャットダウンされます。
      • 同様に、[Off-peak hours](オフピーク時間) は、[ピーク時間] と同じように動作します。

        • 開始時刻。これは、減少期間の終わりでもあります。
        • 負荷分散アルゴリズム。 各 VM 上のセッションに基づいてセッション ホストの数を徐々に減らすには、深さ優先を選択することをお勧めします。
        • ピーク時間と同様に、ここで容量のしきい値を構成することはできません。 代わりに、[Ramp-down](減少) に入力した値が引き継がれます。

    個人用ホスト プール

    スケジュールの各フェーズで、ユーザー セッションの状態に基づいて VM の割り当てを解除するかどうかを定義します。

    スケジュールを作成または変更するには、次のようにします。

    1. [スケジュール] タブで [スケジュールの追加] を選択します。

    2. [スケジュール名] フィールドにスケジュールの名前を入力します。

    3. [Repeat on](次の日に繰り返す) フィールドで、スケジュールを繰り返す日を選択します。

    4. [Ramp up](増加) タブで、次のフィールドに入力します。

      • [開始時刻] で、ドロップダウン メニューからランプアップ フェーズを開始する時間を選びます。

      • [接続時に VM を起動する] で、ランプアップ中に "接続時に VM を開始" を有効にするかどうかを選びます。

      • [起動する VM] で、開始時にユーザーが割り当てられている個人用デスクトップのみを起動するか、(ユーザー割り当てに関係なく) ホスト プール内のすべての個人用デスクトップを起動するか、プール内の個人用デスクトップを起動しないかを選びます。

      注意

      ランプアップ フェーズ中に VM を起動しないことを選んだ場合は、[接続時に VM を起動する] を有効にすることを強くお勧めします。

      • [切断時間] で、特定のアクションを実行しないとユーザー セッションが強制的に切断される時間 (分) を指定します。 この数値は 0 - 360 の範囲で指定できます。

      • [実行] で、ユーザー セッションが指定された時間で切断された後に、サービスが実行するアクションを指定します。 選択肢は、VM の割り当てを解除する (シャットダウン) か、個人用デスクトップを休止状態にするか、何も実行しないかです。

      • [ログオフ時間] で、特定のアクションを実行しないとユーザー セッションが強制的に切断される時間 (分) を指定します。 この数値は 0 - 360 の範囲で指定できます。

      • [実行] で、ユーザー セッションが指定された時間でログオフされた後に、サービスが実行するアクションを指定します。 選択肢は、VM の割り当てを解除する (シャットダウン) か、個人用デスクトップを休止状態にするか、何も実行しないかです。

    5. [ピーク時][ランプダウン][ピーク時以外の時間] タブで、次のフィールドに入力します。

      • [開始時刻] で、各フェーズの開始時刻を入力します。 この時刻は前のフェーズの終了時刻でもあります。

      • [接続時に VM を起動する] で、そのフェーズの間に "接続時に VM を開始" を有効にするかどうかを選びます。

      • [切断時間] で、特定のアクションを実行しないとユーザー セッションが強制的に切断される時間 (分) を指定します。 この数値は 0 - 360 の範囲で指定できます。

      • [実行] で、ユーザー セッションが指定された時間で切断された後に、実行する必要があるアクションを指定します。 選択肢は、VM の割り当てを解除する (シャットダウン) か、個人用デスクトップを休止状態にするか、何も実行しないかです。

      • [ログオフ時間] で、特定のアクションを実行しないとユーザー セッションが強制的に切断される時間 (分) を指定します。 この数値は 0 - 360 の範囲で指定できます。

      • [実行] で、ユーザー セッションが指定された時間でログオフされた後に、実行する必要があるアクションを指定します。 選択肢は、VM の割り当てを解除する (シャットダウン) か、個人用デスクトップを休止状態にするか、何も実行しないかです。


  13. [次へ] を選択します。[ホスト プールの割り当て] タブが表示されます。含める各ホスト ポールの隣にあるチェック ボックスをオンにします。 自動スケーリングを有効にしない場合は、すべてのチェック ボックスをオフにします。 この設定は後でいつでも戻って変更できます。 スケーリング プランは、プランで指定されたホスト プールの種類に一致するホスト プールにのみ割り当てることができます。

    注意

    • ホスト プールに既に割り当てられているスケーリング プランを作成または更新すると、その変更が直ちに適用されます。
  14. その後、タグを入力する必要があります。 タグは、統合された課金のためにリソースを分類する名前と値のペアです。 同じタグを複数のリソースとリソース グループに適用できます。 リソースにタグを付ける方法の詳細については、タグを使用して Azure リソースを整理することに関する記事を参照してください。

    注意

    タグの作成後に他のタブでリソース設定を変更すると、タグが自動的に更新されます。

  15. 完了したら、[レビューと作成] タブに移動し、[作成] を選択して、選択したホスト プールにスケーリング プランを作成して割り当てます。

既存のスケーリング プランを編集する

既存のスケーリング プランを編集するには:

  1. Azure portal にサインインします。

  2. 検索バーに「Azure Virtual Desktop」と入力し、一致するサービス エントリを選択します。

  3. [スケーリング プラン] を選択し、編集するスケーリング プランの名前を選択します。 スケーリング プランの概要ブレードが開きます。

  4. スケーリング プランのホスト プール割り当てを変更するには、[管理] の見出しの下で [ホスト プールの割り当て] を選びます。

  5. スケジュールを編集するには、[管理] という見出しで [スケジュール] を選択します。

  6. プランのフレンドリ名、説明、タイム ゾーン、または除外タグを編集するには、[プロパティ] タブに移動します。

既存のホスト プールにスケーリング プランを割り当てる

デプロイ内の同じ種類の既存のホスト プールにスケーリング プランを割り当てることができます。 スケーリング プランをホスト プールに割り当てると、そのホスト プール内のすべてのセッション ホストにそのプランが適用されます。 スケーリング プランは、割り当てられたホスト プールで作成したすべての新しいセッション ホストにも自動的に適用されます。

スケーリング プランを無効にした場合、割り当てられたすべてのリソースは、無効にした時点の状態のままになります。

スケーリング プランを既存のホスト プールに割り当てるには:

  1. Azure Portalを開きます。

  2. 検索バーに「Azure Virtual Desktop」と入力し、一致するサービス エントリを選択します。

  3. [スケーリング プラン] を選択し、ホスト プールに割り当てるスケーリング プランを選択します。

  4. [管理] 見出しで、[ホスト プールの割り当て] を選択してから、[+ 割り当て] を選択します。 スケーリング プランを割り当てるホスト プールを選択し、[割り当て] を選択します。 ホスト プールはスケーリング プランと同じ Azure リージョンに存在する必要があり、スケーリング プランのホスト プールの種類は、割り当て先のホスト プールの種類と一致している必要があります。

ヒント

デプロイ時にスケーリング プランを有効にした場合は、次のスクリーンショットに示すように、[スケーリング プラン] メニューで [自動スケーリングを有効にする] チェックボックスをオフにし、選択したホスト プールのプランを無効にすることもできます。

スケーリング プラン ウィンドウのスクリーンショット。[自動スケーリングの有効化] チェック ボックスがオンであり、赤い枠線で強調表示されています。

次のステップ

スケーリング プランを作成したので、次の操作を実行できます。

この記事で使用されている用語の詳細については、自動スケーリングの用語集に関するページを参照してください。 自動スケールのしくみの例については、「自動スケーリングのシナリオ例」を参照してください。 また、その他の質問がある場合は、自動スケーリングの FAQ を参照できます。