daas-futoshi.dev
← 記事一覧へ戻る
AVDMicrosoft Learn

Azure Virtual Desktop の用語 – Microsoft Learn 読解

とっつきにくい Microsoft Learn のページを、じっくり読み解いていきます。 今回のページは 「Azure Virtual Desktop の用語」 です。 AVD を使いこなすための基本概念(ホストプール・アプリケーション グループ・ワークスペース・ユーザー セッション)をまとめて整理できるページです。

このページで登場するホストプール、アプリケーショングループ、ワークスペースはざっくり以下のような関係になっています。 AVD リソース階層図


ホストプール

ホストプールは、セッション ホストとして Azure Virtual Desktop に登録されている Azure 仮想マシンのコレクションです。

まず、AVD の接続先として利用する仮想マシン (VM) をセッション ホストと呼びます。 ホストプールは「セッション ホストをまとめて束ねたグループ」のことです。

一貫性のあるユーザー エクスペリエンスを実現するために、ホストプール内のすべてのセッション ホスト仮想マシンを同じイメージからソース化する必要があります。

ホストプールのどのセッションホストに接続されても、同じ環境である状態にするために、ホストプール内のすべてのセッション ホストは同じOS イメージから作成することが推奨されています。

アプリケーション グループを使用してユーザーに発行されるリソースを制御します。

後述するアプリケーション グループというリソースを使用してどのユーザーにどのようなリソース (デスクトップ / アプリケーション) を提供するかを制御します。

ホストプールには、次の 2 種類のいずれかを指定できます。

ホストプールには 2 種類 あります。

  1. 個人型ホストプール
  2. プール型ホストプール

個人型 vs プール型 比較図

個人型ホストプール (Personal Hostpool)

各セッション ホストが個々のユーザーに割り当てられます。個人型ホストプールは、パフォーマンスとデータの分離のために環境を最適化するエンド ユーザーに専用デスクトップを提供します。

  • ユーザー 1 人にセッション ホスト 1 台が割り当てられます
  • 開発者やパワーユーザーなど「自分だけの環境が欲しい」場合に向いています
  • 英語では Personal Hostpool と呼びます。日本語では 個人型ホストプール個人用ホストプール などと訳されます。

プール型ホストプール

ユーザー セッションをホストプール内の任意のセッション ホストに負荷分散できます。1 つのセッション ホストに複数の異なるユーザーが同時に存在する可能性があります。 プールされたホスト プールは、エンド ユーザーに共有リモート エクスペリエンスを提供し、コストの削減と効率の向上を実現します。

  • 複数ユーザーでセッションホストをシェアして使用します
  • 同一のユーザーでも接続ごとに接続先のセッションホストが変わります
  • 1 つのセッションホストに複数のユーザーが同時に接続することもあります
  • 英語では Pooled Hostpool と呼びます。日本語では プール型ホストプールプール済みホストプールプールされたホストプールなどと訳されます。

プール型ホストプールはコスト効率が高いのが最大のメリットです。ただし「接続のたびに異なる VM につながる可能性がある」という特性があるため、ユーザープロファイルの管理方法が個人型とは大きく異なります。


次の表では、ホスト プールの種類ごとの違いについて詳しく説明します。

各行を引用しながら確認していきましょう。

負荷分散(個人型): ユーザー セッションは、ユーザーが割り当てられているセッション ホストに常に負荷分散されます。ユーザーが現在セッション ホストに割り当てられていない場合、ユーザー セッションはホスト プール内の次に使用可能なセッション ホストに負荷分散されます。

負荷分散(プール型): ユーザー セッションは、ユーザー セッション数に基づいて、ホスト プール内のセッション ホストに負荷分散されます。使用する負荷分散アルゴリズムを選択できます。

個人型は「常に同じ VM へ」、プール型は「空いている VM へ分散」します。プール型の負荷分散アルゴリズムには幅優先深さ優先があります。

  • 幅優先: ホストプール内のより多くのセッションホストを活用するように分散します。1 つのセッションホストに偏らないため、パフォーマンス面にメリットがあります。
  • 深さ優先: ホストプール内の 1 つのセッションホストを可能な限り活用した後、別のセッションホストを活用します。起動するセッションホスト数を抑えられるため、コスト面にメリットがあります。

セッションの最大制限(個人型): 1 つ。

セッションの最大制限(プール型): ホスト プールのプロパティの最大セッション制限値によって構成されます。同時接続の負荷が高い場合、複数のユーザーが同時にホスト プールに接続すると、セッション ホストに作成されたセッションの数が最大セッション制限を超える可能性があります。

1 台のセッションホストに対して確立できるセッション数を説明しています。個人型は 1 ユーザー = 1 セッション固定。プール型は「VM 1 台に最大何人まで」をホストプール作成時に設定します。(後から変更することも可能) ただし、朝 9 時など、多くのユーザーが同時に接続するタイミングでは最大セッション制限を超えて接続できてしまうことがあります。

ユーザー割り当てプロセス(個人型): ユーザーは、セッション ホストに直接割り当てるか、最初に使用可能なセッション ホストに自動的に割り当てることができます。ユーザーには、割り当てられているセッション ホストに常にセッションがあります。

ユーザー割り当てプロセス(プール型): ユーザーはセッション ホストに割り当てられません。ユーザーがサインアウトしてサインインし直した後、ユーザー セッションが別のセッション ホストに負荷分散される可能性があります。

個人型ではユーザーに対して 特定のセッションホストを固定的に割り当てます。割り当て方法としては直接指定する方法と初回接続時に自動で割り当てる方法があります。 プール型ではユーザーとセッションホストの紐づけはなく、毎回負荷分散で接続先が決まります。

スケーリング(個人型): 個人用ホスト プールの自動スケーリングでは、スケジュールに従って、または Connect で VM の起動を使用してセッション ホスト仮想マシンを開始し、ユーザー セッションの状態(ログオフ/切断)に基づいてセッション ホスト仮想マシンの割り当てを解除/休止します。

スケーリング(プール型): プールされたホスト プールの自動スケーリングでは、容量のしきい値に基づいて VM のオンとオフが切り替わり、お客様が定義するスケジュールが設定されます。

セッションホストの電源管理を自動で行うスケーリング プラン についての説明です。スケーリングプランも個人型とプール型で動作や設定値が異なります。 個人型はスケジュールやStart VM on Connect (接続時に VM を起動する)で起動し、ユーザーのログオフや切断状態をトリガーに VM を割り当て解除 (deallocate)/休止します。 プール型は全体の負荷に応じて起動する VM 台数を増減させます。 スケーリング プランについてはまたの機会に記事にします。

Windows Updates(個人型): Windows Updates、Microsoft Configuration Manager、またはその他のソフトウェア配布構成ツールで更新されました。

Windows Updates(プール型): 従来の更新プログラムではなく、更新されたイメージからセッション ホストを再デプロイすることで更新されます。

個人型は通常の Windows Update や Microsoft Configuration Manager などで管理。プール型は「新しいイメージで VM を作り直す」アプローチが一般的です。更新済みイメージから VM を一括置き換えることで、全員に同時適用できます。

ユーザー データ(個人型): 各ユーザーが使用するセッション ホストは 1 つだけであるため、VM のオペレーティング システム (OS) ディスクにユーザー プロファイル データを格納できます。

ユーザー データ(プール型): ユーザーは、接続するたびに異なるセッション ホストに接続できるため、ユーザー プロファイル データを FSLogix に格納する必要があります。

運用上の大きな差がこのデータの取り扱い方です。個人型は VM の OS ディスクにデータをそのまま保存できます。 一方、プール型は毎回異なる VM に接続される可能性があるため、OS ディスクにデータを保存すると、次回接続時にそのデータにはアクセスできません。そのため、FSLogix というプロファイル データを持ち運ぶ機能を使用します(またの機会に記事にします)。


ホストプールの管理方法

ホストプールの管理方法は 2 種類あります。

  1. セッション ホストの構成
  2. Standard (標準)

セッション ホスト構成 (プレビュー)、Azure Virtual Desktop は、ネイティブ機能の組み合わせを使用してホスト プール内のセッション ホストのライフサイクルを管理します。

