必要な時に電源ON!Start VM on Connectを試してみた ~Azure Virtual Desktop~

"064_必要な時に電源ON!Start VM on Connectを試してみた ~Azure Virtual Desktop~" (2021年10月28日掲載)

こんにちは!ソフトバンクの竹﨑です。
法人のお客さま向けに各種クラウドの提案、設計、構築をしています!
「Start VM on Connect」とは、Azure Virtual Desktopへのログイン時に自動で仮想マシンの電源をONにする機能で、2021/07/29にGAされました!本記事では、「Start VM on Connect」の基本的な設定と利用方法や、その他(Citrix, Horizon)の電源管理機能との比較について解説します。

目次

1. Start VM on Connectとは

「Start VM on Connect」とは、Azure Virtual Desktop環境で、ご利用先の仮想マシンが停止している場合、ユーザ接続時に仮想マシンを自動的に起動してくれる機能となります。

Azureサービスの利用料金は、リソースの利用時間や使用量に比例して料金が変動する仕組みとなっています。Azureで仮想マシンを利用する上でスペック、台数、起動時間が料金計算の基準となります。
 スペックに関しては、当然搭載するCPUやメモリが多いほど、料金は高くなります。また、台数に比例して利用料金が増えますが、こちらはWindows 10 multi-session版により仮想マシンの集約率を上げて料金を抑えることができます。起動時間が長いほど料金は高くなりますが、今回ご紹介する「Start VM on Connect」や、後述でご紹介する他の電源管理機能と組み合わせることで、料金を抑えることができます。
 また、「Start VM on Connect」は自動電源管理機能のため、手動オペレーションによる余計な運用管理工数も削減できます。

2. Start VM on Connectの設定

では、Microsoft Docsを参考に、実際に設定していきましょう!
手順としては「カスタムロールの作成」「ロールの割り当て」「仮想マシン起動機能の設定」があります。
https://docs.microsoft.com/ja-jp/azure/virtual-desktop/start-virtual-machine-connect

実際のポータル画面を見ながら「Start VM on Connect」の利用方法を解説していきます。

2.1. カスタムロールの作成

Azure Portalにログインした後、サブスクリプションのページに移動します。

「アクセス制御(IAM)」をクリックします。

「+ 追加」をクリックすると、プルダウンメニューが表示されるので「カスタムロールの追加」を選択します。

カスタムロール作成の画面が表示されるので、「カスタムロール名」を入力します。

「アクセス許可」では、下記3つの権限を追加します。

    Microsoft.Compute/virtualMachines/start/action
    Microsoft.Compute/virtualMachines/read
    Microsoft.Compute/virtualMachines/instanceView/read

その後、「確認と作成」をクリックします。 f:id:SB_kaori_matsushima:20211104103030p:plain

「作成」をクリックすると、下記のような画面が表示されます。 f:id:SB_kaori_matsushima:20211104103026p:plain

IAMの画面に移動して、カスタムロールが正常に作成されたことを確認します。

2.2. ロールの割り当て

サブスクリプションから、IAMの画面へ移動します。その後、「+ 追加」をクリックするとプルダウンメニューが表示されるので、「ロールの割り当ての追加」を選択します。

「ロールの割り当ての追加」を設定していきます。
先ほど作成したカスタムロールをクリックして、「Windows Virtual Desktop」を選択します。その後「保存」をクリックします。

2.3. 仮想マシン起動機能の設定

「Azure Virtual Desktop」のトップ画面へ移動します。

「プロパティ」をクリックします。

「接続時にVMを起動する」の設定を「いいえ」から「はい」へ変更します。

以上で、設定は完了です。

3. 実際に接続してみた!

今回の構成は下記のようなイメージです。

余談ですが、Azure Virtual Desktopへの接続では「Azure Active Directory」と「Active Directory」の認証が必要となります。

① コントロールプレーンへ接続
Azure Virtual Desktopへの接続は「ブラウザ」と「Remote Desktop Client」の2種類がありますが、ここではブラウザ経由での接続画面をご紹介します。
※サポートされているブラウザ情報は、下記を参照ください。
https://docs.microsoft.com/ja-jp/azure/virtual-desktop/user-documentation/connect-web

ブラウザを開いて下記URLへ接続します。
https://rdweb.wvd.microsoft.com/arm/webclient

② 認証(Azure Active Directory)
下記のような認証画面が表示されますので、資格情報を入力します。

③ 接続先マシン一覧をフィード
認証に成功すると、割り当てられたマシン一覧が表示されるので、接続先マシンをクリックします。

④ 認証(Active Directory)
■「Start VM on Connect」未設定の場合
電源OFFの接続先マシンをクリックした場合、下記のようなメッセージが出力されて接続に失敗します。

