次の方法で共有


Azure Automationと Azure Logic Apps for Azure Virtual Desktop を使用してセッション ホストをスケーリングする

仮想マシン (VM) をスケーリングすることで、Azure Virtual Desktop のデプロイコストの合計を削減できます。 つまり、ピーク時以外の使用時間にセッション ホスト VM をシャットダウンして割り当てを解除し、ピーク時に再度オンにして再割り当てを行います。

この記事では、Azure Automation アカウントを使用して構築されたスケーリング ツールと、Azure Virtual Desktop 環境でセッション ホスト VM を自動的にスケーリングする Azure Logic Apps について説明します。 スケーリング ツールを使用する方法については、「Azure Automationと Azure Logic Apps を使用してセッション ホストのスケーリングを設定する」を参照してください。

注:

Azure Virtual Desktop のネイティブ自動スケーリング ソリューションは、プールされたホスト プールと個人用ホスト プールで一般提供されており、スケーリング スケジュールに基づいてセッション ホスト VM を自動的にスケールインまたはスケールアウトします。 構成を容易にするために自動スケーリングを使用することをお勧めします。 詳細については、「 自動スケーリング プラン」を参照してください。

スケーリング ツールのしくみ

スケーリング ツールは、セッション ホスト VM のコストを最適化したいお客様に低コストの自動化オプションを提供します。

スケーリング ツールを使用すると、次のことができます。

  • ピーク時とピーク時以外の営業時間に基づいて、VM の開始と停止をスケジュールします。
  • CPU コアあたりのセッション数に基づいて VM をスケール アウトします。
  • ピーク時以外の時間帯に VM をスケールインし、セッション ホスト VM の最小数を実行したままにします。

スケーリング ツールでは、Azure Automation アカウント、PowerShell Runbook、Webhook、ロジック アプリの組み合わせを使用して機能します。 ツールを実行すると、ロジック アプリは Webhook を呼び出して Runbook を開始します。 その後、Runbook によってジョブが作成されます。

ピーク時とピーク時以外の時間は、次のように定義されます。

  • ピーク: ユーザー セッションの 最大 コンカレンシーに達すると予想される時間。
  • オフピーク: ユーザー セッションの 最小 コンカレンシーに達すると予想される時間。

ピーク使用時間中に、ジョブは、各ホスト プールの現在の実行中のセッション ホストの現在のセッション数と VM 容量を確認します。 この情報を使用して、実行中のセッション ホスト VM が、CreateOrUpdateAzLogicApp.ps1 ファイルに対して定義されている SessionThresholdPerCPU パラメーターに基づいて既存のセッションをサポートできるかどうかを計算します。 セッション ホスト VM が既存のセッションをサポートできない場合、ジョブはホスト プール内の追加のセッション ホスト VM を開始します。

注:

SessionThresholdPerCPU は、VM 上のセッション数を制限しません。 このパラメーターは、接続の負荷分散に新しい VM を開始する必要がある場合にのみ決定します。 セッション数を制限するには、指示に従って MaxSessionLimit パラメーターを適切に構成する必要があります。

ピーク時以外の使用時間中に、 ジョブは MinimumNumberOfRDSH パラメーターに基づいてシャットダウンする必要があるセッション ホスト VM の数を決定します。 LimitSecondsToForceLogOffUser パラメーターを 0 以外の正の値に設定した場合、ジョブはセッション ホスト VM をドレイン モードに設定して、新しいセッションがホストに接続できないようにします。 その後、ジョブは、現在サインインしているユーザーに作業を保存するよう通知し、構成された時間を待ってから、ユーザーに強制的にサインアウトします。セッション ホスト VM 上のすべてのユーザー セッションがサインアウトされると、ジョブによって VM がシャットダウンされます。 VM がシャットダウンすると、ジョブはセッション ホスト ドレイン モードをリセットします。

注:

セッション ホスト VM をドレイン モードに手動で設定した場合、ジョブはセッション ホスト VM を管理しません。 セッション ホスト VM が実行され、ドレイン モードに設定されている場合は、使用不可として扱われます。これにより、ジョブは負荷を処理するために追加の VM を起動します。 Azure VM にタグを付けてから、手動でドレイン モードに設定することをお勧めします。 後で Azure Logic App Scheduler を作成するときに、 MaintenanceTagName パラメーターでタグに名前を付けることができます。 タグは、これらの VM をスケーリング ツールが管理するものと区別するのに役立ちます。 また、メンテナンス タグを設定すると、タグを削除するまでスケーリング ツールが VM に変更を加えなくなります。

LimitSecondsToForceLogOffUser パラメーターを 0 に設定すると、指定したグループ ポリシーのセッション構成設定でユーザー セッションのサインオフを処理できるようになります。 これらのグループ ポリシーを表示するには、 コンピューターの構成>Policies>管理用テンプレート>Windows コンポーネント>リモート デスクトップ サービス>リモート デスクトップ セッション ホスト>Session 時間制限に関するページを参照してください。 セッション ホスト VM にアクティブなセッションがある場合、ジョブはセッション ホスト VM を実行したままにします。 アクティブなセッションがない場合、ジョブはセッション ホスト VM をシャットダウンします。

ジョブは、ホスト プールの MaxSessionLimit を考慮して、現在のセッション数が最大容量の 90% を超えるかどうかを判断します。 その場合、ジョブは追加のセッション ホスト VM を開始します。

ジョブは、設定された繰り返し間隔に基づいて定期的に実行されます。 この間隔は Azure Virtual Desktop 環境のサイズに基づいて変更できますが、VM の起動とシャットダウンには時間がかかる可能性があるため、遅延を考慮してください。 繰り返し間隔を 15 分ごとに設定することをお勧めします。

ただし、このツールには次の制限もあります。

  • このソリューションは、プールされたマルチセッション セッション ホスト VM にのみ適用されます。
  • このソリューションは、任意のリージョンの VM を管理しますが、Azure Automation アカウントと Azure Logic App と同じサブスクリプションでのみ使用できます。
  • Runbook のジョブの最大実行時間は 3 時間です。 ホスト プール内の VM の起動または停止にそれより長い時間がかかる場合、ジョブは失敗します。 詳細については、「 共有リソース」を参照してください。
  • スケーリング アルゴリズムが適切に動作するには、少なくとも 1 つの VM またはセッション ホストを有効にする必要があります。
  • スケーリング ツールでは、CPU またはメモリに基づくスケーリングはサポートされていません。
  • スケーリングは、ホスト プール内の既存のホストでのみ機能します。 スケーリング ツールでは、新しいセッション ホストのスケーリングはサポートされていません。

注:

スケーリング ツールは、現在スケーリングしているホスト プールの負荷分散モードを制御します。 このツールでは、ピーク時とオフピーク時の両方に幅優先の負荷分散モードが使用されます。

次の手順