☁️

Azure仮想マシンを作成する

2024/04/15に公開

自分への備忘として改めて仮想マシンの作成について残したいと思います。

Azure仮想マシンとは

サーバやパソコンを使いたいなとなった場合、本来以下の流れを踏む必要があります。
 1。欲しいパソコン(サーバ)のスペックを決める
 2.パソコン(サーバ)の見積りを取る or お店へ行く)
 3. パソコン(サーバ)を購入し設置する
Azure仮想マシンはクラウドサービスのため、2と3の手間がかからず、スケールアップも容易という利点があります。

以下公式ドキュメントです。
https://learn.microsoft.com/ja-jp/azure/virtual-machines/overview

作成

リソースグループの作成

まずはリソースグループ(リソースを格納するための箱)を作成します。
 1.AzurePortalから「リソースグループ」-「作成」をクリック

2.リソースグループ名、リージョンを入力して「確認及び作成」をクリック
 ※リソースグループ名は後から変更できないので気を付けましょう。

3.確認画面で「作成」をクリックするとリソースグループが作成されます

仮想マシンの作成

ここからは仮想マシン(以下VMと記載します)の作成です。今回はWindowsを作っていきます。
VMを作成すると以下のリソースが合わせて作成されます。
※既存のものを使うこともできますが、ここでは新規に作成します、
・仮想ネットワーク(VNET):VMを所属させるLAN
・ネットワークセキュリティグループ(NSG):ネットワークファイアウォール
・ネットワークインターフェース(NIC):パブリックIPアドレス
・ディスク(OSディスク):OSのディスク

以下公式ドキュメントです。
https://learn.microsoft.com/ja-jp/azure/virtual-machines/windows/quick-create-portal
https://learn.microsoft.com/ja-jp/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu
1.AzurePortalから先ほど作成したリソースグループを選択し「作成」をクリック
2.検索窓に「仮想 マシン」を入力すると「仮想マシン」が表示されるのでクリック
 ※スペースも入れないと検索にヒットしないので注意しましょう。

3.パラメータを入れていきます

    3-1.基本タブ
# 設定項目 設定値 備考
1 リソースグループ test20240415_RG VMを作成するリソースグループ名
2 仮想マシン名 test20240415-VM VMの名前(後から変更できないことと一部使用できない特殊文字があるため注意)
3 地域 Japan East VMを作成するリージョン
4 可用性オプション(※1) インフラストラクチャ冗長性は必要ありません 可用性のパターンを選択(詳細は※1)
5 セキュリティの種類 Standard セキュリティの種類を選択
6 イメージ WindowsServer2019Datacenter -x64 gen2 イメージ(OSの種類)を選択
7 サイズ(※2) Standard_DS_V2 OSのプランを選択(こちらにより値段が変わります,地域によっては使用できないものもあるので注意です)
8 ユーザ名 AzureUser OSログイン時のユーザ名を入力
9 パスワード AzureUser123 OSログイン時のパスワードを入力
10 パブリック受信ポート RDP(3389) デフォルトで許可するポートを選択今回はRDPで接続するので3389を開けます
11 ライセンス ハイブリッド特典(オンプレミスのライセンスを持っていると割引ができる等)を使うかのチェックです

※1:https://learn.microsoft.com/ja-jp/azure/virtual-machines/availability
※2:https://learn.microsoft.com/ja-jp/azure/virtual-machines/sizes

 3-2.ディスクタブ
# 設定項目 設定値 備考
1 OSディスクサイズ イメージの規定値 OSディスクのサイズを選択します
2 OSディスクの種類(※3) Premium SSD(ローカル冗長) ディスクのパフォーマンスを選択します
3 VMとともに削除 VMを削除するとディスクも削除されます(なれないうちは消し忘れ防止になります)
4 キーの管理 プラットフォームマネージドキー ディスク暗号化の方式を選択します(カスタマーマネージドキーを選択するには別途Keyコンテナーのリソースが必要です)

※3:https://learn.microsoft.com/ja-jp/azure/virtual-machines/disks-types

 3-3.ネットワークタブ
# 設定項目 設定値 備考
1 仮想ネットワーク (新規)test20240415-VM-VNet VMを紐づける仮想ネットワーク名を選択します。既存のものが存在しない場合は新規に作成されます
2 サブネット (新規)default VMを紐づける仮想ネットワークのサブネット名を選択します。既存のものが存在しない場合は新規に作成されます
3 パブリックIP (新規)test20240415-VM-ip VMに紐づけるパブリックIP(インターネットからアクセス可能)を選択します。紐づけないことも可能ですが、今回はローカルPCからRDP接続するので作成します。既存のものを紐づけることも可能です
4 NICネットワークセキュリティグループ basic NICにNSGを紐づける場合は「詳細」を選択します
5 パブリック受信ポート RDP(3389) デフォルトで有効にするポートを選択します
6 VM が削除されたときにパブリック IP と NIC を削除する VM削除時にNICとパブリックIPを削除します
7 高速ネットワークを有効にする(※4) VM間の通信を高速化する技術です(VM1台のみの場合は有効にしても効果は得られません)
8 負荷分散のオプション なし 負荷分散をしたい場合は選択します。別途AzureLBのリソースが必要になります

