最低限のリソースでAzureVirtualDesktop(AVD)を構築してみました。
構成図
以下のように最低限のリソースで作成します。

RDgatewayは作成するリソースではありませんが、クライアントからセッションホストに直接アクセスするわけではないので、クライアントからは見えないAzureのリソースとして記載しています。
AVDの構築
今回はサブスクリプションに対して「共同作成者」の権限を持ち、EntraIDに対して「グローバル管理者」を持っているEntraIDユーザーで構築していきます。
必要な権限詳細はMicrosoftの公式HPで確認いただければと思います。

以下の順番でリソースを作成していきます。
- 1.クライアント用EntraIDユーザーの作成
- 2.リソースグループの作成
- 3.仮想ネットワークの作成
- 4.NATゲートウェイの作成
- 5.ホストプールの作成(ホスト プール、ワークスペース、アプリケーション グループ、セッション ホスト(VM)の作成)
- 6.アプリケーショングループにグループを割り当て
- 7.リモートデスクトップクライアントからの接続を有効化
- 8.リモートデスクトップクライアントを端末にインストール
1.クライアント用EntraIDグループとユーザーの作成
クライアント用のEntraIDユーザーにはサブスクリプションに対して「仮想マシン ユーザー ログイン」の権限が必要となります。
今回はグループに「仮想マシン ユーザー ログイン」の権限を付与し、新規作成ユーザーをこのグループに追加することで権限を付与させます。
グループの作成とIAM権限付与
Azureポータルから[Microsoft Entra ID]>[グループ]>[新しいグループ]をクリックしてグループを作成します。

グループ名だけ入力して作成します。
IAM権限は[サブスクリプション]>[<サブスクリプション名>]>[アクセス制御(IAM)]をクリックし、上部にある[+追加]>[ロールの割り当ての追加]から付与します。

ユーザーの作成
[Microsoft Entra ID]>[ユーザー]から[+新しいユーザー]>[新しいユーザーの作成]をクリックしてユーザーを作成します。
キャプチャは割愛しますが、グループは上記で作成したグループを指定してください。
2.リソースグループの作成
[リソースグループ]>[+作成]をクリックしてリソースグループを作成します。

3.仮想ネットワークの作成
[仮想ネットワーク]>[+作成]をクリックして仮想ネットワークを作成します。

サブネットを1つ作成するのみで、その他の設定は不要です。
4.NATゲートウェイの作成
[NAT ゲートウェイ]>[+作成]をクリックして仮想ネットワークを作成します。

パラメータはデフォルトの値でよいですが、上記で作成したサブネットに紐づけをしてください。
NATゲートウェイは作成しておかないと、ホストプール作成時に仮想マシンをデプロイしたときに、パブリックIPがないため仮想マシンがインターネットにアクセスできないことが原因でデプロイに失敗します。
その時のエラー内容や対処方法については以下の記事でも紹介しています。
5.ホストプールの作成(ホスト プール、ワークスペース、アプリケーション グループ、セッション ホスト(VM)の作成)
ここからAVDの核となるリソースを作成していきます
ホストプールの作成
「ホストプール」と検索して、ホストプール画面を開き[+作成]をクリックして作成します。

今回は最小限の構成で更新プログラムを事前に検知する必要もないですし、マルチセッション環境は作成しないので、以下のパラメータで作成していきます。
- 検証環境:いいえ
- 優先するアプリケグループの種類:デスクトップ
- ホストプールの種類:個人用
- 割り当ての種類:自動
仮想マシンの作成
ホストプールの作成の中でセッションホスト用の仮想マシンを作成します。


イメージは「Windows 11 Enterprise, version 21H2」を選択し、VM数は「1」、参加するドメインは「Microsoft Entra ID」を選択します。
その他のパラメータは任意で設定します。
ちなみに仮想マシンのサイズを [Standard_B2ms] としたときにはエラーとなりデプロイに失敗しました。
以下の記事でそのエラーについてまとめていますが、ある程度のCPUやメモリのスペックは必要みたいです。
ワークスペースの作成
ホストプールの作成の中で、ワークスペースも作成します。

名前を指定するだけです。
ここまで進んだら作成します。
「詳細」タブでは診断設定の有効化などを設定できますが、今回はログの設定も入れないのでスルーして作成します。
ホストプールの状態確認
ホストプール等のデプロイが完了したら、作成したホストプールのリソースに移動して[セッションホスト]からセッションホストの状態が[利用可能]であることを確認します。
![セッションホストの状態が[利用可能]であることを確認](https://bonjiri-blog.com/wp-content/uploads/build-avd-with-simple-configuration-010-800x408.png)
リソース作成はこれで完了です。
以降は接続するために必要な追加の設定をしていきます。
6.アプリケーショングループにグループを割り当て
作成したホストプールから [アプリケーショングループ] を開き、一覧にあるリソースをクリックします。
※この時「割り当て」の欄が0であることを確認できるかと思います。

アプリケーショングループのページが開くので [割り当て] を選択して [+追加] から上記で作成したグループを追加します。

7.リモートデスクトップクライアントからの接続を有効化
再度ホストプールに戻り [RDPプロパティ] >[詳細] を開き、以下の文字列を文頭に追加し [保存] をクリックします。
targetisaadjoined:i:1;

8.リモートデスクトップクライアントを端末にインストール
以下のMicorosft公式ページからダウンロードして手元の端末にインストールします。

これで接続準備がすべて完了しました。
接続してみる
接続してみます。
リモートデスクトップクライアントを開き、右上の […] をクリックし [URLで登録] をクリックします。

メールまたはワークスペースURLに以下のURLを打ち、「ワークスペースが見つかりました」と出てきたら [次へ] をクリックします。
https://rdweb.wvd.microsoft.com

認証画面が出てくるのでEntraIDのユーザーを入力します。

リモートデスクトップクライアント上に「SesshonDesktop」というデスクトップアプリケーションが出てくるのでクリックします。

再度認証画面が出てきますが、今回は仮想マシンにアクセスする際の認証情報を入力する必要があります。
今回は上記と同じくEntraIDのユーザー情報を入力します。
これは、セッションホストの仮想マシン作成時に参加するディレクトリを [MicrosoftEntraID] としたためです。

Windows11の画面が出てきて、無事にAVD環境構築することができました!

[参考] 利用料金について
この構成で1日いくらくらいかかるのかについては、後日updateしたいと思います。
[参考] AzureCLIで同じ構成を作成する
上記で作成した構成をAzureCLIで構築します。
こちらも後日updateしたいと思います。