AVD接続時に仮想マシンを起動する設定について

この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。

■はじめに

今回はAzurePortalを使用して、『接続時に仮想マシンを起動する』機能の設定を検証してみたいと思います。
通常AVD(AzureVirtualDesktop)に接続するには、仮想マシンが”実行中”の起動状態であることが必須です。
しかし、『接続時に仮想マシンを起動する』機能を設定することで、AVDへ接続した際に自動で仮想マシンが起動出来るようになります。

 

■概要

『接続時に仮想マシンを起動する』機能の設定は、<1>カスタムロールの作成と、<2>仮想マシンの起動機能構成の2つの設定が必要になります。
本Blogでは、設定を行う上での前提条件、設定手順<1>カスタムロールの作成方法、設定手順<2>仮想マシンの起動機能構成、設定完了確認方法、追加で検証してみたの順番で記載していきます。

 

■前提条件

『接続時に仮想マシンを起動する』機能を設定をするにあたり、ホストプールを作成済である必要があります。
またホストプール作成後に、【アプリケーショングループ】を選択し、【割り当て】にて、SessionHost(Desktop)への接続を許可するユーザーを追加する必要があります。
※この【割り当て】の作業には[所有者]or[ユーザーアクセス管理者]権限が必要です。

そのため本検証を行うにあたり、事前準備としてVM2台(SHtest001-0、SHtest001-1)を含むホストプール(HostPooltest001)の作成、接続を許可するユーザーの追加を行いました。

 

■設定手順<1>カスタムロールの作成

設定では、接続時に仮想マシン起動用のカスタムロールを作成する必要があります。
以下、AzurePortalを使用して、接続時に仮想マシンを起動するためのカスタムロールを割り当てる方法について説明します。
※③~⑦の手順は、アクセス許可タブにて、ロールを割り当てるサブスクリプションに2つのアクセス許可を追加する設定です。
※⑧~⑩の手順は、ロールを割り当ててAzureVirtualDesktopへのアクセスを許可するための設定です。

①AzurePortalを開き、【サブスクリプション】→【アクセス制御 (IAM)】→【+追加】をクリックし、プルダウンメニューの中から【カスタム ロールの追加】 を選択する。


②カスタムロール名と説明を記入し、【次へ】をクリックする。
(ここでは、名前に【start VM on connect】 、説明に【接続時にVMを起動する】と記入)


③検索欄に【Microsoft.Compute/virtualMachines/start/action】を打ち込み、表示された【Microsoft Compute】をクリックする。


④【その他:仮想マシンの起動】にチェックを付け、【追加】をクリックする。


⑤検索欄に【Microsoft.Compute/virtualMachines/read】を打ち込み、表示された【Microsoft Compute】をクリックする。


⑥【読み取り:仮想マシンの取得】にチェックを付け、【追加】をクリックする。


⑦Microsoft.Compute/virtualMachines/start/actionとMicrosoft.Compute/virtualMachines/readが表示されていることを確認したら、【確認と作成】→【作成】をクリックする。


⑧【サブスクリプション】→【アクセス制御 (IAM)】→【+追加】をクリックし、プルダウンメニューの中から【ロールの割り当ての追加】 を選択する。


⑨役割タブにて、先ほど作成したロール(start VM on connect)を選択します。
⑩選択タブの検索バーにて、【Windows Virtual Desktop】と入力して、下に表示されるアイコンの【Windows Virtual Desktop】を選択し、【保存】を押します。



※①~⑩の設定が正しく完了しているかは、【アクセス制御 (IAM)】→【ロールの割り当て】にて確認出来ます。

 

 

■設定手順<2>仮想マシンの起動機能構成

AzurePortalを使用して接続時に仮想マシンを起動するには、次の手順を実行し、設定手順<1>で作成したカスタムロールの設定をホストプールに適用させる必要があります。
①AzurePortalを開き、【AzureVirtualDesktop】をクリックします。
②【ホストプール】 を選択し、設定を有効にするホストプールをクリックします。
③【プロパティ】を選択し、接続時にVMを起動するを【はい】にチェックを入れ、【保存】を選択して設定を直ちに適用します。

 

 

