Microsoft Azureで仮想マシンをazコマンドで作成する方法をまとめます。「仮想マシン クイックスタート azコマンド編 (1/2)」で紹介した手法は、仮想ネットワークやセキュリティグループを明示指定せずに自動的されたデフォルト設定を利用したものですが、今回は自動生成に頼らずに構築する方法を説明します。
リソースグループの作成
以下のコマンドでリソースグループを作成します。
az group create --name myResourceGroup --location japaneast
仮想ネットワークの作成
以下のコマンドで仮想ネットワークを作成します。
az network vnet create \ -g MyResourceGroup \ -n MyVnet \ --address-prefix 172.16.0.0/16 \ --subnet-name MySubnet \ --subnet-prefix 172.16.0.0/24
ネットワークセキュリティグループの作成
以下のコマンドでセキュリティグループを作成します。
az network nsg create -g MyResourceGroup -n MyNsg
デフォルト設定のセキュリティグループが許可するトラフィックは以下コマンドで確認できます。
az network nsg show -g MyResourceGroup -n MyNsg
JSON形式は人間には読みづらく成形しなければ情報を把握しづらいでしょう。もし、成形が手間ならば、GUIを使うのもひとつの手段です。GUIは大量設定には向かないですが、情報の把握には非常に優れています。以下スクリーンショットがデフォルト設定のセキュリティグループです。Azure内の仮想ネットワークと仮想ロードバランサのみ接続を許可します。
ネットワークセキュリティグループの編集
以下のコマンドでセキュリティグループを更新します。103.5.140.140からのRDPを許可する設定例は以下の通りです。
az network nsg rule create \ --resource-group MyResourceGroup \ --nsg-name MyNsg \ --name MyNsgRuleRdp \ --priority 100 \ --destination-port-ranges 3389 \ --source-address-prefixes 103.5.140.140/32 \ --access Allow \ --protocol Tcp
作成されたセキュリティグループのルールを確認する例は以下の通りです。なお、デフォルト設定として作成されるAllowVnetInBound, AllowAzureLoadBalancerInBoundはaz network nsg rule showコマンドを使用した場合は表示されません。
az network nsg rule show \ --resource-group MyResourceGroup \ --nsg-name MyNsg \ --name MyNsgRuleRdp
パブリックIPアドレスの作成
以下のコマンドでパブリックIPアドレスを作成します。なお、このコマンドで作成されるパブリックIPアドレスのSKUは”Basic”と呼ばれる廉価なサービスで、商用に耐えられる機能は備えていません。また、この時点ではパブリックIPアドレスは割り当てられず、仮想マシン起動のタイミングで割り当てられます。
az network public-ip create -g MyResourceGroup -n MyIp
仮想NICの作成
以下のコマンドで仮想NICを作成します。
az network public-ip create -g MyResourceGroup -n MyIp az network nic create \ -g MyResourceGroup \ --vnet-name MyVnet \ --subnet MySubnet \ -n MyNic \ --ip-forwarding true \ --public-ip-address MyIp \ --network-security-group MyNsg
仮想マシンの作成
以下のコマンドで仮想マシンを作成します。「仮想マシン クイックスタート azコマンド編 (1/2)」と異なり、–nicsオプションを指定すると前述の操作で作成した仮想NICを割り当てる事ができます。なお、仮想NICはセキュリティグループやパブリックIPアドレスの設定と紐づいているため、セキュリティグループやパブリックIPアドレスを指定する必要はありません(指定するとazコマンドはvalidation errorを返します)。
az vm create \ --resource-group myResourceGroup \ --name Windows \ --image Win2019Datacenter \ --admin-username azureuser \ --admin-password P@ssw0rd1234 \ --nics MyNic
実行例は以下の通りです。仮想マシンに割り当てられたグローバルIPアドレスは後の操作で使用しますので、メモに控えましょう。
なお、前述の通り、パブリックIPアドレスのSKUが”Basic”である場合は、商用に耐えられるサービスレベルではございません。そのため、”Basic”ではなく”Standard”を推奨する旨の警告が表示されます。
admin@mac19 doc % az vm create \ --resource-group myResourceGroup \ --name Windows \ --image Win2019Datacenter \ --public-ip-sku Standard \ --admin-username azureuser \ --admin-password P@ssw0rd1234 \ --nics MyNic It is recommended to use parameter "--public-ip-sku Standard" to create new VM with Standard public IP. Please note that the default public IP used for VM creation will be changed from Basic to Standard in the future { "fqdns": "", "id": "/subscriptions/2e2f81a9-b030-410f-9784-c582580c932e/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/Windows", "location": "japaneast", "macAddress": "00-22-48-68-79-13", "powerState": "VM running", "privateIpAddress": "172.16.0.4", "publicIpAddress": "20.89.52.78", "resourceGroup": "myResourceGroup", "zones": "" }
ログイン確認
リモートデスクトップを起動し「グローバルIPアドレス」「ユーザー名」「パスワード」を入力します。
パスワード認証に成功し、リモートデスクトップ接続できた事を確認します。
リソースグループの削除
リソースグループを削除します。
az group delete --name myResourceGroup --no-wait