セッションホスト VM の作成・更新・スケーリングを AVD 側が自動管理します。まだプレビュー段階なので本番利用は要注意です。

詳しくは Azure Virtual Desktop のホスト プール管理アプローチ を参照してください(またの機会に記事にします)。

Standard。ホスト プール内のセッション ホストの作成、更新、スケーリングを管理します。

標準的な管理方法です。セッションホスト VM の作成・更新・スケーリングを 自分で管理します。まずはこちらから始めるのがおすすめです。


検証環境

ホストプールを検証環境に設定できます。検証環境では、サービスが運用環境または検証以外の環境に適用される前に、サービスの更新プログラムを監視できます。検証環境がないと、エラーが発生する変更が検出されず、運用環境のユーザーのダウンタイムが発生する可能性があります。

これはいわゆるステージング環境です。AVD のサービス更新は定期的に行われますが、いきなり本番環境に当たると怖いですよね。検証環境に設定したホストプールには先行して更新が適用されるため、問題を早期発見できます。 検証環境としてホストプールを使用するには Azure Portal から設定します。デプロイ後のホストプールを検証環境に変更することもできます。

アプリが最新の更新プログラムで動作するようにするには、検証環境は、検証以外の環境のホスト プールと可能な限り類似している必要があります。 ユーザーは、運用環境と同じ頻度で検証環境に接続する必要があります。 ホスト プールでのテストを自動化する場合は、検証環境で自動テストを含める必要があります。

注意点として、

  • 検証環境は本番環境と構成をできるだけ揃える必要がある
  • ユーザーが本番と同じ頻度で接続することが望ましい
  • 自動テストも検証環境で実施するとより効果的

なお、検証環境のホストプールはテストのみ使用し、運用環境では使用しないようにしてください! 検証環境の運用などに関しては、検証環境としてホスト プールを構成する も確認してみてください。


アプリケーション グループ

アプリケーション グループは、1 つのホストプール内のセッション ホストで使用できるアプリケーションのフル デスクトップまたは論理グループへのアクセスを制御します。ユーザーは、複数のホストプール間で複数のアプリケーション グループに割り当てることができます。これにより、ユーザーがアクセスできるアプリケーションとデスクトップを変更できます。

アプリケーション グループは「ユーザーへの公開単位」です。同じホストプールのイメージを使っていても、グループを分けることで 異なるユーザーに異なるリソースを公開 できます。

アプリケーショングループの種類は 2 つあります。

  1. デスクトップ
  2. RemoteApp

デスクトップ

デスクトップ: ユーザーはセッション ホストから完全な Windows デスクトップにアクセスします。プールされたホスト プールまたは個人用ホスト プールで使用できます。

  • 通常の PC で使用するのとを同じようにデスクトップをそのまま使用できる
  • 個人型・プール型の両方で使用可能

RemoteApp

RemoteApp: ユーザーは、選択した個々のアプリケーションにアクセスし、アプリケーション グループに発行します。プールされたホスト プールでのみ使用できます。

  • デスクトップ全体ではなく、選択した個別アプリだけにアクセスできる
  • プール型ホストプールでのみ使用可能

プールされたホスト プールでは、両方のアプリケーション グループの種類を同じホスト プールに同時に割り当てることができます。ホスト プールごとに割り当てることができるデスクトップ アプリケーション グループは 1 つだけですが、同じホスト プールに複数の RemoteApp アプリケーション グループを割り当てることもできます。

プール型ホストプールにはデスクトップ アプリケーショングループと RemoteApp アプリケーショングループの両方を同時に割り当てることができます。なお、1 つのホストプールにデスクトップ アプリケーショングループ 1 つだけ、RemoteApp アプリケーショングループは複数割り当てることができます。

ホスト プールには、推奨されるアプリケーション グループの種類の設定があります。エンド ユーザーにデスクトップと RemoteApp アプリケーション グループの両方が同じホスト プール上に割り当てられている場合、優先するアプリケーション グループの種類のリソースのみが表示されます。