■設定完了確認手順

ホストプール内のVMを全て【停止】にした状態でも、AVDに接続が可能かを確認することで、設定が問題なく完了したかを確認する事が出来ます。

①AzurePortal上から、ホストプール内の全てのVMを【停止済み(割り当て解除)】状態にします。
※HostPool側から、全てのVMの状態が使用不可と表示されていれば、完全に停止が出来ています。


②AVD(URL:https://rdweb.wvd.microsoft.com/arm/webclient)にSessionHost(Desktop)への接続を許可されているユーザードメインで接続します。
③以下のような画面が表示されるので、数分待ちます。
※この時点でVMの起動が行われているため、確認手順④の画面に遷移した時点で、『接続時に仮想マシンを起動する』機能の設定が完了していることが確認出来ます。


※確認手順③終了時のAzurePortal上のホストプール内のVMは以下のような表示になっています。
 HostPool内の1つのVM(SHtest001-0)の状態が”使用可能”になり、VMが起動したことが確認出来ます。

※VM(SHtest001-0)の詳細画面でも、状態が【実行中】になり、VMが起動したことが確認出来ます。


④資格情報を入力する画面では、SessionHost作成時のユーザー名とパスワードを入力します。


⑤SessionDesktopへの接続が確認出来ます。

 

 

■追加で検証してみた

設定確認手順終了時、VM(SHtest001-0)1台が起動(”使用可能”状態)かつ初期ユーザーが”アクティブ”な状態で、新規ユーザーでログインした場合どのVMに接続されるかを検証してみました。
その結果、新規ユーザーの接続先は、既に起動(”使用可能”状態)のVM(SHtest001-0)に繋がることが分かりました。
そのため、VM(SHtest001-1)は停止(”使用不可”状態)のままで、初期ユーザーは”セッションアウト”になりました。
この設定では、どのユーザーで何度ログインしても、先に起動(”使用可能”状態)になったVMに繋がることが分かりました。

そこで、ドレイン設定を用いて、2台のVMを起動(”使用可能”状態)出来るかについて検証をしてみました。
ドレイン設定とは、セッションホストでは新規のユーザーセッションを拒否する設定のことです。
設定完了確認手順に沿ってAVDに接続すると、今回はVM(SHtest001-1)が起動(”使用可能”状態)になり、接続できました。
VM(SHtest001-1)にユーザーがサインインした”アクティブ”な状態の際に、AzurePortal上からVM(SHtest001-1)のドレイン設定を”オン”にしました。


VM(SHtest001-1)の状態が”使用可能”、ドレインモード”オン”、”アクティブ”なユーザーが1になったことが確認できます。


その上で、他のユーザーにて設定完了確認手順に沿ってAVDに接続すると、VM(SHtest001-0)が起動(”使用可能”状態)になり、接続できました。


VM(SHtest001-1)をドレイン設定したことにより、新規ユーザーの接続が拒否され、別のVM(SHtest001-0)が起動(”使用可能”状態)出来たと考えられます。
これにより、ドレイン設定を用いれば、2台のVMを起動(”使用可能”状態)出来ることが分かりました。

 

 

■終わりに

『接続時に仮想マシンを起動する』機能の設定を検証してみて、設定手順自体は難しくないと思いました。
しかし、ホストプールの作成・ユーザーの割り当て(※前提条件に記載)や、先に起動したVMに集中して接続されることの回避策(※追加で検証してみたに記載)を設定する事の方が複雑かつ難しいと感じました。
また、『接続時に仮想マシンを起動する』機能を設定することで、必要な時のみVMを起動することが出来、コストの節約に繋がると考えられましたが、
この設定のみでは接続終了時に自動でVMが【停止】状態にはならないため、確実にコストの節約を行うには、接続終了時には手動でVMの停止を行う必要があると思います。

 

いいね (この記事が参考になった人の数:3)
(↑参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルプロセス&テクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください