私がレビューする Azure Virtual Desktop の請求書はどれも同じ形をしています。コンピューティングが圧倒的に最大の項目で、その驚くほど多くの部分が午前 2 時に誰もいない環境のために稼働しています。自動スケールはこれを解決する機能であり、2026 年 6 月の Azure Virtual Desktop 更新まとめで取り上げた自動化ホストプールと動的自動スケールの登場でさらに良くなりました。しかし米国の IT チームから私に寄せられる質問は「自動スケールでお金は節約できるのか」ではなく、「私たちの場合いくら節約でき、何を変える必要があるのか」です。本ガイドはその問いに、スプレッドシートにそのままコピーできるコストモデルで答えます。コストの構成要素、2 つの自動スケール方式の違い、数式付きの計算例、効果順に並べたレバー、節約がヘルプデスクのチケットに変わるのを防ぐガードレール、そして Azure Cost Management で結果を測定する方法です。機能に関する記述はすべて、本文中にリンクし「参考資料」に列挙した Microsoft Learn のページで確認しています。単価は意図的にプレースホルダーのままにしています。リージョンと契約によって異なるため、あなたにとって正しい数字は Azure 料金計算ツールにサインインして取得したものです。

Azure Virtual Desktop の費用はどこへ行くのか

Microsoft の Azure Virtual Desktop 料金ページは請求を 2 つの部分として説明しています。ユーザーアクセス権と、仮想マシン、OS イメージ・データディスク・ユーザープロファイル用のストレージ、ネットワークから成る Azure インフラストラクチャで、従量課金または予約で課金されます。実務では私はこれを 7 行に分けます。自動スケールを有効にしたときの挙動がそれぞれ異なるからです。

コスト構成要素何が決めるか課金の仕組み自動スケールが変えるもの
コンピューティング(セッションホスト VM)ホスト数 × 時間 × VM 時間単価VM が実行中または*停止済み(割り当て済み)*のときに課金。停止済み(割り当て解除)では課金されない時間の項。これがレバーです。
OS ディスクディスク数 × 階層 × 月数永続的なマネージドディスクは VM の割り当て解除中も課金が続く。エフェメラル OS ディスクはローカル VM ストレージ上にあり、リモートの Azure Storage には保存されない電源管理:変化なし。動的:ホストが削除されるためディスク月数が減る。エフェメラル:ステートレスなホストではこの行が消える。
プロファイルストレージ(FSLogix)プロビジョニングした GiB、IOPS、スループット(プロビジョニング v2)、または使用 GiB とトランザクション(従量課金)月次。Azure Files の課金モデルまたは Azure NetApp Files の容量プールに従う直接の影響なし。ホストの密度がサインオン時に必要な IOPS に影響する。
ネットワーク送信トラフィック同時セッション数 × アクティブ時間 × kbps月間最初の 100 GBを超えた分の送信インターネットデータ転送を GB 単位で課金変化なし。ホスト数ではなくユーザーの活動に従う。
ライセンス内部利用ではユーザーごとに 1 つの対象ライセンス、外部の商用利用ではユーザーごとのアクセス料金ライセンスチャネル、またはユーザーごとのアクセス料金の Azure メーター変化なし。
管理ツールInsights と診断のための Log Analytics 取り込み取り込み GB 単位。標準の Log Analytics 料金が適用自動スケール評価ログの分だけわずかに増える。
人イメージ構築、ホスト追加、パッチ適用、容量問題の火消しに費やす時間人件費自動化ホストプールとセッションホスト更新が手作業のライフサイクル作業の大半をなくす。

このモデルではライセンスに関する 2 点が重要です。第一に、Windows 11 Enterprise マルチセッションのセッションホストで対象となるライセンスは、Microsoft 365 E3、E5、A3、A5、F3、Business Premium、Student Use Benefit、Windows Enterprise E3 と E5、Windows Education A3 と A5、そして Windows VDA ユーザーごとライセンスです。ライセンスページは、サービスにアクセスする各ユーザーに 1 つを用意しなければならないと明記しており、マルチセッション FAQはこのユーザーごとの Windows ライセンスが RDS クライアントアクセスライセンスの代わりになると述べています。第二に、Windows Server のセッションホストにはソフトウェアアシュアランス付きの RDS CAL または RDS ユーザーサブスクリプションライセンスが必要で、後述の Windows Server 向け Azure ハイブリッド特典が効いてくるのはここです。自動スケールしてもどちらのライセンス行も動かないため、コンピューティングの削減率は常に請求書全体の削減率より大きくなります。