※4:https://learn.microsoft.com/ja-jp/azure/virtual-network/accelerated-networking-overview?tabs=redhat

 3-4.管理タブ

VMの管理系のオプション設定です。今回は詳細は割愛しますが、「自動シャットダウン」設定は指定した時刻になると自動的にVMを停止してくれるので、常にVMを起動しておく必要がないのであれば設定しましょう。

 3-5.監視タブ

VM監視のオプション設定です。こちらも今回詳細は割愛します。「ブート診断」はOSの起動ログがAzurePortal上から確認できますので、なるべく有効にしておきましょう。

 3-6.詳細タブ

こちらも今回詳細は割愛します。今回のような検証用途であればデフォルトで特に問題ありません。

4.「確認及び作成」をクリックすると確認画面が表示されるので、問題がなければ「作成」をクリック
※2~3分程度でVMが作成できます。

5.リソースグループを見てみると、VMと関連リソースが作成されています。

作成した仮想マシンへの接続

作成したVMに接続してみましょう。
1.VMのリソースをクリックします。
 ※「状態」が「実行中」でないと接続できません。もし停止中の場合は「開始」ボタンを押して起動しましょう。

2.「接続」をクリックし、「RDPファイルのダウンロード」をクリックします

3.ダウンロードしたRDPファイルをダブルクリックします

4.警告が表示れるので、IPアドレスが正しいことを確認して「接続」をクリックします

 ※先ほど作成したパブリックIPのIPアドレスが表示されていることが確認できますね。

5.資格情報の入力を求められるので、VM作成時に指定したパスワードを入力して「OK」をクリック

6.警告が表示されるので、「はい」をクリック

7.コマンドプロンプトからホスト名が正しいこととパブリックIPアドレスが正しいことが確認できました

8.VMは起動している分だけ課金されるため、使い終わったら停止または削除しておきましょう
※コストについて
https://learn.microsoft.com/ja-jp/azure/virtual-machines/cost-optimization-plan-to-manage-costs

最後に

これでVM作成から接続までできました。非常にお手軽に作成することができますが、コストやセキュリティには注意をしたいですね。
使ったら停止を心がけましょう。

ARMテンプレート情報

本日使用したVM(関連リソース含む)のARMテンプレートです。
※こちらに使用方法の記載があります。
https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/templates/quickstart-create-templates-use-the-portal

