チュートリアル:Azure CLI を使用した Linux VM の作成と管理

注意

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。

適用対象: ✔️ 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 で CentOS のイメージを検索し、このイメージを使用して 2 台目の仮想マシンをデプロイします。

az vm image list コマンドを使用して、よく使用されるイメージのリストを表示します。

az vm image list --output table

このコマンドの出力では、Azure にあるよく使用される VM イメージが返されます。

Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
x64             CentOS                        OpenLogic               7.5                                 OpenLogic:CentOS:7.5:latest                                                     CentOS                   latest
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             UbuntuServer                  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 を使用してリストをフィルタリングすることも可能です。 この例では、CentOS に一致するプランがある、OpenLogic により発行されたすべてのイメージを表示するように、リストをフィルター処理します。

az vm image list --offer CentOS --publisher OpenLogic --all --output table

部分出力の例:

Architecture    Offer                      Publisher    Sku              Urn                                                       Version
--------------  -------------------------  -----------  ---------------  --------------------------------------------------------  ---------------
x64             CentOS                     OpenLogic    8_2              OpenLogic:CentOS:8_2:8.2.2020111800                       8.2.2020111800
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020062401                  8.2.2020062401
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020100601                  8.2.2020100601
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020111801                  8.2.2020111801
x64             CentOS                     OpenLogic    8_3              OpenLogic:CentOS:8_3:8.3.2020120900                       8.3.2020120900
x64             CentOS                     OpenLogic    8_3              OpenLogic:CentOS:8_3:8.3.2021020400                       8.3.2021020400
x64             CentOS                     OpenLogic    8_3-gen2         OpenLogic:CentOS:8_3-gen2:8.3.2020120901                  8.3.2020120901
x64             CentOS                     OpenLogic    8_3-gen2         OpenLogic:CentOS:8_3-gen2:8.3.2021020401                  8.3.2021020401
x64             CentOS                     OpenLogic    8_4              OpenLogic:CentOS:8_4:8.4.2021071900                       8.4.2021071900
x64             CentOS                     OpenLogic    8_4-gen2         OpenLogic:CentOS:8_4-gen2:8.4.2021071901                  8.4.2021071901
x64             CentOS                     OpenLogic    8_5              OpenLogic:CentOS:8_5:8.5.2022012100                       8.5.2022012100
x64             CentOS                     OpenLogic    8_5              OpenLogic:CentOS:8_5:8.5.2022101800                       8.5.2022101800
x64             CentOS                     OpenLogic    8_5-gen2         OpenLogic:CentOS:8_5-gen2:8.5.2022012101                  8.5.2022012101

注意

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 パラメーターを使用して、CentOS 8.5 の最新バージョンを指定します。

az vm create --resource-group myResourceGroupVM --name myVM2 --image OpenLogic:CentOS:8_5: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 ディスクについて確認してください。