Azure Virtual Machines に Windows 環境を作ってリモートデスクトップ接続してみた

# はじめに

友人（[@digital24s](https://twitter.com/digital24s) さん）に誘われて、EC2 に Windows 環境を作ってリモートデスクトップ接続するまで、一緒にトライしました。

[EC2 に Windows 環境を作ってリモートデスクトップ接続してみた #AWS - Qiita](https://qiita.com/tinymouse/items/e6314c4446123e5fed05)

EC2 で作成できる Windows 環境が Windows Server だけなのですが、クライアント用 Windows の環境も作成したいとのこと。Azure の Virtual Machines サービスならできるようなので、トライしました。

# Azure Virtual Machines に Windows 環境を作ってリモートデスクトップ接続する

以下の記事を参考にしました。

[iDATEN(韋駄天)｜ Azure 第7回『やってみようシリーズ：Azure 仮想マシンを作ってみた』](https://www.idaten.ne.jp/portal/page/out/secolumn/multicloud/column032.html)

[Azureことはじめ〜無料枠で仮想マシンをたててみる〜 | DevelopersIO](https://dev.classmethod.jp/articles/azure-first-vm/)

## リソースグループなどを用意する

### サブスクリプションを用意する

料金支払に使用するサブスクリプションを用意します。アカウントと同時に作成されたものを使うので構いません。

### リソースグループを作成する

以下の項目を指定してリソースグループを作成します。

* 名前：任意
* サブスクリプション：選択
* リージョン：選択

## 仮想ネットワークを作成する

### 仮想ネットワークを作成する

以下の項目を指定して仮想ネットワークを作成します。

* 名前：任意
* アドレス空間：ここでは 10.0.0.0/16
* サブスクリプション：選択
* リソースグループ：選択
* 場所（リージョン）：選択

作成するとデフォルトの「ルートテーブル」と「ネットワーク ACL」が作成されます。

### サブネットを作成する

以下の項目を指定してサブネットを作成します。

* 名前：任意
* アドレス範囲：ここでは 10.0.0.0/24
* DDoS 保護：Basic
* サービスエンドポイント：無効
* ファイアウォール：無効

### インターネットゲートウェイとルートテーブルを作成する

EC2 ではインターネットゲートウェイを作成て、仮想ネットワーク内宛「以外」の通信をインターネットゲートウェイに向くよう設定するルートテーブルを作成しました。
Azure の仮想ネットワークは、既定でインターネット向けのルーティングされます。

参考：[AWSとAzureのネットワーク仕様の違い【AWS技術者のためのAzure入門 第３回】 | エディフィストの実務に活かせるIT研修](https://jinzai.edifist.co.jp/article/aws-no3-azure-aws-network)

## 仮想マシンを作成する

### 仮想マシンの設定する

以下の項目を指定して仮想マシンを作成します。

* サブスクリプション：選択
* リソースグループ：選択
* 仮想マシン名：任意
* 地域（リージョン）：選択
* 可用性オプション：インフラストラクチャ冗長性は必要なし
* セキュリティの種類：トラステッド起動の仮想マシン
* イメージ：ここでは「Windows Server 2022 DataCenter: Azure Edition - Gen2」
* VM アーキテクチャ：x64
* サイズ：ここでは「Standard_D2s_v3 - 2 vcpu 、8 GiB のメモリ」

* 管理者アカウント：後述

* 受信ポートの規則：後述 

* Windows ライセンスを既に：いいえ

### 管理者アカウントの設定する

以下の項目を指定して管理者アカウントを設定します。

* ユーザ名：任意
* パスワード：任意

### ディスクの設定する

予めディスクを作成しておいて仮想マシンにアタッチすることもできますが、仮想マシンの設定の時点でディスクの設定して作成できます。

* OS ディスクの種類：Premium SSD
* VM とともに削除：はい
* ホストでの暗号化を有効：なし
* 暗号化の種類：規定
* Ultra Disk の構成：なし
* データディスク：とりあえずなし

### ネットワークの設定する

仮想マシンのネットワークの設定します。

* 仮想ネットワーク：選択
* サブネット：選択
* パブリック IP：後述

* NIC ネットワークセキュリティグループ：Basic
* パブリック受信ポートの構成：後述

### セキュリティグループが作成される

予めセキュリティグループを作成しておいて仮想マシンに適用することもできますが、仮想マシンの設定の時点で以下の設定するとセキュリティグループが作成されます。

* 「基本」の受信ポートの規則
* 「ネットワーク」のパブリック受信ポートの構成

参考：[Azure VMをデフォルトのまま作ると危険なのでNSGを設定しましょう | Li-akb-branch-office](https://www.tama-negi.com/2020/06/12/azure-vm-nsg/)

RDP でリモートデスクトップ接続できるようにしておきます。

* パブリック受信ポート：選択したポートを許可する
* 受信ポート：RDP (3389)

### パブリック IP の設定する

予めパブリック IP を作成しておいて仮想マシンに適用することもできますが、仮想マシンの設定の時点で以下の設定するとパブリック IP が作成されます。

* 「ネットワーク」のパブリック IP

### その他の設定する

以下の設定は既定のままで進めます。

* 管理
* モニタリング
* 詳細
* タグ

### 仮想マシンを起動する

作成した仮想マシンを選択して「起動」実行します。

## リモートデスクトップ接続する

### 接続の設定を確認する

起動している仮想マシンを選択して「接続」の設定します。
以下のいずれかの方法で接続できます。

* RDP
* SSH
* Bastion

このうち「RDP」を選択します。
設定画面で以下の項目が確認できます。

* IP アドレス
* ポート名

### 管理者アカウントとパスワードを確認する

EC2 の Windows 環境の管理者アカウントのユーザ「Administrator」とパスワードは、インスタンスの作成時点で自動でセットされます。
Azure Virtual Machines は、管理者アカウントのユーザ名とパスワードを、仮想マシンの作成時点で指定します。
指定したユーザ名とパスワードが分からなくなってしまったら、確認することができるようです。

参考：[Azure VMの管理者アカウント名とパスワードが分からなくなった時の対処方法 | Li-akb-branch-office](https://www.tama-negi.com/2022/05/07/azure-vm-account/)

### リモートデスクトップ接続する

接続元の環境で RDP クライアントツール（Windows なら「リモートデスクトップ接続」）を起動します。
以下の情報を使って接続してログインします。

* 接続先：前述の設定画面で取得した IP アドレス
* ユーザ名：前述の設定画面で設定したユーザ名
* パスワード：前述の設定画面で設定したパスワード

### 仮想マシンを停止する

仮想マシン上の Windows は、通常の操作でサインアウト（ログオフ）やシャットダウンできます。リモートデスクトップ接続を切断することもできます。
ただし仮想マシン上でシャットダウンしても、仮想マシン自体は停止した状態になりません。その状態の仮想マシンは、課金の対象になります。注意が必要です。

Azure のポータルで、起動している仮想マシンを選択して「停止」実行します。