Web 会議ツールの新たな選択肢
今回は今注目を集める Web 会議ツールの筆頭である Microsoft Teams (Teams) を、Microsoft が提供する仮想デスクトップソリューション Windows Virtual Desktop (WVD) で快適に利用するための方法を紹介します。
仮想デスクトップソリューションで提供される Virtual Desktop Infrasturucture (VDI) は「働き方改革」の実現に向けて注目が高まっている分野ですが、合わせて注目が集まる Web 会議ツールとの併用をしたいという要望が多いです。仮想デスクトップによるセキュリティとアクセス性に加え、 Web 会議ツールを組み合わせた円滑なコミュニケーションの推進を実現できれば、非常に大きな効果が期待できます!
WVD での Teams 最適化とは
現時点では Public Preview 状態
今回取り上げるのは現在 Public Preview で提供されている WVD で最適化された Teams です(2020/06/11 現在)。Public Preview なので仕様が変わったり SLA が定義されていないことはご承知ください。
最適化されていない WVD での Teams
まず、最適化とは何なのか、ということについて説明します。VDI では基本的にリモートで実行される仮想マシンから画面の画像情報をローカルの端末に受信します。
これによって実データの漏洩などを防げるわけですが、リモートで動画を再生する場合は画像情報の変更が頻繁に発生するため通信量が多くなってしまいます。また、リモートの仮想マシンで処理されたデータを受け取るため、どうしても通信の経路としては時間がかかる形になります。
最適化された WVD での Teams
WVD の最適化では、Teasm の Web 会議通信をクライアントで直接やりとりさせることによって効率的な通信を実現しています。最適化に対応した WVD クライアントを利用すると、従来までリモートの仮想マシンを経由していた通信をクライアント同士で直接やりとりするようになります。

事前準備
リモート側要件
OS と Teams のバージョン
次の OS と Teams のバージョンを利用する必要があります。
- Teams デスクトップアプリケーション 1.3.00.4461 以降の バージョン
- Windows 10 Enterprise for Virtual Desktop or Windows 10 Enterprise
クライアント側要件
OS
現状では最適化は Windows 10 もしくは Windows 10 Enterprise IoT デバイス向けのクライアントアプリケーションに限定されています。最新の WVD デスクトップクライアントをご利用ください。
スペック
Teams を快適に利用するためのスペックが必要になります。次の Docs を参考にしてください。1:1 ビデオ通話ならシングルコアと 4GB RAM、グループ会議ならデュアルコアと 8GB RAM が推奨されています。
Hardware requirements for Microsoft Teams – Microsoft Teams | Microsoft Learn
準備手順
リモート側の仮想マシン、もしくはマスターイメージ作成の段階で次の手順を実行します。
レジストリ変更
Teams をマシン単位でインストールするために次のレジストリキーを作成します。
レジストリ名 | タイプ | 値 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Teams\IsWVDEnvironment | DWORD | 1 |

WebSocket サービスのインストール
Teams を最適化するための追加コンポーネントをインストールします。WebSocket Serviceをダウンロードしてインストールします。

インストール中に次のようなエラーが発生する場合は、先に最新の Microsoft Visual C++ Redistributable をインストールします。


Teams インストール
まず、Teams の MSI パッケージをダウンロードします。
次のコマンドを実行してインストールします。<path_to_msi>
は先ほどダウンロードした Teams MSI パッケージのパスを指定します。<install_logfile_name>
にはインストール時のログを書き出すファイルパスを指定します。
msiexec /i<path_to_msi> /l*v<install_logfile_name> ALLUSER=1 ALLUSERS=1

準備はこれで完了なので、あとは普段通り仮想マシンをイメージ化→WVD ホストプールを展開してください。
確認方法
WVD のセッションホストを展開したら、Windows 10 向けクライアントアプリで接続します。Teams が自動で起動するので、初回は自身の資格情報を入力してサインインします。
Teams のウィンドウ右上にあるプロファイル画像をクリックします。メニューが開くので、[情報]>[バージョン] をクリックします。

ウィンドウ上部にバナーが表示され次のように表示されます。「WVD Media は最適化されています」とあれば OK です。

パフォーマンス比較
最適化されていない Teams と最適化された Teams でそれぞれ 1:1 のビデオ通話を行ってリソースの状況を比較しました。リモート側のスペックは D2v3(2 core 8GB RAM)、 Premium SSD で揃えています。
最適化されていない場合
リモート側状況
まずはリモート側の仮想マシンリソースの状況を確認します。タスクマネージャーを見ると Microsoft Teams でプロセスを多く使用していることがわかります。

使用率で見ると CPU 使用率は 50~60%で常時利用するようになります。ネットワークに関しては上り 2Mbps、下り 1Mbpsといったところです。上りはWVD のクライアントと Teams 通話相手の2つと同時に通信しているので多くなりがちです。

ローカル側の状況
ローカル側は WVD クライアントアプリのみ起動しているので、CPU 使用率もさほど高騰しません。ネットワークについては下りが 3Mbps と、ビデオ通話の内容によって少し通信量が増えるようです。


ビデオの質で言うとこのくらいです。照明の影響もあるかと思いますが、テレビのテロップも細かいところが潰れて読みにくく感じます。

最適化された場合
リモート側の状況
次に最適化された環境を確認します。まずリモート側仮想マシンを確認して驚くのが Teams での CPU 使用率 0% 台とうことです!

リソース使用率を確認してみるとほとんど負荷がかかっていないことがわかります。ネットワークも先ほどとは桁違いの通信量に落ち着いています。

ローカル側の状況
ではローカル側のデバイスを確認していきます。リモート側からオフロードされた分のビデオ通話処理を頑張っている様子が伺えます。ローカル側ではビデオ通話処理は WVD クライアントが担ってくれるようで、追加で Teams をインストールする必要もありません。

リソース使用率でみると CPU は先ほどよりも負荷がかかっていることが確認できます。ネットワークについてはエンコードされているデータを受け取っているからか、先ほどよりも下り通信が落ち着いているようです。

ビデオの質はこんな感じです。ニュースなので大きめのテロップですが、かなりはっきりと確認できます。

ちなみに下の画像は最適化環境でリモート仮想マシン上でスクリーンショットを撮ったときの図です。本来なら裏側にビデオが表示されているんですが、ローカルで処理しているのでその情報がリモートでは確認できません。

まとめ
WVD で最適化された Teams であれば DaaS でも快適にビデオ通話ができそうです。プレビュー状態ですが、今まで無理やりDaaS で行っていたビデオ会議よりも圧倒的に快適になっていることを体感できると思います。
制限事項
現在いくつかの機能制限がありますのでご注意ください。
展開と構成
- Teams を仮想マシン単位でインストールする場合、自動的にアップデートされないので、都度 MSI のインストールを行う必要がある。
- Teams は現在 UTC タイムゾーンでのみ利用可能。
- 最適化されているクライアントは Windows 10 向けのみ。
- Explicit HTTP プロキシーの使用は非サポート。
通話と会議
- ライブイベントはサポートされない。
- Teams アプリを最小化していると、通話や会議のフィードが現れないことがある。
- 通話や会議でのアプリウィンドウ共有は非サポート。
- デスクトップ共有のみサポート。マルチモニターの場合は全てのモニターを共有する。
- 制御の要求は非サポート。
- ビデオの受信のみサポート。
- ビデオ品質は最大 720p。
- HID ボタンや LED コントロールは非サポート。
コメント