電源管理自動スケールと動的自動スケールの比較

それぞれが行うこと

自動スケール用語集は 2 つのスケーリング方式を定義しています。電源管理自動スケールは「ホストプールの使用可能容量に合わせてセッションホストの電源をオン・オフする」もので、標準管理のホストプール向けの方式です。動的自動スケールは「ホストプールの使用可能容量に合わせてセッションホストの電源をオン・オフし、セッションホストを作成・削除する」もので、セッションホスト構成を持つプールホストプールでのみ使用できます。どちらも同じスケジュールで動作します。ランプアップ、ピーク、ランプダウン、オフピークの各フェーズに、負荷分散アルゴリズム、最小ホスト割合、容量しきい値があります。ランプダウン時の統合ロジックも同一で、Microsoft のシナリオ解説は「唯一の違いは、電源管理がセッションホストを割り当て解除するのに対し、動的自動スケールはセッションホストを削除できることです」と述べています。

同じページから利用可能性について 2 点。電源管理自動スケールは Azure と Azure Government の、ホストプールを作成できるすべてのリージョンで利用できます。動的自動スケールは Azure でのみ利用可能で、Azure Government ではサポートされず、執筆時点では Learn のページでまだプレビューと表示されています。

前提条件

要件電源管理自動スケール動的自動スケール
ホストプールの種類プール(標準管理またはセッションホスト構成)または個人セッションホスト構成を持つプールのみ
AVD サービスプリンシパルまたはホストプールのマネージド ID に、サブスクリプションスコープで割り当てる RBAC ロールDesktop Virtualization Power On Off ContributorDesktop Virtualization Power On Off Contributor と Desktop Virtualization Virtual Machine Contributor
ホストプールの MaxSessionLimitカスタム値。既定値は使用不可同じ
同じホストプール上の他のスケーリングツールなしなし
Az.DesktopVirtualization モジュール4.2.0 以降5.4.2-preview 以降
ネットワーク追加要件なし新しいホストはエージェントのインストールのために wvdhpustgr0prod.blob.core.windows.net に到達できる必要があり、できない場合は CustomerVmNoAccessToDeploymentPackageException で作成が失敗する
スケジュールのパラメーターフェーズごとの最小ホスト割合と容量しきい値同じものに加えて Minimum host pool size、Maximum host pool size、Minimum percentage of active hosts (%)

これらはすべてスケーリングプランの作成と割り当てガイドに基づいており、同ガイドはロールをサブスクリプションより下のスコープで割り当てると「自動スケールが正しく動作しなくなる」とも警告しています。管理アプローチ自体は一度しか決められません。ホストプール管理アプローチのページは「ホストプールの作成時に設定され、後から変更できません。セッションホスト構成なしでホストプールを作成した場合、後から追加することはできません」と注意しています。

それぞれが適用される場面

標準ホストプールを運用し、独自の Terraform、Bicep、パイプラインと登録トークンでホストを構築しているなら、電源管理が唯一の選択肢で、こちらは一般提供されています。セッションホスト構成のホストプールを運用しているなら動的自動スケールが自然な選択で、自動スケール FAQはその形の作り方を説明しています。Minimum host pool size を Maximum host pool size と同じにすれば電源管理と同じ動きになり、Minimum percentage of active hosts (%) を 100 にすれば作成と削除だけを行います。動的自動スケールが作成するホストは「既定のセッションホスト構成で定義された最新の有効/安定したイメージバージョン」を使うため、イメージパイプラインがそのまま自動スケールに供給されます。個人ホストプールは別のスケジュールを持ちます。セッションが切断またはサインアウトされてから 0 ~ 360 分後に割り当て解除、休止状態、または何もしないを選び、朝は接続時に VM を開始する機能を使います。FSLogix と App Attach は休止状態をサポートしないため、これらを使う個人プールは割り当て解除を選ぶべきです。

コストモデル

変数

以下のモデルは私がクライアントに渡しているものです。意図的に単純にしています。自動スケールが変えるのは時間の項なので、モデルは時間を切り離して扱います。

変数記号例の値出所
名前付きユーザー数U500ライセンス数
ピーク同時接続率C0.70推測ではなく Insights のセッション数
ピーク同時セッション数P = U × C350計算
ホストあたり最大セッション制限S16自分の MaxSessionLimit。サイジングガイドラインは中程度のワークロードで vCPU あたり最大 4 ユーザーを示すため、8 vCPU ホストで 16 なら余裕がある
容量しきい値T75%スケーリングプランのスケジュール
ピーク時に稼働するホスト数H = ceil(P ÷ (S × T))30Microsoft の統合の式を定常状態に適用
ホストプールのサイズN32保持するホスト数。ドレインと障害用に 2 台の予備
VM サイズStandard_D8ds_v5、8 vCPU、32 GiB、ローカル一時ディスクサイジングガイドラインの例のファミリー。「d」がエフェメラル OS ディスクの配置を可能にする
月あたりの営業日数D21米国のカレンダー
週末と祝日の日数W9.430.4 − D
1 日あたりのランプアップ・ランプダウン時間h_up、h_down2 と 2スケジュール
1 日あたりのピーク時間h_peak10スケジュール
1 日あたりのオフピーク時間h_off1024 − その他
ランプフェーズ中に稼働するホスト数(平均)R10ランプアップで最小ホスト割合約 30%、ランプダウンで減少
スケールダウンのフロアF2オフピークの最小ホスト割合を 2 台に切り上がるよう設定
VM 時間単価p_vmお住まいのリージョンの価格料金計算ツール、Windows VM 料金ページ
OS ディスク月額p_diskお住まいのリージョンの価格Managed Disks 料金ページ
プロファイルストレージ単価p_gib、p_iops、p_tpお住まいのリージョンの価格Azure Files 料金ページ
送信トラフィック GB 単価p_egressお住まいのリージョンの価格帯域幅料金ページ

数式

text
P          = U × C                                           peak concurrent sessions
H          = ceil( P / (S × T) )                             hosts running at peak
Hours_on   = N × 730                                         always-on host-hours per month
Hours_as   = D × (R × h_up + H × h_peak + R × h_down + F × h_off) + W × F × 24
Compute    = Hours × p_vm
Disks      = DiskMonths × p_disk                             persistent OS disks
Profiles   = GiB_prov × p_gib + IOPS_prov × p_iops + MiBps_prov × p_tp   (Azure Files provisioned v2)
Egress_GB  = P × h_active × D × kbps × 0.45 / 1000           0.45 MB per kbps-hour
Egress     = max(Egress_GB - 100, 0) × p_egress
Licences   = U × your per-user licence (outside the Azure bill for internal users)

H の式は Microsoft 自身のものです。自動スケール FAQには「必要なホスト数 = セッション総数 /(最大セッション制限 x 容量しきい値 %)」を切り上げると記されています。ランプダウン中の統合のために書かれたものですが、使用容量がしきい値を超えるたびにホストをオンにするため、定常状態で自動スケールが何台を稼働させ続けるかも同じ算術で決まります。

計算例

例の値を代入すると次のようになります。

項目常時稼働(自動スケールなし)電源管理自動スケール動的自動スケール
平日 1 日あたりのホスト時間32 × 24 = 76810×2 + 30×10 + 10×2 + 2×10 = 360360
月あたりの平日ホスト時間768 × 21 = 16,128360 × 21 = 7,5607,560
月あたりの週末ホスト時間32 × 24 × 9.4 = 7,2192 × 24 × 9.4 = 451451
月あたりのコンピューティングホスト時間23,360(N × 730)8,0118,011
コンピューティングコスト23,360 × p_vm8,011 × p_vm8,011 × p_vm
OS ディスク月数(永続)3232。割り当て解除された VM もディスクを保持するため約 17。最小プールサイズの 10 台が丸 1 か月存在し、作成された 20 台が 21 営業日に約 12 時間ずつ存在する
OS ディスク月数(エフェメラル)割り当て解除とは非対応割り当て解除とは非対応ストレージ料金 0。SSD ベースディスクを選んだ場合のみベースディスク料金
プロファイルストレージ500 ユーザー × 30 GiB = 15,000 GiB をプロビジョニング、加えて IOPS とスループット同じ同じ
送信トラフィック350 × 8 × 21 × 150 kbps × 0.45 ÷ 1000 ≈ 3,970 GB、うち 100 GB は無料同じ同じ
ライセンス500 × 対象ライセンス同じ同じ
Log Analytics取り込み GB × 価格わずかに増加(自動スケールログ)わずかに増加

ユーザーあたり 30 GiB はサイジングガイドラインの最小プロファイルストレージ列から、150 kbps は Microsoft の RDP 帯域幅の見積もりにおける既定モードでの Word と Excel のアクティブな作業の中間値で、1080p では 100 ~ 200 kbps の範囲です。同ページで動画、PowerPoint、画像の多いブラウジングはメガビット毎秒で計測されているので、ユーザーがそうした作業をする場合は別にモデル化してください。

自動スケールが時間の項をどう変えるか

自動スケールはコンピューティングの行を 23,360 から 8,011 ホスト時間へ、元の 34% に、つまりおよそ 3 分の 2 削減しました。しかも割引なし、サイズ変更なし、日中にユーザーが目にするものの変更なしでそれを実現しています。モデルの他の項目はすべて変わりません。これが正直な見出しです。自動スケールはコンピューティングのレバーであり、コンピューティングが請求書の 60% なら、コンピューティングの 3 分の 2 削減は全体の 40% 削減になります。

チューニングの前に知っておくべき感度が 2 つあります。30 台のホストでピーク時間が 1 時間増えるごとに月 30 × 21 = 630 ホスト時間が加わるので、8:30 にサインオンするチームに 6:00 からランプアップを始めるスケジュールは、1,260 ホスト時間分の空気に支払っています。夜間フロアのホストが 1 台増えるごとに 10 × 21 + 24 × 9.4、約 436 ホスト時間が月に加わり、フロアを 2 台から 4 台に上げると 871 ホスト時間、自動スケール後の請求全体の 11% を費やします。フロアは善意が息絶える場所なので、恐れからではなく、実際の時間外セッションに関する Insights のデータからサイズを決めてください。

動的自動スケールは時間の項をさらに変えることはありません。稼働中のホストは、電源をオンにしたものでも作成したものでもコストは同じです。変わるのはディスクの項と停止中 VM の占有です。電源管理では 32 台の永続 OS ディスクが丸 1 か月課金されますが、動的自動スケールでは最小プールサイズだけが丸 1 か月存在し、エフェメラル OS ディスクなら作成したホストのストレージ料金は完全に消えます。

効果順に並べたレバー

