Microsoft AZ-140: セッションホストの運用、スケーリング、最適化 — 学習ガイド
こちらの一部です: Microsoft Azure Virtual Desktop Specialty AZ-140 — 学習ガイド. 検証済みの解答で練習: Microsoft試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
概要
Azure Virtual Desktop (AVD) におけるセッションホストの運用は、3つの主要な分野、すなわち「適正なサイジングとパフォーマンスエンジニアリング」、「インテリジェントなスケールと電源管理」、そして「信頼性の高い Day-2 オペレーション」を中心に展開されます。その目標は、ピーク時の需要に対して一貫したユーザーエクスペリエンスを提供しつつ、オフピーク時の支出を最小限に抑えることです。これらすべてを、保守性や回復性を損なうことなく実現します。このセクションでは、スケーリングプラン、スケジュールと容量の構成、ドレインモードなどの運用状態、そして正常性と登録のトラブルシューティングを用いて AVD の自動スケーリングを設計・運用する方法について説明します。さらに、サイジングのガイダンス(GPU 対応ワークロードを含む)と自動化を、予約、Savings Plans、Azure Hybrid Benefit といったコスト最適化の手段と結びつけます。
自動スケーリングの設計: スケーリングプラン、スケジュール、ホストプールターゲティング
スケーリングプランとターゲティング
- スケーリングプランは、プールされたホストプールがセッションホストをいつ、どのように起動、ドレイン、停止、割り当て解除するかを定義します。1つのスケーリングプランで、リージョンをまたいで複数のホストプールをターゲットにできます。
- ターゲットとされた各ホストプールは、それぞれのタイムゾーンのコンテキストで独立してスケーリングプランを実行します。現地の業務時間に合わせるために、スケジュールごとにスケーリングプランのタイムゾーン設定を使用します。
- 除外タグ: 自動スケーリングが特定のVM(例: 運用カナリアやメンテナンスパイロット)を無視するように、タグのキーと値のペアを定義します。
- 負荷分散モードが重要です: 幅優先 (breadth-first) はセッションを複数のホストに分散させます(瞬間的なパフォーマンスは向上しますが、スケールインは遅くなります)。深さ優先 (depth-first) はセッションをより少ないホストに集約させます(集約率とコスト削減を最大化します)。コストを重視した自動スケーリングには、適切な容量のしきい値を設定した上で深さ優先を使用します。
スケジュール: ランプアップ、ピーク、ランプダウン、オフピーク
- ランプアップ: 需要に先立って最小限のフリートを起動・ウォームアップし、容量のしきい値を超えたときにスケールアウトします。
- ピーク: レイテンシーとキューイングを最小限に抑えるためにより多くの容量をオンラインに保ちます。しきい値を超えた場合、スケールアウトは継続されます。
- ランプダウン: 選択されたホストをドレインモードにし、セッションを集約し、猶予期間の後にアイドル状態のホストをパワーダウンします。
- オフピーク: 時間外アクセスのために小規模なベースラインを維持します。残りのアイドル状態のホストは割り当て解除され、支出を最小限に抑えます。
容量のしきい値、最小ホスト可用性、自動スケーリングの動作
- 容量のしきい値 (%) は、オンラインのホストの総セッション容量に対して測定されます。平均使用率がしきい値を超えると、自動スケーリングは追加のVMを起動します。使用率は、ホストごとの最大セッション数と現在のセッション数によって決まります。ワークロードごとに調整してください。深さ優先の場合は 60~70%、幅優先の場合は 70~80% から始めるのがよいでしょう。
- 最小ホスト可用性は、各スケジュールフェーズで稼働させ続けるホストの数または割合として定義できます。突然のバーストを吸収するために、常に少なくとも1台の「予備」を維持してください。
- スケールインの安全性: 自動スケーリングは、ユーザーを切断しないようにドレインモードと「アクティブなセッションがないこと」のチェックを使用します。アイドル状態のホストのみが停止/割り当て解除されます。
電源管理とコストを意識した割り当て解除
- 停止(割り当て解除)するとコンピューティング料金は発生しなくなりますが、OSディスクとデータディスクには引き続きストレージ料金が発生します。自動スケーリングは、ランプダウンおよびオフピーク時にアイドル状態のホストを割り当て解除します。
- 接続時にVMを起動する機能は、ユーザーが接続を試みたときに割り当て解除されたVMを起動することで、オフピーク時の体制を補完できます。ホストプールのマネージドIDまたはサービスプリンシパルが、セッションホストのリソースグループに対するVMの起動権限を持っていることを確認してください。
- 割り当て解除を伴わないゲスト内からのシャットダウンは避けてください。VMが割り当てられたままになり、課金対象となります。
運用状態、メンテナンス、正常性: ドレインモード、通知、登録
ドレインモードとメンテナンスウィンドウ
- ドレインモード (AllowNewSession=false) は、既存のセッションの完了を許可しつつ、新しいログオンを防ぎます。パッチ適用、エージェントの更新、イメージの置換、またはスケールインのために使用します。
- メンテナンスのアプローチ: ホストをドレインモードに設定し、アイドル状態になるのを待ち、通知後に残っているセッションを正常にログオフさせ、その後、更新を適用して再起動します。正常性/ハートビートを検証し、新しいセッションを再度有効にします。
ユーザー通知戦略
- スケーリングプランの通知: ランプダウン中にログオフメッセージと猶予期間を設定します。明確で、期限を設けた言葉を使用してください。
- 補足的な通知: Azure Automation (Send-AzVMRunCommand、PowerShellによるトースト通知) または Endpoint Manager を使用して、メンテナンスに先立ってセッション内メッセージを表示します。
セッションホストのステータス、ハートビート、エージェントの正常性
- 一般的なステータス: Available, Unavailable (NoHeartbeat), NeedsAssistance, Unhealthy, Shutdown, NotJoinedToDomain, Upgrading。
- ハートビート/エージェントの前提条件: AVDサービスエンドポイントへのアウトバウンド443通信(AzureVirtualDesktopサービスタグを使用)、安定したDNS解決、時刻同期、そして該当する場合はドメイン参加の成功。
- エージェントサービス: Remote Desktop Agent Loader と Remote Desktop Agent が実行されている必要があります。アウトバウンドアクセスが許可されていれば、AVDエージェントとサイドバイサイドスタックは自動更新されます。
登録とトラブルシューティング
- 既存のVMをホストプールに参加させるには、登録トークン(期間限定で有効)を作成し、そのトークンを使用してAVDエージェントをインストール/登録します。
- 一般的な障害切り分け手順:
- ホストがホストプール内で Registered および Available と表示されていることを確認します。そうでない場合は、新しいトークンで再登録します。
- イベントビューアーを調査します: Microsoft-RDInfra-RDAgent、Microsoft-RDInfra-RDAgentBootLoader、および RDS/TerminalServices のログで、接続や認証のエラーを確認します。
- DNSを検証します: ドメイン解決とサービスエンドポイント解決が成功する必要があります。Azure AD DS を使用している場合は、VNet の DNS がマネージドドメインコントローラーを指していることを確認します。
- Windows ファイアウォールまたはネットワークセキュリティルールがアウトバウンド443を許可していること、およびTLS代行受信がサービスの信頼を損なっていないことを確認します。
役立つ自動化の例
# Put a session host in drain mode (no new sessions)
Update-AzWvdSessionHost -ResourceGroupName rg-avd -HostPoolName hp-finance `
-Name host1.contoso.com -AllowNewSession:$false
# Gracefully logoff idle users after notice (example)
Invoke-AzVMRunCommand -ResourceGroupName rg-avd -Name host1 `
-CommandId RunPowerShellScript -ScriptPath .\Notify-And-Logoff.ps1
サイジング、使用率、GPU対応ワークロード
VMサイズの選択とワークロード主導のサイジング
- ワークロードの特性評価から始めます:オフィス/生産性、Microsoft 365 AppsとTeams最適化を伴うナレッジワーカー、開発者/エンジニアリング、またはグラフィックス/3D。
- CPU:持続的なCPU使用率を70~75%未満に保ち、短いスパイクを85%未満に抑えます。Processor(_Total)% Processor TimeとSystem\Processor Queue Lengthを監視します。
- メモリ:ホストあたり500MBを超えるMemory\Available MBytesを維持し、コミット済みメモリを80%未満にすることを目指します。ページングに注意してください。FSLogixキャッシュはワーキングセットを増加させる可能性があるため、それに応じてサイズを調整します。
- ストレージ:ユーザーエクスペリエンスはFSLogixプロファイルのIOPSとレイテンシーに依存します。一時/キャッシュ集約型のシナリオにはPremium SSD v2やUltra Diskを、高IOPSプロファイルにはAzure Files PremiumやAzure NetApp Filesを使用します。非常に大規模な環境や最も低いレイテンシーが求められるプロファイルの場合、Azure NetApp Filesが最高の整合性を提供します。
- 初期ベースライン(マルチセッション):
- ライトな生産性:4~8 vCPU、16~32 GB RAM。応答性を重視する場合は幅優先(breadth-first)。
- 中程度のナレッジワーカー:8~16 vCPU、32~64 GB RAM。コスト効率を重視する場合は深さ優先(depth-first)。
- ヘビーな開発/コンパイル/データ:16~32 vCPU、64~128 GB RAM。専用プールの検討。
GPU対応セッションホスト
- CAD/GIS/3D/ビデオ編集や複雑な視覚化には、きめ細かいvGPUプロファイルと優れた価格性能比を持つNVads A10 v5を使用します。必要に応じてNV v4/v5ファミリーも検討します。
- NシリーズVMにNVIDIA GPU Driver Extension for Windowsをデプロイします。ハードウェアエンコーディングを検証します。AVC/H.264を有効にし、有益な場合はポリシー経由で「リモートデスクトップにハードウェアエンコーディングを使用する」を構成します。
- パフォーマンスカウンター(GPUエンジン使用率、GPUメモリ)とAzure MonitorメトリックでGPUを監視します。十分なCPUヘッドルームを確保します。グラフィックスを多用するアプリは、依然としてCPUの枯渇に敏感です。
テレメトリーと反復的なチューニング
- AVDインサイトとLog AnalyticsのためにAzure Monitorを有効にします。
- CPU、メモリ、FSLogixプロファイルのレイテンシー、ログオン時間、切断、ブローカリング時間を追跡します。
- 観測された競合に基づいてホストプールのMaxSessionLimitと負荷分散モードを調整し、それに合わせて自動スケールのしきい値を再調整します。
コスト最適化: 電源管理、自動スケール、予約、Savings Plan、およびAHB
ビジネス時間とスケーリングを連携させる
- 深さ優先と保守的な容量しきい値を組み合わせてセッションを集約し、スケールインを加速させる。オフピーク時の割り当て解除や、遅い時間/まれなアクセスのための「接続時にVMを開始」と組み合わせる。
- コールドスタートストームを避けるため、最小ホスト数をゼロではない小さな値に設定する。
予約とSavings Plan
- 予約: 1年または3年のVM予約は、特定のリージョンで特定のSKUをロックし、最大の割引を提供します。ほとんどの時間稼働するベースライン容量(例: 日中のピーク時フリート)に最適です。
- Compute Savings Plan: VMファミリーやリージョンをまたいで柔軟な割引を提供します。異なるサイズを混在させる場合や、正確なSKUの予測が難しい動的な環境で役立ちます。
- ストレージ予約: Azure Filesの予約容量は、大規模な環境でのFSLogixストレージコストを削減できます。
Azure Hybrid Benefit (AHB) とライセンス
- Windows Serverおよび対象となるWindowsクライアントワークロードにAHBを適用し、コンピューティングOSのライセンス料金を削減します。ライセンスの適格性とコンプライアンスを確認してください。
- Microsoft 365のデプロイメントでは、ライセンスがWindows Enterpriseマルチセッションおよび該当する場合はMicrosoft 365 Appsをカバーしていることを確認してください。
運用スクリプトとRunbook
- Azure AutomationまたはGitHub Actionsを以下の目的で使用します:
- メンテナンス前後のフリートのドレイン/有効化シーケンス。
- 月曜日や祝日の後の、スケール前のウォームアップスクリプト。
- 健全性の修復(エージェントサービス再起動、ハートビート喪失時のホスト再登録)。
- タグ駆動のオーケストレーションにより、選択的な操作が簡単になります(例: Environment=Pilotタグを付けてスケールインから除外する)。
- Azure AutomationまたはGitHub Actionsを以下の目的で使用します:
# Start or stop idle hosts by tag (supplemental to native autoscale)
$hosts = Get-AzWvdSessionHost -ResourceGroupName rg-avd -HostPoolName hp-ops
foreach ($h in $hosts) {
if ($h.Session -eq 0 -and $h.Tags["KeepOnline"] -ne "true") {
Stop-AzVM -ResourceGroupName rg-avd -Name ($h.Name.Split("/")[1]) -Force -StayProvisioned:$false
}
}
実践的な問題シナリオ
IKEAでは、3Dプランナー、製品エンジニア、コールセンタースタッフがリモートアプリを使用するため、平日の日中に利用が急増します。夕方や週末は需要が低くなります。GPU支援セッションの応答性を維持しつつ、全体的なコンピューティングコストを最小限に抑える必要があります。
ワークロードごとにホストプールを分割する
- 3つのプール型ホストプールを作成する: GPU-CAD (NVads A10 v5)、KnowledgeWorker (D/E-series)、ContactCenter (D-series)。
- 理由: VMサイズと密度を、異なるパフォーマンスプロファイルに適合させます。これにより、独立した自動スケールとメンテナンスウィンドウが可能になります。
ビジネス時間ごとのスケジュールを持つ単一のスケーリングプランをアタッチする
- ランプアップを07:00、ピークを09:00–17:00、ランプダウンを17:00–19:00、それ以外をオフピークと定義し、各プールのリージョンにタイムゾーンを設定する。
- 理由: ユーザーが到着する前に容量を準備し、業務時間後にセッションを集約して正常に電源を切り、リージョンごとの時間を尊重することを保証します。
プールごとに容量のしきい値と最小ホスト可用性を調整する
- GPU-CAD: 幅優先、容量しきい値70%、最小ホスト30%オンライン。KnowledgeWorker: 深さ優先、しきい値65%、最小10%。ContactCenter: 深さ優先、しきい値70%、最小15%。
- 理由: GPUワークロードは応答性のために広範な分散を好みます。オフィスワークロードは集約によってコストを削減できます。コールセンターはシフト交代のために安定した予備容量が必要です。
KnowledgeWorkerとContactCenterで「接続時にVMを開始」を有効にする
- ホストプールのマネージドIDにVMの開始権限を付与し、オフピーク時の最小値を低く保つ。
- 理由: 予期せぬ時間外のログオンに対してジャストインタイムのアクセスを維持しつつ、アイドル時のランタイム料金を削減します。
メンテナンスと通知のワークフローを実装する
- パッチチューズデーの前に: 各プールの20%をタグでドレインモードにし、30分前にユーザーに通知する。アイドルになった後、パッチ適用、再起動、エージェント/ハートビートの検証を行い、次のバッチに移行する。
- 理由: ローリングでのドレインにより、一斉ログオフを回避し、サービスの継続性を維持し、ヘルプデスクへの問い合わせ急増を減らします。
Azure Monitor for AVDで監視と改善を繰り返す
- CPU、メモリ、GPU使用率、ログオン時間、FSLogixの遅延を追跡し、MaxSessionLimitと自動スケールのしきい値を毎月調整する。
- 理由: データに基づいたチューニングにより、使用パターンの変化に応じてSLAを維持し、支出を管理します。
コスト削減策を適用する
- KnowledgeWorkerとContactCenterのベースラインとなる平日ピーク用に3年間の予約容量を確保する。変動するGPU需要にはCompute Savings Planを使用する。対象となる場合はAzure Hybrid Benefitを適用する。
- 理由: 予約は予測可能なベースロードに対して最大の割引を確保します。Savings Planは予測しにくいGPUのピークに柔軟に対応します。AHBはOSのライセンスコストを削減します。
登録と健全性を強化する
- NoHeartbeatを示すホストを再登録し、DNS/時刻を検証するための常設のRunbookを維持する。診断用ホストには除外タグを付けておく。
- 理由: 迅速で自動化された修復により、予期せぬエージェントの問題が発生した際のユーザーへの影響を限定し、容量を維持します。
この設計により、IKEAは日中のパフォーマンス目標(GPUの応答性を含む)を達成しつつ、時間外の容量を積極的に割り当て解除し、メンテナンスを自動化することで、安定したユーザーエクスペリエンスと測定可能なコスト削減を実現します。
← FSLogix、プロファイル、ユーザーデータ · すべてのドメイン · アプリケーションとエンドユーザーエクスペリエンス →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →