チュートリアル:Azure CLI を使用した Linux VM の作成と管理
適用対象: ✔️ 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 のインストールに関するページを参照してください。
リソース グループの作成
az group create コマンドを使用して、リソース グループを作成します。
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 仮想マシンの前にリソース グループを作成する必要があります。 この例では、myResourceGroupVM という名前のリソース グループが eastus2 リージョンに作成されます。
az group create --name myResourceGroupVM --location eastus2
このチュートリアル全体で示しているように、VM の作成時または変更時にリソース グループを指定します。
仮想マシンの作成
仮想マシンを作成するには、az vm create コマンドを使用します。
仮想マシンを作成するときに、オペレーティング システム イメージ、ディスクのサイズ、管理者資格情報など、いくつかの選択肢があります。 次の例では、SUSE Linux Enterprise Server (SLES) を実行する myVM という名前の VM を作成します。 VM には、azureuser という名前のユーザー アカウントが作成されます。また、既定のキーの場所 ( ~/.ssh) に SSH キーが存在しない場合は、SSH キーが生成されます。
az vm create \
--resource-group myResourceGroupVM \
--name myVM \
--image SuseSles15SP3 \
--public-ip-sku Standard \
--admin-username azureuser \
--generate-ssh-keys
VM の作成には数分かかることがあります。 VM が作成されると、Azure CLI で VM に関する以下の情報が出力されます。 publicIpAddress
を記録します。このアドレスは仮想マシンにアクセスするために使用できます。
{
"fqdns": "",
"id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "52.174.34.95",
"resourceGroup": "myResourceGroupVM"
}
VM への接続
Azure Cloud Shell またはローカル コンピューターで、SSH を使用して VM に接続できるようになりました。 サンプルの IP アドレスは、前の手順で記録した publicIpAddress
に置き換えてください。
ssh azureuser@52.174.34.95
VM にログインしたら、アプリケーションをインストールして構成できます。 作業が終了したら、通常どおり SSH セッションを閉じます。
exit
VM イメージについて
Azure Marketplace には、VM の作成に使用できる多くのイメージが用意されています。 前の手順では、Ubuntu のイメージを使用して仮想マシンを作成しました。 この手順では、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 の最新バージョンを指定します。
az vm create --resource-group myResourceGroupVM --name myVM2 --image Canonical:0001-com-ubnutu-server-jammy:22_04-lts:latest --generate-ssh-keys
VM のサイズについて
仮想マシンのサイズにより、CPU、GPU、メモリなど、仮想マシンで利用できるコンピューティング リソースの量が決定されます。 仮想マシンのサイズは、予定のワーク ロードに合ったものにする必要があります。 ワークロードが増えた場合は既存の仮想マシンのサイズを変更できます。
VM サイズ
次の表は、ユース ケース別にサイズを分類したものです。
Type | 説明 |
---|---|
汎用 | CPU とメモリのバランスがとれています。 開発/テスト環境や、小中規模のアプリケーションとデータ ソリューションに最適です。 |
コンピューティングの最適化 | メモリに対する CPU の比が大きくなっています。 トラフィックが中程度のアプリケーション、ネットワーク アプライアンス、バッチ処理に適しています。 |
メモリの最適化 | コアに対するメモリの比が大きくなっています。 リレーショナル データベース、中から大規模のキャッシュ、およびインメモリ分析に適しています。 |
ストレージの最適化 | 高いディスク スループットと IO。 ビッグ データ、SQL、および NoSQL のデータベースに最適です。 |
GPU | 負荷の高いグラフィック レンダリングやビデオ編集に特化した VM です。 |
高性能 | オプションで高スループットのネットワーク インターフェイス (RDMA) を備えた、最も強力な CPU VM です。 |
使用可能な VM サイズを確認する
特定の地域で利用可能な VM サイズのリストを確認するには、az vm list-sizes コマンドを使用します。
az vm list-sizes --location eastus2 --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 を使用することで指定できます。
az vm create \
--resource-group myResourceGroupVM \
--name myVM3 \
--image SuseSles15SP3 \
--size Standard_D2ds_v4 \
--generate-ssh-keys
VM のサイズを変更する
デプロイ後に VM のサイズを変更して、リソースの割り当てを増減できます。 VM の現在のサイズを表示するには、az vm show を使用します。
az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize
VM のサイズを変更する前に、現在の Azure クラスターで目的のサイズを利用可能であるか確認します。 az vm list-vm-resize-options コマンドでは、サイズのリストが返されます。
az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name
目的のサイズが使用可能な場合は電源を入れた状態で VM のサイズを変更できます。ただし、この操作中に再起動が行われます。 az vm resize コマンドを使用してサイズ変更を実行します。
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_D4s_v3
目的のサイズが現在のクラスターにない場合、サイズ変更を行うには VM の割り当てを解除する必要があります。 az vm deallocate コマンドを使用して、VM を停止し割り当てを解除します。 VM の電源を入れ直すと、一時ディスクのデータがすべて削除される可能性があることに注意してください。 また、静的な IP アドレスを使用している場合を除き、パブリック IP アドレスが変更されます。
az vm deallocate --resource-group myResourceGroupVM --name myVM
割り当ての解除後、サイズ変更を行うことができます。
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1
サイズの変更後、VM を起動できます。
az vm start --resource-group myResourceGroupVM --name myVM
VM の電源状態
Azure VM は、次のいずれかの電源状態になります。 この状態は、ハイパーバイザーから見た VM の現在の電源状態を表しています。
電源状態
電源状態 | 説明 |
---|---|
開始中 | 仮想マシンが起動中であることを示します。 |
実行中 | 仮想マシンが実行中であることを示します。 |
停止中 | 仮想マシンが停止中であることを示します。 |
停止済み | 仮想マシンが停止されていることを示します。 仮想マシンが停止済みの状態でも、コンピューティング料金は発生します。 |
割り当て解除中 | 仮想マシンの割り当てが解除中であることを示します。 |
割り当て解除済み | 仮想マシンがハイパーバイザーから削除されているものの、コントロール プレーンでは使用可能であることを示します。 割り当て解除済み状態の仮想マシンでは、コンピューティング料金は発生しません。 |
- | 仮想マシンの電源状態が不明であることを示します。 |
電源の状態を確認する
特定の VM の状態を取得するには、az vm get-instance-view コマンドを使用します。 必ず仮想マシンとリソース グループの有効な名前を指定してください。
az vm get-instance-view \
--name myVM \
--resource-group myResourceGroupVM \
--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 myResourceGroupVM --name myVM --output table
仮想マシンの停止
az vm stop --resource-group myResourceGroupVM --name myVM
仮想マシンの起動
az vm start --resource-group myResourceGroupVM --name myVM
VM リソースの削除
VM を削除する方法によっては、VM リソースのみが削除され、ネットワークとディスク リソースは削除されないことがあります。 既定の動作を変更して、VM を削除するときに他のリソースを削除することができます。 詳細については、VM およびアタッチされたリソースの削除に関するページを参照してください。
リソース グループを削除すると、VM、仮想ネットワーク、ディスクなどのリソース グループに含まれているリソースもすべて削除されます。 --no-wait
パラメーターは、操作の完了を待たずにプロンプトに制御を戻します。 --yes
パラメーターは、追加のプロンプトを表示せずにリソースの削除を確定します。
az group delete --name myResourceGroupVM --no-wait --yes
次のステップ
このチュートリアルでは、次のような基本的な VM の作成と管理を実行する方法について説明しました。
- VM を作成し接続する
- VM イメージを選択して使用する
- 特定の VM サイズを確認して使用する
- VM のサイズを変更する
- VM の状態を表示して理解する
次のチュートリアルに進み、VM ディスクについて確認してください。