これは米国の典型的なナレッジワーカー向けプールに対する私の順位付けです。すでにどれかを導入済みなら順序は変わるかもしれません。

  1. スケジュール時間とフロア。 上に示したとおりです。最初の実際のサインオンが現れたときにランプアップを始め、最後の実際のサインオフが起きたときにランプダウンを始め、時間外セッションが本当にゼロならオフピークの最小ホスト割合を 0% に設定します。他のどれもこれには及びません。
  2. 密度の前提:C と S。 私が引き継ぐ環境の多くは 100% の同時接続と慎重なセッション制限を前提にしています。C は 1 か月分の Insights のセッション数から測ってください。S については、サイジングガイドラインが vCPU あたりの最大ユーザー数を軽量 6、中程度 4、重量 2、パワー 1 とし、マルチセッションホストの最小構成として 8 vCPU と 16 GB を推奨し、「16 コア VM を 2 台使う方が 32 コア VM を 1 台使うよりユーザー体験が良い」ためマルチセッションホストは 4 ~ 24 vCPU に保つよう述べています。また、小さなホストを多く持つほどユーザーのいないホストが増えて停止できるとも指摘しており、これはまさに自動スケールが必要とするものです。
  3. VM ファミリーの適正サイズ化。 同じページは CPU のスケーリングが線形ではない(倍増ごとに 1.5 ~ 1.9 倍)こと、そしてメモリが制約の場合は 8 GB から 16 GB への増強で「サポートできるユーザー数が 2 倍以上になる」ことがあると述べています。サイズを変える前に Insights のホストパフォーマンスタブでどのリソースが最初に飽和するかを確認してください。エフェメラル OS ディスクを選択肢として残すため、ローカルストレージを持つ v5 または v6 の D シリーズを選びます。
  4. ベースラインだけにコミットメント割引を。 Azure 予約は 1 年または 3 年の期間で従量課金に対して最大 72% の割引を提供し、1 時間単位で適用され、VM コンピューティングのメーターだけを対象とします。「追加のソフトウェア、Windows、ネットワーク、ストレージの料金は対象外です」。未使用の予約時間は失われるため、月 h 時間稼働するホストは h ÷ 730 > 1 − 割引率のときにだけ元が取れます。例では、2 台のフロアホストは 730 時間稼働するので明らかな予約候補です。30 台のピークホストは 21 営業日に約 14 時間、294 時間つまり月の 40% 稼働するので、割引率が 60% を超える場合にしか元が取れません。推測せず、料金計算ツールで自分のサイズと期間の実際の割合を確認してください。インスタンスサイズの柔軟性により予約は同じグループ内のサイズ間で適用先を移せるため、後でサイズ変更しても守られます。変動層には Azure コンピューティング節約プランがあり、サイズ、リージョン、コンピューティングサービスをまたいで適用される 1 時間あたりのドル建てコミットメントです。こちらもソフトウェア、ネットワーク、ストレージは対象外で、購入後のキャンセルや返金はできません。Microsoft 自身の順序は、まず適正サイズ化、次に使用率の低い予約の交換またはトレードイン、その後に安定した使用量向けの新規予約の購入、最後に節約プランの追加です。Windows Server のセッションホストでは、ソフトウェアアシュアランス付きのコアライセンスがあれば Azure ハイブリッド特典で Windows Server ソフトウェア料金がなくなります。VM あたり最低 8 コアライセンスが必要です。Windows 11 マルチセッションのホストは代わりにユーザーのライセンスで Windows の権利を持ちます。
  5. エフェメラル OS ディスク。 エフェメラル OS ディスクのページは、停止済み(割り当て解除)状態と停止/開始が「サポートされない」と明記しているため、ホストを割り当て解除するプランとは組み合わせられません。動的自動スケールの作成と削除の動作とは組み合わせられ、プロファイルが FSLogix にあればホストはステートレスになるので AVD に適しています。制約として、イメージが VM のキャッシュ、一時、または NVMe ディスク(最大 2,040 GiB)に収まる必要があり、VM イメージキャプチャ、ディスクスナップショット、Azure Disk Encryption、Azure Backup、Azure Site Recovery、OS ディスクスワップはサポートされません。より高い SLA のために Standard SSD または Premium SSD のベースディスクを選ぶと、そのベースディスク料金を支払います。
  6. 割り当て解除ポリシー。 *停止済み(割り当て済み)*の VM は依然としてコンピューティングが課金され、*停止済み(割り当て解除)*だけがメーターを止めます。自動スケールは割り当て解除を行うので望ましい動きです。個人プールでは切断とサインアウト時の動作を割り当て解除に設定し(FSLogix が関わるなら休止状態は使わない)、ユーザーが自分のデスクトップを呼び戻せるよう接続時に VM を開始を有効にします。
  7. FSLogix のストレージ階層。 FSLogix ストレージの比較は、ほとんどの顧客に Azure Files を推奨し、200 ユーザー未満の軽量ワークロードには Standard ファイル共有、それ以外には Premium を推奨し、Azure NetApp Files のパフォーマンスは「階層と容量の積の関数」であるため、低い階層でより多くの容量をプロビジョニングする方が IOPS 目標を安く達成できる場合があると述べています。Azure Files の課金ガイダンスは、すべての新規デプロイにプロビジョニング v2 モデルを使うこと、そして Azure Files の予約でストレージを最大 36% 割引できることを示しています。
  8. リージョンの選択。 VM、ディスク、送信トラフィックの価格はリージョンによって異なり、送信料金は大陸ごとに異なります。スケーリングプランの構成はホストプールの構成と同じリージョンに置く必要がありますが、セッションホストはどのリージョンにも配置できるため、メタデータはそのままにして、価格と待ち時間のバランスが取れる場所にホストを置けます。往復時間を犠牲にして安いリージョンを追わないでください。サイジングガイダンスは待ち時間、パケット損失、ジッターをユーザー体験に直接影響する要因として挙げています。

ガードレール

ランプアップとランプダウンのタイミング

自動スケールはランプアップ中にホストをオフにしないため、早すぎるランプアップは単に時間を燃やします。最初のサインオンの波の 30 ~ 60 分前に、高めの最小ホスト割合で開始してください。動的自動スケールのガイドはこれをピークに引き継ぐよう推奨しています。ランプダウンでは強制サインアウトはそのフェーズ中にのみ、設定した待機時間の後にのみ発生します。FAQ は失敗のパターンを正確に示しています。「ランプダウンフェーズが 15 分で、ユーザーをサインアウトして VM をシャットダウンするまでの待機時間が 20 分なら、スケジュールはオフピークフェーズに移り、ユーザーセッションは強制サインアウトされません」。ランプダウンフェーズを待機時間より長くしてください。スケジュールが月曜から金曜のみなら、金曜のオフピーク設定が月曜のランプアップまで週末を通して引き継がれます。これはフロアにとって望ましい動きです。

ドレインモードと除外タグ

自動スケールはドレインモードを上書きします。「誰がドレインモードにしたかに関係なく、自動スケールはドレインモードの VM のオン・オフを行います」。メンテナンスではスケーリングプランの除外タグ(Microsoft の例は excludeFromScaling)をホストに付けると、自動スケールはそのホストの開始、停止、ドレインモードの変更を行いません。Learn ページからの注意点が 2 つあります。タグ付きホストも最小ホスト割合の計算には含まれること、そしてすべてのホストにタグを付けて電源を切ると、自動スケールに起動できるものが残らず、ユーザーに「利用可能なリソースがありません」と表示されることです。

スケールイン中のユーザー体験

ランプダウンで強制サインアウトを有効にしていない限り、自動スケールはセッションのないホストだけをオフにします。ホストを選ぶときはまずドレインモードにし、設定した通知メッセージを送り、待機し、その後サインアウトして割り当て解除します。ホストがドレインモードにあるため、再接続するユーザーは停止間近のホストではなく生き残ったホストに着地します。ランプアップとピークではパフォーマンスのために幅優先の負荷分散を、ランプダウンとオフピークではセッションをより少ないホストに統合するために深さ優先を使います。これは FAQ が推奨するパターンです。これにグループポリシーまたは Intune の設定 Set time limit for disconnected sessions(Microsoft の例では 15 ~ 30 分)を組み合わせ、切断セッションが一晩中ホストを占有しないようにします。

サインオンストームへの容量

接続時に VM を開始する機能はサインオンストーム対策ではありません。プールホストプールでは 5 分ごとに最大 1 台の VM しか起動せず、その間に到着したユーザーは「利用可能なリソースがありません」を受け取ります。防御は適切な最小ホスト割合を持つランプアップフェーズです。容量が逼迫したリージョンにいる場合、オンデマンド容量予約は期間コミットメントなしで指定した VM サイズと数量を保証しますが、VM が使用しているかどうかに関係なく予約容量に対して VM 料金を支払います。使用済みと未使用の予約容量はいずれも予約と節約プランの割引対象です。プール全体ではなくピーク分だけを予約し、デプロイの失敗が実際に問題になった場所でのみ行ってください。

測定

Azure Cost Management のビュー

コスト分析のスマートビューは、KPI、異常の洞察、サブスクリプションからリソースグループ、リソース、メーターへのドリルダウンを提供します。予約ビューは過去 30 日の償却ベースの使用率を示します。AVD のリソースグループにアラート付きの予算を作成し、サブスクリプションで異常アラートを有効にし、週次で確認してください。Microsoft は変更後の最初の 1 ~ 2 週間は毎日確認することを推奨しており、これは新しいスケーリングプランが稼働を始めるちょうどその時期です。

タグ

セッションホストのリソースグループとホストプールのタグでコストをホストプール別にグループ化します。Enterprise Agreement、Microsoft Customer Agreement、Microsoft Partner Agreement のアカウントではタグの継承を有効にすると、リソースグループとサブスクリプションのタグが約 24 時間以内に子リソースの使用状況レコードに適用され、その後は継承タグでフィルターした予算を作成できます。動的自動スケールが作成するホストはセッションホスト構成から VM タグを継承するため、個々の VM ではなくそこにタグを設定してください。

Insights と自動スケールブック

Azure Virtual Desktop Insights には専用の Log Analytics ワークスペース、ホストプールとワークスペースの診断設定、セッションホスト上のデータ収集ルール付き Azure Monitor エージェントが必要で、aka.ms/avdi の構成ブックがこれらをすべてセットアップします。ホストプールの診断設定に Autoscale logs for pooled host pools カテゴリを追加すると Insights に自動スケールタブが現れ、電源状態の推移を表示します。基になるテーブルは WVDAutoscaleEvaluationPooled で、評価ごとに SessionOccupancyPercent、ActiveSessionHostCount、スケジュールフェーズ、ScalingReasonMessage を記録します。次のクエリで容量しきい値とフロアが適切かどうかが分かります。

kusto
WVDAutoscaleEvaluationPooled
| where ResultType == "Succeeded"
| summarize max(SessionOccupancyPercent), max(SessionCount), max(ActiveSessionHostsPercent), max(ActiveSessionHostCount)
    by _ResourceId, bin(TimeGenerated, 1d), ConfigScheduleName, ConfigSchedulePhase
| order by _ResourceId asc, TimeGenerated asc, ConfigScheduleName, ConfigSchedulePhase asc

失敗した評価は CorrelationId で WVDErrors と結合します。個人プールは Insights タブを使えないため、自動スケールのログはストレージアカウントまたは Event Hub に送ってください。

毎月レビューすべきこと

  • ホストプールごとのコンピューティングホスト時間とモデルの比較、および WVDAutoscaleEvaluationPooled から得たスケジュールフェーズ別の時間。
  • フェーズごとの SessionOccupancyPercent のピーク。しきい値に近づかないなら、しきい値を上げるか最小ホスト割合を下げる。
  • オフピークの ActiveSessionHostCount。フロアを上回っているなら、ホストを占有している切断セッションを見つける。
  • コスト分析での予約と節約プランの使用率。予約で 100% 未満の部分は前払いして使わなかったお金。
  • ディスク月数とホスト数の比較。動的自動スケールなら両者は乖離するはず。
  • GB 単位の Log Analytics 取り込み量。カウンターを追加するにつれて徐々に増える。
  • セッションホスト構成のイメージバージョン。自動スケールが古いビルドからホストを作成していないことを確認する。

取るべき行動

  1. コスト分析から先月の AVD コストをメーター別にエクスポートし、7 つのコスト行を埋め、コンピューティングの割合を記録する。
  2. Insights から 30 日分のセッション数を取得し、実際の同時接続率と実際の時間外セッション数を計算する。
  3. ホストプールの管理アプローチを確認する。標準なら電源管理自動スケール、セッションホスト構成なら動的自動スケールが利用できる。
  4. ワークロードの種類とホストサイズに合わせ、サイジングガイドラインに基づいてカスタムの MaxSessionLimit を設定する。既定値は自動スケールをブロックする。
  5. サブスクリプションスコープで Desktop Virtualization Power On Off Contributor(動的の場合はさらに Desktop Virtualization Virtual Machine Contributor)を割り当てる。
  6. データからスケジュールを組む。最初のサインオンの 30 ~ 60 分前にランプアップ、強制サインアウトの待機時間より長いランプダウン、時間外セッションがゼロならオフピークの最小値 0%。
  7. プールが実際にフロアまで下がれるよう、Intune またはグループポリシーで Set time limit for disconnected sessions を展開する。
  8. スケーリングプランで除外タグを定義し、メンテナンスの手順書に書き込む。
  9. Insights を有効にし、自動スケールログのカテゴリを追加し、2 週間後に占有率クエリを実行し、しきい値とフロアを一度調整する。
  10. その後でようやく、損益分岐点の使用率を上回るホストに予約を、残りに節約プランを、Windows Server ホストに Azure ハイブリッド特典を、保持し続けるプロファイルストレージに Azure Files の予約を購入する。
  11. プールがセッションホスト構成を使っているなら、新しいイメージバージョンでエフェメラル OS ディスクをテストし、動的自動スケールにホストを作成させる。
  12. リソースグループに予算と異常アラートを設定し、次に作成されるホストが最初からコストセンターに割り当てられるようセッションホスト構成にタグを付ける。