■「Start VM on Connect」設定済みの場合
下記のようなメッセージが出力されて、接続先マシンが自動的に起動されます。

起動するまで待ちます…

起動完了すると、自動的に下記のような画面に遷移します。ここで、Active Directoryの資格情報を入力します。

⑤ 画面転送

おなじみのWindowsのログイン画面が表示されます。

ログイン成功です!

  • ちなみに…

Azure Portalを覗いてみると、電源は「実行中」になっていますね!(当然ですが)

Azure上のリソースに対して、外部から実行された操作(リソースの作成、削除、権限変更)が行われた際に、「いつ / 誰が / 何の操作を実施した」などの履歴(アクティビティログ)が残るので、このログを確認してみます。

先ほどカスタムロールの権限を与えた「Windows Virtual Desktop」が起動処理を実行しているのが確認できますね!

4. 電源管理の検討ポイント

4.1. 電源管理手法一覧

ここまで「Start on VM Connect」を説明してきましたが、残念ながらこちらの機能だけで実現できない部分(仮想マシンの停止処理)があります。

では、どのように電源管理を実現すれば良いのか、他のソリューションを挙げながら整理しましょう。

上記の表では、主な評価軸として仮想マシンの起動 / 停止処理の実現可否やコストの有無を挙げています。

(1) Azure Automation

運用タスクを自動化するクラウドオートメーションサービスです。電源管理に特化したサービスではありませんが、あらかじめ仮想マシンの起動 / 停止処理をスケジュールしておき、時間になったら該当の処理を実行できます。ユーザの業務時間が午前9時から午後5時の場合は、処理時間を加味して午前8時の起動、午後6時に停止という感じでスケジューリングします。
ただし、上記の設定だけでは「緊急の業務対応で午前6時から利用したい」といったニーズに答えることができません。そのため、起動の評価を△とします。
[参考資料]
https://docs.microsoft.com/ja-jp/azure/automation/automation-solution-vm-management

(2) Start VM on Connect

本ソリューションでは電源OFFは実現できませんので、停止の評価を×とします。ただし、Azure Automation単体では実現できなかったユーザ主導での起動処理が可能となり、Azure Automationと組み合わせることで利用料金を抑えつつユーザが柔軟に利用できる環境を実現できます。

(3) AVD with Citrix Cloud、(4) AVD with Horizon Cloud

シトリックス社もしくはヴイエムウェア社が提供しているクラウド型仮想デスクトップソリューションをAVDに組み合わせることで、(1)(2)でご紹介した起動 / 停止処理が可能です。他にも、直感的な管理/運用が可能なGUIコンソールによる運用管理や、より詳細なポリシー制御(リダイレクト)が実現できるといったメリットがあります。ただし、こちらのソリューションは別途有償となりますので、コスト観点での評価を×とします。

4.2. 注意点

最後にAzure上で仮想マシンを利用する際の注意点も説明します。
Azure仮想マシンを利用する上で「電源を落としたのに課金されている!」というケースがよくあります。シャットダウンしても課金されるケースがあり、高額な請求をされてしまうことがあるので、公式ドキュメントを読んで課金条件を理解しておくことは重要です。
[Azure Virtual Machines の状態と課金]
https://docs.microsoft.com/ja-jp/azure/virtual-machines/states-billing

仮想マシンの各状態で、課金の発生有無をまとめた表です。

シャットダウンのオペレーションはAzure PortalとゲストOSのどちらでも実行できますが、それぞれ実行した後の電源状態は下記のようになります。

  • Azure Portalからのシャットダウン:割り当て解除済み
  • ゲストOSからのシャットダウン:停止済み

ユーザ側のゲストOSからのシャットダウンでは「停止済み」状態となり、課金が発生してしまいます。そのため、ゲストOSからのオペレーションをActive Directoryのグループポリシーなどで禁止する…という設計も必要になってきます。

ちなみに、電源状態のステータスはAzure Portalの各仮想マシンから確認できます。

5. まとめ

今回ご紹介した「Start VM on Connect」により、AVD単体でもユーザが使いたいときに仮想マシンを起動できるようになりました。

また、実際に設計 / 運用していく際には、他にもさまざまな観点を考慮する必要がありますが、ソフトバンクでは、AVDだけではなくセキュリティやネットワークも含めた幅広いご支援が可能ですので、ぜひご相談ください!

以上、最後までお読みいただきありがとうございました。

f:id:SB_kaori_matsushima:20211101061225p:plain

あわせて読みたい記事

Azure上に作成した仮想マシンのディスク拡張方法

Azure API Managementを触ってみた!

Azure Synapse Analyticsはじめの一歩