前述のとおり、両方のアプリケーショングループを同時に割り当てることができますが、クライアントに表示されるのはどちらか片方だけです。
表示されるアプリケーショングループは優先するアプリケーション グループの種類という項目で設定します。 詳しくは 優先アプリケーション グループの種類の動作 を参照してください。

同じホスト プールに割り当てられた複数の RemoteApp アプリケーション グループに割り当てられたユーザーは、割り当てられているアプリケーション グループ内のすべてのアプリケーションの集計にアクセスできます。

複数の RemoteApp グループに割り当てられている場合は、それらすべてのアプリがクライアントに表示されます。ユーザーからすると「1 つの画面に全アプリが並ぶ」ようなイメージです。


ワークスペース

ワークスペースは、アプリケーション グループの論理グループです。各アプリケーション グループは、ユーザーがデスクトップとアプリケーションに公開されているのを表示するために、ワークスペースに関連付けられている必要があります。アプリケーション グループは、1 つのワークスペースにのみ割り当てることができます。

ワークスペースは「アプリケーション グループをまとめる入れ物」です。

  • エンドユーザーが AVD クライアントを開いたとき、ワークスペース単位でリソースが表示される
  • アプリケーション グループは必ず 1 つのワークスペースに紐付ける必要がある(複数のワークスペースへの重複割り当ては不可)

エンド ユーザー

ユーザーをアプリケーション グループに割り当てた後、任意の Azure Virtual Desktop クライアントを使用して Azure Virtual Desktop デプロイに接続できます。

ユーザーは アプリケーション グループへの割り当て によって AVD に接続できるようになります。


ユーザー セッション

このセクションでは、エンド ユーザーが使用できる 3 種類のユーザー セッションについて説明します。

ユーザーセッションには 3 種類あります。状態を正しく把握しておくと、コスト管理やトラブルシューティングに役立ちます。

ユーザーセッション状態遷移図

アクティブ ユーザー セッション

ユーザー セッションは、ユーザーがサインインしてデスクトップまたは RemoteApp リソースに接続するとアクティブと見なされます。

ユーザーがサインイン後、AVD に接続している状態です。ごく普通の「使用中」の状態です。

切断されたユーザー セッション

切断されたユーザー セッションは、ユーザーがまだサインアウトしていない非アクティブなセッションです。ユーザーがサインアウトせずにリモート セッション ウィンドウを閉じると、セッションは切断されます。

「ウィンドウを×で閉じただけ」の状態です。サインアウトしていないため、セッション(とそのリソース)はサーバー側に残っています。

ユーザーがリモート リソースに再接続すると、作業していたセッション ホスト上の切断されたセッションにリダイレクトされます。この時点で、切断されたセッションは再びアクティブなセッションになります。

再接続すると、同じセッション(作業の続き)に戻れます。
一方で「切断しっぱなし」はリソースを消費し続けるため、タイムアウトの時間を設定するなどして、ケアするのが一般的です。

保留中のユーザー セッション

保留中のユーザー セッションは、ユーザーの負荷分散された仮想マシン上のスポットを予約するプレースホルダー セッションです。サインイン プロセスはユーザー プロファイルに応じて 30 秒から 5 分かかる場合があるため、このプレースホルダー セッションでは、別のユーザーが最初にサインイン プロセスを完了した場合にユーザーがセッションから除外されないようにします。

サインインを開始したが、まだデスクトップが表示されていない状態 (サインイン処理中) です。サインイン処理中に「この VM の席はもう埋まってます」と判定されて別の VM に飛ばされないよう、プレースホルダーとして席を確保しておく仕組みです。 サインインが完了すると、アクティブなセッションとなります。


まとめ

  • ホストプール は VM のグループ。「個人型」と「プール型」の 2 種類があり、用途に応じて使い分ける
  • アプリケーション グループ はユーザーへの公開単位。デスクトップ全体か、特定アプリだけかを選択できる
  • ワークスペース はアプリケーション グループをまとめる論理コンテナ。ユーザーのクライアントに表示される単位
  • セッション はアクティブ・切断・保留中の 3 種類。切断セッションの放置はコストに影響するので注意
  • 検証環境 は AVD サービス更新を本番前に確認するための仕組みで、安定運用に欠かせない

('ω')ノ