Paramter.json
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"virtualMachines_test20240415_VM_name": {
"value": null
},
"networkInterfaces_test20240415_vm369_name": {
"value": null
},
"publicIPAddresses_test20240415_VM_ip_name": {
"value": null
},
"virtualNetworks_test20240415_VM_vnet_name": {
"value": null
},
"networkSecurityGroups_test20240415_VM_nsg_name": {
"value": null
}
}
}
template.json
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"virtualMachines_test20240415_VM_name": {
"defaultValue": "test20240415-VM",
"type": "String"
},
"networkInterfaces_test20240415_vm369_name": {
"defaultValue": "test20240415-vm369",
"type": "String"
},
"publicIPAddresses_test20240415_VM_ip_name": {
"defaultValue": "test20240415-VM-ip",
"type": "String"
},
"virtualNetworks_test20240415_VM_vnet_name": {
"defaultValue": "test20240415-VM-vnet",
"type": "String"
},
"networkSecurityGroups_test20240415_VM_nsg_name": {
"defaultValue": "test20240415-VM-nsg",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2023-09-01",
"name": "[parameters('networkSecurityGroups_test20240415_VM_nsg_name')]",
"location": "japaneast",
"properties": {
"securityRules": [
{
"name": "default-allow-rdp",
"id": "[resourceId('Microsoft.Network/networkSecurityGroups/securityRules', parameters('networkSecurityGroups_test20240415_VM_nsg_name'), 'default-allow-rdp')]",
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
"properties": {
"protocol": "TCP",
"sourcePortRange": "",
"destinationPortRange": "3389",
"sourceAddressPrefix": "
",
"destinationAddressPrefix": "",
"access": "Allow",
"priority": 1000,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRanges": [],
"sourceAddressPrefixes": [],
"destinationAddressPrefixes": []
}
}
]
}
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2023-09-01",
"name": "[parameters('publicIPAddresses_test20240415_VM_ip_name')]",
"location": "japaneast",
"sku": {
"name": "Standard",
"tier": "Regional"
},
"properties": {
"ipAddress": "20.243.60.161",
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Static",
"idleTimeoutInMinutes": 4,
"ipTags": []
}
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2023-09-01",
"name": "[parameters('virtualNetworks_test20240415_VM_vnet_name')]",
"location": "japaneast",
"properties": {
"addressSpace": {
"addressPrefixes": [
"10.0.0.0/16"
]
},
"subnets": [
{
"name": "default",
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworks_test20240415_VM_vnet_name'), 'default')]",
"properties": {
"addressPrefix": "10.0.0.0/24",
"delegations": [],
"privateEndpointNetworkPolicies": "Disabled",
"privateLinkServiceNetworkPolicies": "Enabled"
},
"type": "Microsoft.Network/virtualNetworks/subnets"
}
],
"virtualNetworkPeerings": [],
"enableDdosProtection": false
}
},
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2023-03-01",
"name": "[parameters('virtualMachines_test20240415_VM_name')]",
"location": "japaneast",
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaces_test20240415_vm369_name'))]"
],
"properties": {
"hardwareProfile": {
"vmSize": "Standard_DS1_v2"
},
"additionalCapabilities": {
"hibernationEnabled": false
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-datacenter-gensecond",
"version": "latest"
},
"osDisk": {
"osType": "Windows",
"name": "[concat(parameters('virtualMachines_test20240415_VM_name'), '_OsDisk_1_3ce90b09e1c848e78e8f92370e86606e')]",
"createOption": "FromImage",
"caching": "ReadWrite",
"managedDisk": {
"id": "[resourceId('Microsoft.Compute/disks', concat(parameters('virtualMachines_test20240415_VM_name'), '_OsDisk_1_3ce90b09e1c848e78e8f92370e86606e'))]"
},
"deleteOption": "Delete"
},
"dataDisks": [],
"diskControllerType": "SCSI"
},
"osProfile": {
"computerName": "[parameters('virtualMachines_test20240415_VM_name')]",
"adminUsername": "AzureUser",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"patchSettings": {
"patchMode": "AutomaticByOS",
"assessmentMode": "ImageDefault",
"enableHotpatching": false
},
"enableVMAgentPlatformUpdates": false
},
"secrets": [],
"allowExtensionOperations": true,
"requireGuestProvisionSignal": true
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
},
"securityType": "TrustedLaunch"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaces_test20240415_vm369_name'))]",
"properties": {
"deleteOption": "Detach"
}
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true
}
}
}
},
{
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
"apiVersion": "2023-09-01",
"name": "[concat(parameters('networkSecurityGroups_test20240415_VM_nsg_name'), '/default-allow-rdp')]",
"dependsOn": [
"[resourceId('Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroups_test20240415_VM_nsg_name'))]"
],
"properties": {
"protocol": "TCP",
"sourcePortRange": "
",
"destinationPortRange": "3389",
"sourceAddressPrefix": "",
"destinationAddressPrefix": "
",
"access": "Allow",
"priority": 1000,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRanges": [],
"sourceAddressPrefixes": [],
"destinationAddressPrefixes": []
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2023-09-01",
"name": "[concat(parameters('virtualNetworks_test20240415_VM_vnet_name'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_test20240415_VM_vnet_name'))]"
],
"properties": {
"addressPrefix": "10.0.0.0/24",
"delegations": [],
"privateEndpointNetworkPolicies": "Disabled",
"privateLinkServiceNetworkPolicies": "Enabled"
}
},
{
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2023-09-01",
"name": "[parameters('networkInterfaces_test20240415_vm369_name')]",
"location": "japaneast",
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIPAddresses_test20240415_VM_ip_name'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworks_test20240415_VM_vnet_name'), 'default')]",
"[resourceId('Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroups_test20240415_VM_nsg_name'))]"
],
"kind": "Regular",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"id": "[concat(resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaces_test20240415_vm369_name')), '/ipConfigurations/ipconfig1')]",
"etag": "W/"8579fa60-c8ad-402f-96e1-efc01686ff68"",
"type": "Microsoft.Network/networkInterfaces/ipConfigurations",
"properties": {
"provisioningState": "Succeeded",
"privateIPAddress": "10.0.0.4",
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIPAddresses_test20240415_VM_ip_name'))]",
"properties": {
"deleteOption": "Detach"
}
},
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworks_test20240415_VM_vnet_name'), 'default')]"
},
"primary": true,
"privateIPAddressVersion": "IPv4"
}
}
],
"dnsSettings": {
"dnsServers": []
},
"enableAcceleratedNetworking": true,
"enableIPForwarding": false,
"disableTcpStateTracking": false,
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroups_test20240415_VM_nsg_name'))]"
},
"nicType": "Standard",
"auxiliaryMode": "None",
"auxiliarySku": "None"
}
}
]
}

Discussion