よくある質問

Azure Virtual Desktop の自動スケールでどれだけ節約できますか? 現在ホストが誰もいない状態で何時間稼働しているかで決まります。自動スケール自体に料金はかかりません。FAQ は「自動スケールの使用に追加料金はかかりますか?」に「いいえ」と答えています。計算例では、32 台のプールを 24 時間稼働させると月 23,360 ホスト時間を消費し、同じプールを 2 台のフロアを持つ平日スケジュールにすると約 8,000 となり、コンピューティング項目でおよそ 3 分の 2 の削減になります。プロファイルストレージ、ライセンス、送信トラフィックは変わらないため、請求書全体の削減率はコンピューティングの削減率より小さくなります。

AVD の電源管理自動スケールと動的自動スケールの違いは何ですか? 電源管理自動スケールはホストの電源をオン・オフ(割り当て解除)するもので、標準管理のホストプール向けの方式です。動的自動スケールはホストの作成と削除も行い、セッションホスト構成を持つプールホストプールでのみ動作します。どちらも同じフェーズ、容量しきい値、統合ロジックを使います。違いは最終的な動作が割り当て解除か削除かであり、それが OS ディスクのコストを変えます。

自動スケールする AVD セッションホストに Azure 予約を購入すべきですか? 月の大半を稼働するホストに限ってください。予約は 1 時間単位で適用され未使用の時間は失われるため、月 h 時間稼働するホストは h ÷ 730 が 1 − 割引率より大きい場合にだけ元が取れます。夜間のフロアと営業日中ずっと稼働するホストを予約し、変動層には節約プランを検討し、いずれも Windows ソフトウェア、ストレージ、ネットワークは対象外であることを忘れないでください。

AVD の自動スケールでエフェメラル OS ディスクを使えますか? 割り当て解除を行うプランとは使えません。Learn のページはエフェメラル OS ディスクの停止と割り当て解除、停止/開始を非サポートとしています。セッションホスト構成からホストを作成・削除する動的自動スケールには適しており、ステートレスなホストの OS ディスクストレージ料金をなくせます。ローカルストレージを持つ VM サイズが必要で、そのホストでは Azure Backup、Site Recovery、ディスクスナップショットは使えません。

誰も作業していない時間帯に自動スケールがセッションホストを稼働させ続けるのはなぜですか? 切断セッションがカウントされるからです。自動スケールは切断したユーザーが再接続するかもしれないと想定し、「必要なホスト数 = セッション総数 ÷(最大セッション制限 × 容量しきい値)」の台数を稼働させ続けます。ホスト数ゼロに到達するには切断セッションを含めてセッション数がゼロでなければなりません。Set time limit for disconnected sessions でランプダウン終了前にサインアウトさせ、オフピークの最小ホスト割合を 0% に設定してください。

チューニングの前に、特定のユーザーグループにとって AVD が適切なプラットフォームかどうかをまだ検討中なら、Windows 365 と Azure Virtual Desktop の比較がユーザーごとの固定料金のケースを扱っており、Azure Virtual Desktop 新機能シリーズは Microsoft がリリースする自動スケールとセッションホスト構成の変更を追い続けています。

もう一組の手が必要ですか?Big Hat Group は米国とカナダの組織に、2 週間の自動スケールヘルスチェックからホストプール全体の再設計まで、Azure Virtual Desktop アーキテクチャとコストレビューを提供しています。ディスカバリーコールを予約して、あなたの環境についてお話しください。

参考資料