今回は、Azure上で仮想デスクトップサービスを提供可能にするWindows VirtualDesktop(WVD)の構築方法を解説します。少数の仮想デスクトップであれば、その都度仮想マシンを作成してユーザーに割り当てれば利用可能ですが、数十人以上の利用者を想定した場合では仮想マシンの作成や提供方法、サービスの管理方法など統一したシステムが必要となります。WVDはこれらを解決するための仮想デスクトップサービスとなります。オンプレミススでは実際の物理サーバーとクラウド上のサーバーを運用しつつ、クライアントマシンは全てAzure上の仮想デスクトップで提供といったハイブリッド化へのヒントとなります。今回紹介するのは、WVDを実際に動かしてみたいといった、最低限の評価ができるいたってシンプルな構成を最短で作成する方法となります。以下、Microsoft公式のWindows Virtual Desktop のドキュメントhttps://docs.microsoft.com/ja-jp/azure/virtual-desktop を参考に解説しています。
Windows Virtual Desktopの構成
WVDを構築するにはいくつかのモデルがありますが、今回はすべてをAzure上で完結するシンプルな方法で構築してゆきます。ドメインコントローラーの代わりに、Azure Active Directory Domain Service(AADDS)を利用しています。オンプレミスとのドメインと同期を取る場合は、前回までに紹介しました、「Azure AD Connect」(第4回参照 リンク挿入)を利用したアカウントの同期や、Azure VPNゲートウェイを利用した接続構成(第5回参照 リンク挿入)によるドメイン環境のハイブリッド化が必要となります。
WVDの構築は、以下の手順で行います。
1 AAADDSと管理者アカウントの設定2 仮想ネットワークの設定3 ユーザー作成4 Widows Virtual Desktop テナントの作成5 サービスプリンシパルとロールの割り当て6 ホストプールの作成7 リモートデスクトップで接続確認
それではさっそく進めてゆきましょう!
1.AADDSと管理者アカウントの設定
WVDの仮想デスクトップはドメインアカウントで接続することになります。すでに運用中のActive Directoryのドメインアカウントも利用可能ですが、今回はAzure上で全て完結することになるので、Azure Active Directory Domain Service(AADDS)を利用しています。
AADDSの構築については「Azure Active Directory Domain Services の基本操作( https://www.gmo.jp/report/single/?art_id=243 )」ですでに紹介済みですので、WVD構築に関する部分にフォーカスして紹介します。
Azureにサインインした直後の既定のAzure Active Directoryを使ってAADDSを構築してゆきます。
WVD構築時に地域は統一しておく必要があります。今回は”東日本”を選択します。
既定の設定で仮想ネットークを作成します。
既定のままで次へ。
こちらも既定のままで次へ。
作成を実行します。
しばらく時間がかかりますが、“実行中”となればAADDSの構築完了です。
AADDSが完成したら、Azure Active Directoryのアカウントとパスワードのハッシュ同期を行うために、既存の管理者アカウントのパスワードリセットを行います。この管理者アカウントはAADのグローバル管理者のロール(役割)が割り当てられている必要があります。
一度管理者アカウントをサインアウトして、サインインし直します。ここでパスワードの更新となるので、新しいパスワードを設定することで、ハッシュの生成が有効となります。
2.仮想ネットワークの設定
WVDで仮想デスクトップを提供する仮想マシンが接続するための仮想ネットワークを設定します。AADDSの構築ですでに仮想ネットワークは作成されていて、仮想ネットワークのアドレス空間は”10.0.0.0/16”と広めに変更してあります。ここにホストプール(仮想マシン用の確保領域)専用のサブネットを追加します。
ホストプール用に10.0.2.0/24のサブネットを作成します。
“hostpool-subnet”このサブネットを後程利用します。
3.ユーザー作成
WVDでホストプールを作成する時に使用する専用アカウントを作成します。(管理者アカウントではエラーとなるため)AADで「新しいユーザー」を選択します。
“[email protected]”というアカウント名で作成します。
こちらのアカウントも同様にパスワードのリセットを実行してハッシュ同期を有効にしておきます。
管理者アカウントと同様に一度サインアウトして、サインインし直します。
もう一つ、リモートデスクトップ接続用のアカウントも作成しておきます。このアカウントでユーザーはリモートデスクトップが利用可能となります。
同様にパスワード更新を行います。
4.Widows Virtual Desktop テナントの作成
WVDテナント(Widows Virtual Desktopのサービス)を作成してゆきます。いくつか前準備が必要となるのでそれぞれ手順を追って解説します。
4-1.アクセス権の割り当て
WVDはAADに対して様々な操作を行うため、アクセス許可をWVD自体に与える必要があります。ブラウザで「Windows Virtual Desktop サーバーアプリに対する管理者の同意フロー」 https://login.microsoftonline.com/common/adminconsent?client_id=5a0aa725-4958-4b0c-80a9-34562e23f3b7&redirect_uri=https%3A%2F%2Frdweb.wvd.microsoft.com%2FRDWeb%2FConsentCallback を開き管理者アカウントでサインインし、「承認」を選択します。
こちらで完了です。
次に、こちらもブラウザで「Windows Virtual Desktopクライアントアプリに対する管理者の同意フローhttps://login.microsoftonline.com/common/adminconsent?client_id=fa4345a4-a730-4230-84a8-7d9651b86739&redirect_uri=https%3A%2F%2Frdweb.wvd.microsoft.com%2FRDWeb%2FConsentCallback
を開き管理者アカウントでサインインし、「承認」を選択します。
こちらで完了です。
4-2.TenantCreator のロール割り当て
WVDのホストプールを作成する際に必要となるロールを専用アカウントに割り当てます。Azureポータルに戻り、すべてのサービスから「エンタープライズアプリケーション」を検索し、選択します。
「Windows Virtual Desktop」を選択します。
「1.ユーザーとグループの割り当て」を選択します。
「ユーザーの追加」を選択して、先ほど作成したホストプールを作成する時に使用する専用アカウント[email protected]にTenantCreatorのロールを割り当てます。
4-3.テナントID (ディレクトリ ID)の取得
テナントIDはディレクトリIDとも呼ばれています。要するにAzure Active Directoryを識別するために割り当てられたID番号となります。Azureポータルから、AADを選択して「概要」を表示します。後程使いますので「テナントID」の値を取得しておきます。
4-4.サブスクリプションIDの取得
Azureポータルから、「サブスクリプション」を選択します。サブスクリプションIDが確認できます。こちらも後程使いますので取得しておきます。
4-5.テナントを作成する
WVDのテナント作成はPowerShellで行う必要があります。PowerShellの実行はお使いのPCから可能です。まずは、PowerShell用のWindows Virtual Desktopモジュールをインストールします。
RDSアカウントを追加します。サインイン画面が表示されるので、AADの管理者アカウントadmin@[email protected]でサインインします。
テナントを作成します。:AADの名前と同じにしています。今回はwin1works.onmicrosoft.comの “win1works” の部分がテナント名になります。:先ほど取得したテナントID (ディレクトリ ID)です。:先ほど取得したサブスクリプションIDです。実行すると、再びサインイン画面が表示されるので、AADの管理者アカウントadmin@[email protected]でサインインします。
例)New-RdsTenant -Name win1works -AadTenantId 00000000-1111-2222-3333-444444444444 -AzureSubscriptionId 55555555-6666-7777-8888-999999999999
5.サービスプリンシパルとロールの割り当て
WVDでは管理者に代わって特定の用途に使用するためのリソースとして、管理タスクを実行する場合などはサービスプリンシパルが代行します。サービスプリンシパルを作成してゆきます。まずは、PowerShell用のAzureADモジュールをインストールします。
サービスプリンシパルを作成します。
サービスプリンシパルがWVDにサインインできるようにロールの割り当てを行います。
6.ホストプールの作成
ホストプールは仮想デスクトップの提供元となる仮想マシン用の確保領域になります。
Azureポータルから「リソースの作成」-「新規」で“Windows Virtual Desktop”を検索して「Windows Virtual Desktop - Provision a host pool」を選択します。
「Windows Virtual Desktop - Provision a host pool」から「作成」を選択します。
リソースグループ:必ず「新規作成」を選択します。リージョン:AADのネットワークの「地域」と同じ場所を選択します。例)東日本
Default desktop users:あらかじめリモートデスクトップ接続が可能となるユーザーアカウントを入力します。各アカウントは「,(カンマ)」区切りで複数入力可能です。ホストプール作成後PowerShellで追加可能です。例)[email protected],[email protected]
仮想デスクトップを提供する仮想マシンのサイズ(スペック)と台数を設定します。Virtual machine name prefix は仮想マシンに名前付けルーツで、名前の先頭に共通の文字が入ります。
仮想マシンの設定で、利用するOSの種類やディスクのタイプなど選択します。ここでのポイントは以下となります。AD domain jyoin UPN:AADの管理者アカウントではなく、先ほど作成した専用のアカウント([email protected])を指定します。
▼Virtual network: AADDS構築時に作成した仮想ネットワークを 選択します。(aadds-vnet)
▼vmSubnet: ホストプール用に作成したサブネットを選択します。(hostpool-subnet(10.0.2.0/24))
▼Windows Virtual Desktop tenant group: 既定の「Default Tenant Group」です。
▼Windows Virtual Desktop tenant name: 先ほどテナント作成時に指定した名前を指定します。 AADの名前と同じにしています。 今回はwin1works.onmicrosoft.comの “win1works” の 部分がテナント名になります。
▼UPN:AADの管理者アカウントになります。([email protected])
「作成」を選択します。
ホストプールの作成が完了しました。
7.リモートデスクトップで接続確認
ここまでで、ようやくWindows Virtual Desktop の準備が整いました。実際にリモートデスクトップ接続で確認しみましょう。WVDのポータルサイト( https://rdweb.wvd.microsoft.com/webclient/ )にサインインします。先ほど作成した接続用アカウント[email protected]を使用します。
ホストプールを選択します。リモートデスクトップ接続のローカルリソースアクセスを設定します。
接続中です。
ユーザー名とパスワードを入力します。
接続成功です!
WVDのポータルサイト経由の場合、ブラウザの中でリモートデスクトップを利用することが可能です。
以上が、Windows Virtual Desktopを最低限の評価ができるシンプルな構成を最短で作成する方法となります。いかがでしょうか?一番シンプルな構成とは言え、PowerShellでのみしか設定できない箇所や、それぞれの名前が意味している機能や役割の理解のしづらさ、難しさなど、正直なところまだまだブラッシュアップが必要と感じました。ですが、リモートワークの重要性が再認識されている昨今、小規模から大規模まで幅広いユーザー層に仮想デスクトップのサービスを提供できるzure純正のサービスは非常に魅力的です。シンプルかつ分かりやすく、管理や構築が可能となることを期待しています。Windows Virtual Desktop は将来的にはハイブリッドクラウドには欠かせないサービスとなりそうです。