適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット
Azure 仮想マシンは、完全に構成可能で柔軟なコンピューティング環境を提供します。 このチュートリアルでは、VM サイズや VM イメージの選択、VM のデプロイなどの Azure 仮想マシンの展開に関する基本事項について説明します。 学習内容は次のとおりです。
- VM を作成し接続する
- VM イメージを選択して使用する
- 特定の VM サイズを確認して使用する
- VM のサイズを変更する
- VM の状態を表示して理解する
このチュートリアルでは、Azure Cloud Shell で CLI を使用します。このバージョンは常に更新され最新になっています。
CLI をローカルにインストールして使用する場合、このチュートリアルでは、Azure CLI バージョン 2.0.30 以降を実行していることが要件です。 バージョンを確認するには、az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
リソース グループの作成
以下では、環境変数を宣言します。 デプロイごとに一意である必要があるリソース名には、ランダムなサフィックスが追加されます。
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="eastus2"
export MY_RESOURCE_GROUP_NAME="myResourceGroupVM$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --___location $REGION
結果:
{
"id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx",
"___location": "eastus2",
"name": "myResourceGroupVMxxx",
"properties": {
"provisioningState": "Succeeded"
}
}
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 仮想マシンの前にリソース グループを作成する必要があります。 この例では、myResourceGroupVM という名前のリソース グループが eastus2 リージョンに作成されます。
このチュートリアル全体で示しているように、VM の作成時または変更時にリソース グループを指定します。
仮想マシンの作成
仮想マシンを作成するときに、オペレーティング システム イメージ、ディスクのサイズ、管理者資格情報など、いくつかの選択肢があります。 次の例では、SUSE Linux Enterprise Server (SLES) を実行する myVM という名前の VM を作成します。 azureuser という名前のユーザー アカウントが VM に作成され、既定のキーの場所 (~/.ssh) に SSH キーが存在しない場合は SSH キーが生成されます。
export MY_VM_NAME="myVM$RANDOM_SUFFIX"
az vm create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_VM_NAME \
--image SuseSles15SP5 \
--public-ip-sku Standard \
--admin-username azureuser \
--generate-ssh-keys
VM の作成には数分かかることがあります。 VM が作成されると、Azure CLI で VM に関する以下の情報が出力されます。
publicIpAddress
を書き留めます。このアドレスを使用して仮想マシンにアクセスできます。
{
"fqdns": "",
"id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx/providers/Microsoft.Compute/virtualMachines/myVMxxx",
"___location": "eastus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "52.174.34.95",
"resourceGroup": "myResourceGroupVMxxx"
}
VM への接続
Azure Cloud Shell またはローカル コンピューターで、SSH を使用して VM に接続できるようになりました。 サンプルの IP アドレスは、前の手順で記録した publicIpAddress
に置き換えてください。
VM に接続するには、まず Azure CLI を使用してパブリック IP アドレスを取得します。 次のコマンドを実行して、IP アドレスを変数に格納します。 export IP_ADDRESS=$(az vm show --show-details --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query publicIps --output tsv)
IP アドレスを取得したら、SSH を使用して VM に接続します。 次のコマンドは、 azureuser
アカウントと取得した IP アドレスを使用して VM に接続します。 ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
VM イメージについて
Azure Marketplace には、VM の作成に使用できる多くのイメージが用意されています。 前の手順では、SUSE イメージを使用して仮想マシンが作成されました。 この手順では、Azure CLI を使用して Marketplace で Ubuntu のイメージを検索し、このイメージを使用して 2 台目の仮想マシンをデプロイします。
az vm image list コマンドを使用して、よく使用されるイメージのリストを表示します。
az vm image list --output table
このコマンドの出力では、Azure にあるよく使用される VM イメージが返されます。
Architecture Offer Publisher Sku Urn UrnAlias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 debian-10 Debian 10 Debian:debian-10:10:latest Debian latest
x64 flatcar-container-linux-free kinvolk stable kinvolk:flatcar-container-linux-free:stable:latest Flatcar latest
x64 opensuse-leap-15-3 SUSE gen2 SUSE:opensuse-leap-15-3:gen2:latest openSUSE-Leap latest
x64 RHEL RedHat 7-LVM RedHat:RHEL:7-LVM:latest RHEL latest
x64 sles-15-sp3 SUSE gen2 SUSE:sles-15-sp3:gen2:latest SLES latest
x64 0001-com-ubuntu-server-jammy Canonical 18.04-LTS Canonical:UbuntuServer:18.04-LTS:latest UbuntuLTS latest
x64 WindowsServer MicrosoftWindowsServer 2022-Datacenter MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest Win2022Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition-core MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest Win2022AzureEditionCore latest
x64 WindowsServer MicrosoftWindowsServer 2019-Datacenter MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest Win2019Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest Win2016Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest Win2012R2Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest Win2012Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2008-R2-SP1 MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest Win2008R2SP1 latest
--all
パラメーターを追加すると、リスト全体を確認できます。 また、--publisher
か –-offer
を使用してリストをフィルタリングすることも可能です。 この例では、0001-com-ubuntu-server-jammy に一致するプランがある、OpenLogic により発行されたすべてのイメージを表示するように、リストをフィルター処理します。
az vm image list --offer 0001-com-ubuntu-server-jammy --publisher Canonical --all --output table
部分出力の例:
Architecture Offer Publisher Sku Urn Version
-------------- --------------------------------- ----------- --------------- ------------------------------------------------------------------------ ---------------
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202204200 22.04.202204200
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205060 22.04.202205060
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205280 22.04.202205280
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206040 22.04.202206040
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206090 22.04.202206090
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206160 22.04.202206160
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206220 22.04.202206220
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202207060 22.04.202207060
注意
Canonical は、使用するオファー名を最新バージョンで変更しました。 Ubuntu 20.04 より前のオファー名は UbuntuServer です。 Ubuntu 20.04 ではオファー名は 0001-com-ubuntu-server-focal
であり、Ubuntu 22.04 では 0001-com-ubuntu-server-jammy
です。
特定のイメージを使用して VM をデプロイするために、 [Urn] 列の値をメモに記録します。この値は、イメージを識別するための、発行元、プラン、SKU、およびオプションのバージョン番号で構成されます。 イメージを指定するときにイメージのバージョン数を latest
で置き換えることもできます。このようにすると、ディストリビューションの最新バージョンが選択されます。 この例では、--image
パラメーターを使用して、Ubuntu 22.04 の最新バージョンを指定します。
export MY_VM2_NAME="myVM2$RANDOM_SUFFIX"
az vm create --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM2_NAME --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest --generate-ssh-keys
VM のサイズについて
仮想マシンのサイズにより、CPU、GPU、メモリなど、仮想マシンで利用できるコンピューティング リソースの量が決定されます。 仮想マシンのサイズは、予定のワーク ロードに合ったものにする必要があります。 ワークロードが増えた場合は既存の仮想マシンのサイズを変更できます。
VM サイズ
次の表は、ユース ケース別にサイズを分類したものです。
タイプ | 説明 |
---|---|
汎用 | CPU とメモリのバランスがとれています。 開発/テスト環境や、小中規模のアプリケーションとデータ ソリューションに最適です。 |
コンピューティングの最適化 | メモリに対する CPU の比が大きくなっています。 トラフィックが中程度のアプリケーション、ネットワーク アプライアンス、バッチ処理に適しています。 |
メモリの最適化 | コアに対するメモリの比が大きくなっています。 リレーショナル データベース、中から大規模のキャッシュ、およびインメモリ分析に適しています。 |
ストレージの最適化 | 高いディスク スループットと IO。 ビッグ データ、SQL、および NoSQL のデータベースに最適です。 |
GPU | 負荷の高いグラフィック レンダリングやビデオ編集に特化した VM です。 |
高性能 | オプションで高スループットのネットワーク インターフェイス (RDMA) を備えた、最も強力な CPU VM です。 |
使用可能な VM サイズを確認する
特定の地域で利用可能な VM サイズのリストを確認するには、az vm list-sizes コマンドを使用します。
az vm list-sizes --___location $REGION --output table
部分出力の例:
MaxDataDiskCount MemoryInMb Name NumberOfCores OsDiskSizeInMb ResourceDiskSizeInMb
------------------ ------------ ---------------------- --------------- ---------------- ----------------------
4 8192 Standard_D2ds_v4 2 1047552 76800
8 16384 Standard_D4ds_v4 4 1047552 153600
16 32768 Standard_D8ds_v4 8 1047552 307200
32 65536 Standard_D16ds_v4 16 1047552 614400
32 131072 Standard_D32ds_v4 32 1047552 1228800
32 196608 Standard_D48ds_v4 48 1047552 1843200
32 262144 Standard_D64ds_v4 64 1047552 2457600
4 8192 Standard_D2ds_v5 2 1047552 76800
8 16384 Standard_D4ds_v5 4 1047552 153600
16 32768 Standard_D8ds_v5 8 1047552 307200
32 65536 Standard_D16ds_v5 16 1047552 614400
32 131072 Standard_D32ds_v5 32 1047552 1228800
32 196608 Standard_D48ds_v5 48 1047552 1843200
32 262144 Standard_D64ds_v5 64 1047552 2457600
32 393216 Standard_D96ds_v5 96 1047552 3686400
サイズを指定して VM を作成する
上記の VM 作成の例ではサイズを指定しなかったため、サイズは既定のものになっています。 VM のサイズは、作成時に --size
パラメーターを指定して az vm create を使用することで指定できます。
export MY_VM3_NAME="myVM3$RANDOM_SUFFIX"
az vm create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_VM3_NAME \
--image SuseSles15SP5 \
--size Standard_D2ds_v4 \
--generate-ssh-keys
VM のサイズを変更する
デプロイ後に VM のサイズを変更して、リソースの割り当てを増減できます。 az vm show を使用して、VM の現在のサイズを表示できます。
az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query hardwareProfile.vmSize
VM のサイズを変更する前に、現在の Azure クラスターで目的のサイズを利用可能であるか確認します。 az vm list-vm-resize-options コマンドでは、サイズのリストが返されます。
az vm list-vm-resize-options --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query [].name
目的のサイズが使用可能な場合、VM は電源オン状態からサイズ変更できますが、操作中に再起動されます。 az vm resize コマンドを使用してサイズ変更を実行します。
az vm resize --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --size Standard_D4s_v3
現在のクラスターで目的のサイズを使用できない場合は、サイズ変更操作を実行する前に VM の割り当てを解除する必要があります。 az vm deallocate コマンドを使用して、VM を停止し割り当てを解除します。 VM の電源がオンになると、一時ディスク上のすべてのデータが削除される可能性があることに注意してください。 また、静的な IP アドレスを使用している場合を除き、パブリック IP アドレスが変更されます。 割り当ての解除後、サイズ変更を行うことができます。
サイズの変更後、VM を起動できます。
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME
VM の電源状態
Azure VM は、次のいずれかの電源状態になります。 この状態は、ハイパーバイザーから見た VM の現在の電源状態を表しています。
電源状態
電源状態 | 説明 |
---|---|
開始中 | 仮想マシンが起動中であることを示します。 |
実行中 | 仮想マシンが実行中であることを示します。 |
停止中 | 仮想マシンが停止中であることを示します。 |
停止済み | 仮想マシンが停止されていることを示します。 仮想マシンが停止済みの状態でも、コンピューティング料金は発生します。 |
割り当て解除中 | 仮想マシンの割り当てが解除中であることを示します。 |
割り当て解除済み | 仮想マシンがハイパーバイザーから削除されているものの、コントロール プレーンでは使用可能であることを示します。 割り当て解除済み状態の仮想マシンでは、コンピューティング料金は発生しません。 |
- | 仮想マシンの電源状態が不明であることを示します。 |
電源の状態を確認する
特定の VM の状態を取得するには、az vm get-instance-view コマンドを使用します。 必ず仮想マシンとリソース グループの有効な名前を指定してください。
az vm get-instance-view \
--name $MY_VM_NAME \
--resource-group $MY_RESOURCE_GROUP_NAME \
--query instanceView.statuses[1] --output table
出力:
Code Level DisplayStatus
------------------ ------- ---------------
PowerState/running Info VM running
サブスクリプション内のすべての VM の電源状態を取得するには、statusOnly パラメーターを true に設定して Virtual Machines - List All API を使用します。
管理タスク
仮想マシンのライフサイクルでは、各種の管理タスクを実行する必要がある場合があります (仮想マシンの起動、停止、削除など)。 また、何度も行う作業や複雑な作業は、スクリプトを作成して自動化したい場合もあるでしょう。 日常的な管理タスクの多くは、Azure CLI を使ってコマンド ラインやスクリプトから実行できます。
IP アドレスを取得する
仮想マシンのプライベート IP アドレスとパブリック IP アドレスを取得するには、次のコマンドを使用します。
az vm list-ip-addresses --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --output table
仮想マシンの停止
az vm stop --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME
仮想マシンの起動
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME
VM リソースの削除
VM を削除する方法によっては、VM リソースのみが削除され、ネットワークとディスク リソースは削除されないことがあります。 既定の動作を変更して、VM を削除するときに他のリソースを削除することができます。 詳細については、VM およびアタッチされたリソースの削除に関するページを参照してください。
リソース グループを削除すると、VM、仮想ネットワーク、ディスクなどのリソース グループに含まれているリソースもすべて削除されます。 --no-wait
パラメーターは、操作の完了を待たずにプロンプトに制御を戻します。 --yes
パラメーターは、追加のプロンプトを表示せずにリソースの削除を確定します。
次のステップ
このチュートリアルでは、次のような基本的な VM の作成と管理を実行する方法について説明しました。
- VM を作成し接続する
- VM イメージを選択して使用する
- 特定の VM サイズを確認して使用する
- VM のサイズを変更する
- VM の状態を表示して理解する
次のチュートリアルに進み、VM ディスクについて確認してください。