Azure Virtual DesktopでWindowsの仮想デスクトップ環境を用意する
家でWindowsのプログラミングについて、ほんの少しだけ確認したいという場面があるのですが、家のWindows機は家族と共用で、且つ外部出力も乏しいノートPCなのであまり使いたくありません。
かといって家でするプログラミングの大半のことは、私の場合ChromeBookで事足りているので、新しくWindows機を購入する気にもなりません。
こうした場面に対応できるように、Azure Virtual Desktopで使いたいときにだけ使えるWindowsの仮想デスクトップの環境を用意してみます。
はじめに
目的を達成するための選択肢
2024年2月時点で、私の目的にかなったWindowsの仮想デスクトップを手に入れる手段としては、次のようなものがありそうです。
- Azure の Virtual Machines
- Azure の Azure Virtual Desktop
- Azure の Microsoft Dev Box
- Windows 365
Azure VMは自由度が高い代わりに手間がかかりますし、Windows 365は基本的には企業向けで「少しだけ確認したい」にはかなり割高になります。
Dev Boxは基本的にWindows 365とMicrosoft Intuneの組み合わせをソフトウェア開発向けに最適化したもので、やはり個人が少しだけ使うという目的には、かなりオーバースペックです。そのため、ここではAzure Virtual Desktopを試してみることにします。
Azure Virtual Desktopとは
Azure Virtual Desktopは、Azure で実行されるデスクトップおよびアプリの仮想化サービスです。
Azure Virtual DesktopとWindows 365は「だいたいおんなじようなもん」という認識ですが、Windows 365は完全なサービスとしてのソフトウェア (SaaS) ソリューションで、月額払いのサブスクリプションサービスです。それに対して、Azure Virtual Desktopはクラウド仮想デスクトップ インフラストラクチャ (VDI) プラットフォームで、使用した分だけ支払う従量制料金が採用されています。
また、Azure Virtual Desktop と Virtual Machines の違いや役割については、サービスのレイヤーが違うと理解したほうが良さそうで、簡単にいうと Azure Virtual Desktop の接続先が Virtual Machines になります。この記事では「個人用」として Azure Virtual Desktop を試しますが、このレイヤーの違いは「マルチセッション機能」を使いだすと、より理解しやすくなります。
Azure Virtual Desktopにかかるコスト
大まかに次の内容に対して費用が発生します。
- 仮想マシン
- ストレージ
- OSライセンス
このうち、仮想マシンに関しては従量課金で、使っていないときは費用は発生しませんが、ストレージに関しては基本的にリソースが存在している間は費用が発生します。これらの基本的な考え方は、VMと同じです。
また、2024年2月時点ではこのあとで説明するチュートリアルのスペック(Standard D2s v3 … 2 vcpu、8GiB RAM、Standard SSD)の場合、一晩で仮想マシンが400円、ストレージが50円くらいでした。
ライセンスの仕組みは内部使用と外部商用の目的で異なるようで、内部商用目的でWindows11を使う場合は、次のように公式に書かれています。
内部商用目的で Azure Virtual Desktop アクセスを提供する場合は、Azure Virtual Desktop にアクセスするユーザーごとに、次のいずれかの対象ライセンスを購入する必要があります。
- Microsoft 365 E3、E5、A3、A5、F3、Business Premium、Student Use Benefit
- Windows Enterprise E3, E5
- Windows Education A3, A5
- ユーザーあたりの Windows VDA
この中で一番リーズナブルなのは、Windows Enterprise E3で、現時点で880円/月のようです。
Azure Virtual Desktopの環境設定
公式のチュートリアルの手順どおり進めていくことで、Azure Virtual Desktopの環境は作成できますが、次の点に気をつける必要があります。
- 先に仮想ネットワークを作成しておく必要があります。
- デスクトップへの接続に使用できる Microsoft Entra ID ユーザーアカウントを作成しておきます。
- セキュリティの面から、Azure Virtual Desktopの環境作成をおこなうユーザーとは別のユーザーを作成したほうが良いと思います。
- このユーザーには「仮想マシンのユーザーログイン」または「仮想マシンの管理者ログイン」のRBACロールが割り当てられている必要があります。当該ユーザーにグローバル管理者の権限を与えていたとしても、このロールは含まれていないので別途割り当てる必要がありました。
ロールを割り当てるには、対象のリソース(今回はサブスクリプションにしました)を選択し、アクセス制御(IAM)→ロール割当ての追加→「仮想マシンの管理者ログイン」を選択し、ユーザーを割り当てます。
セッションホストのデプロイには30分ほどかかりました。
注意点
- 切り分けまではしていませんが、低スペックのVMやストレージにHDDを選択した際に、セッションホストが使用不可となり、起動できないことがありました。
- 仮想マシンをシャットダウンしただけでは課金され続けてしまうので、使い終わったあとはセッションホストから「ユーザーの割り当て解除」をする必要があります。
抑えておきたい用語
セッションホスト
=VM, Azure 仮想マシン
ホストプール
セッションホストをまとめた管理単位。
「個人用」と「プール」があります。
個人用
ユーザーは同じ特定のセッションホストに常に接続でき特定のユーザーに専用リソースを割り当てることができます。
プール
マルチセッションを実現する場合に用います。ユーザーセッションは、ホストプール内の任意のセッションホストに負荷分散されます。1つのセッションホストに複数の異なるユーザーが同時に存在する場合があります。
仕事で使うのならば、これを理解しておく必要があると思います。
アプリケーショングループ
「アプリケーション」をまとめた管理単位で「デスクトップ」と「RemoteApp」があります。
デスクトップ
WindowsのデスクトップそのものにアクセスしてAzure 仮想マシンを使用します。
RemoteApp
デスクトップにアクセスするのではなく、あらかじめ指定したデスクトップアプリケーションだけを使用します。ホストプールに「プール」を選択した場合のみRemoteAppを選択できます。
ワークスペース
アプリケーショングループをグループ化するものです。ユーザーがリモートデスクトップクライアントで接続するとワークスペースが表示され、そこに関連付けられたアプリケーショングループが表示されます。
「個人用」のホストプールを選択し、アプリケーショングループが「デスクトップ」とするならば、ワークスペースに「SessionDesktop」というアイコンで接続先としてのWindowsのデスクトップが表示されます。
まとめ
Azure Virtual Desktopで使いたいときにだけ使えるWindowsの仮想デスクトップ環境を手に入れることができました。
出来上がった仮想デスクトップは英語版なので、日本語化したほうが日本人には使いやすいと思います。
元々、頻繁に使わないものに必要以上にお金をかけたくないという節約根性から始まった作業ですが、設定やデプロイ、日本語化にはそれなりに時間と手間がかかります。時間や手間も立派なコストなので、このあとはテンプレートやイメージをつくって、これらの作業を自動化していくのが良いのかなと思います。
Discussion