社内レポート

イベントレポート

2020年7月6日(月)

ハイブリッドクラウドへの道 ~The road to hybrid cloud.~vol.6

Windows Virtual Desktop 最短構築方法解説

「ハイブリッドクラウドへの道 ~The road to hybrid cloud.~」
今回は、Azure上で仮想デスクトップサービスを提供可能にするWindows Virtual
Desktop(WVD)の構築方法を解説します。

少数の仮想デスクトップであれば、その都度仮想マシンを作成してユーザーに
割り当てれば利用可能ですが、数十人以上の利用者を想定した場合では
仮想マシンの作成や提供方法、サービスの管理方法など統一したシステムが
必要となります。

WVDはこれらを解決するための仮想デスクトップサービスとなります。
オンプレミススでは実際の物理サーバーとクラウド上のサーバーを運用しつつ、
クライアントマシンは全てAzure上の仮想デスクトップで提供といった
ハイブリッド化へのヒントとなります。

今回紹介するのは、WVDを実際に動かしてみたいといった、最低限の評価が
できるいたってシンプルな構成を最短で作成する方法となります。

以下、Microsoft公式のWindows Virtual Desktop のドキュメント
https://docs.microsoft.com/ja-jp/azure/virtual-desktop を参考に解説しています。

記事INDEX

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で「新しいユーザー」を選択します。

“wvdadmin@win1works.onmicrosoft.com”という
アカウント名で作成します。

こちらのアカウントも同様にパスワードのリセットを実行
してハッシュ同期を有効にしておきます。

管理者アカウントと同様に一度サインアウトして、サインインし直します。

もう一つ、リモートデスクトップ接続用のアカウントも
作成しておきます。このアカウントでユーザーは
リモートデスクトップが利用可能となります。

同様にパスワード更新を行います。

4.Widows Virtual Desktop テナントの作成

WVDテナント(Widows Virtual Desktopのサービス)を
作成してゆきます。いくつか前準備が必要となるので
それぞれ手順を追って解説します。

4-1.アクセス権の割り当て

こちらで完了です。

こちらで完了です。

4-2.TenantCreator のロール割り当て

WVDのホストプールを作成する際に必要となる
ロールを専用アカウントに割り当てます。
Azureポータルに戻り、すべてのサービスから
「エンタープライズアプリケーション」を検索し、選択します。

「Windows Virtual Desktop」を選択します。

「1.ユーザーとグループの割り当て」を選択します。

「ユーザーの追加」を選択して、先ほど作成したホストプールを
作成する時に使用する専用アカウント
wvdadmin@win1works.onmicrosoft.comに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@win1works@onmicrosoft.comでサインインします。

テナントを作成します。

:AADの名前と同じにしています。
今回はwin1works.onmicrosoft.comの “win1works” の部分が
テナント名になります。

:先ほど取得したテナントID (ディレクトリ ID)です。

:先ほど取得したサブスクリプションIDです。

実行すると、再びサインイン画面が表示されるので、AADの
管理者アカウントadmin@win1works@onmicrosoft.comでサインインします。

例)
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で追加可能です。
例)user01@win1works.onmicrosoft.com,admin@win1works.onmicrosoft.com

仮想デスクトップを提供する仮想マシンのサイズ
(スペック)と台数を設定します。

Virtual machine name prefix は仮想マシンに名前付け
ルーツで、名前の先頭に共通の文字が入ります。

仮想マシンの設定で、利用するOSの種類やディスクのタイプ
など選択します。ここでのポイントは以下となります。

AD domain jyoin UPN:AADの管理者アカウントではなく、
先ほど作成した専用のアカウント
(wvdadmin@win1works.on.microsoft.com)を指定します。

▼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の管理者アカウントになります。(admin@win1works.onmicrosoft.com)

「作成」を選択します。

ホストプールの作成が完了しました。

7.リモートデスクトップで接続確認

ここまでで、ようやくWindows Virtual Desktop の準備が整いました。
実際にリモートデスクトップ接続で確認しみましょう。

WVDのポータルサイト( https://rdweb.wvd.microsoft.com/webclient/
にサインインします。

先ほど作成した接続用アカウントuser01@win1works.on.micorosoft.com
を使用します。

ホストプールを選択します。

リモートデスクトップ接続のローカルリソースアクセス
を設定します。

接続中です。

ユーザー名とパスワードを入力します。

接続成功です!

WVDのポータルサイト経由の場合、ブラウザの中で
リモートデスクトップを利用することが可能です。

以上が、Windows Virtual Desktopを最低限の評価ができる
シンプルな構成を最短で作成する方法となります。

いかがでしょうか?

一番シンプルな構成とは言え、PowerShellでのみしか設定できない箇所や、
それぞれの名前が意味している機能や役割の理解のしづらさ、難しさなど、
正直なところまだまだブラッシュアップが必要と感じました。

ですが、リモートワークの重要性が再認識されている昨今、小規模から
大規模まで幅広いユーザー層に仮想デスクトップのサービスを提供できる
Azure純正のサービスは非常に魅力的です。

シンプルかつ分かりやすく、管理や構築が可能となることを期待しています。
Windows Virtual Desktop は将来的にはハイブリッドクラウドには欠かせない
サービスとなりそうです。