チュートリアル: Azure CLI を使用した Virtual Machine Scale Sets のディスクの作成および使用

Virtual Machine Scale Sets では、VM インスタンスのオペレーティング システム、アプリケーション、およびデータを格納するためにディスクを使用します。 スケール セットを作成および管理するときは、予測されるワークロードに適したディスクのサイズと構成を選択する必要があります。 このチュートリアルでは、VM ディスクの作成方法と管理方法について説明します。 このチュートリアルで学習する内容は次のとおりです。

  • OS ディスクと一時ディスク
  • データ ディスク
  • Standard ディスクと Premium ディスク
  • ディスクのパフォーマンス
  • データ ディスクの接続および準備

Azure サブスクリプションがない場合は、開始する前に無料アカウントを作成してください。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  • この記事では、Azure CLI のバージョン 2.0.29 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。

既定の Azure ディスク

スケール セットが作成またはスケーリングされると、2 つのディスクが各 VM インスタンスに自動的に接続されます。

オペレーティング システム ディスク - オペレーティング システム ディスクは、最大 2 TB までサイズを変更でき、VM インスタンスのオペレーティング システムをホストします。 OS ディスクには既定で /dev/sda というラベルが付けられています。 OS ディスクのディスク キャッシュ構成は、OS パフォーマンスの向上のために最適化されています。 この構成では、OS ディスクでアプリケーションやデータをホストしないでください。 アプリケーションとデータには、この記事の後半で説明するデータ ディスクを使用してください。

一時ディスク - 一時ディスクは、VM インスタンスと同じ Azure ホストに配置されているソリッド ステート ドライブを使用します。 一時ディスクは高パフォーマンスのディスクであり、一時的なデータ処理などの操作に使用される場合があります。 ただし、VM インスタンスを新しいホストに移動すると、一時ディスクに格納されているデータはすべて削除されます。 一時ディスクのサイズは VM インスタンスのサイズによって決まります。 一時ディスクには /dev/sdb のラベルが付けられており、 /mnt というマウント ポイントがあります。

Azure データ ディスク

アプリケーションをインストールしたりデータを保存したりする必要がある場合は、データ ディスクをさらに追加できます。 耐久性と応答性の高いデータ ストレージが望ましい状況では、必ず、データ ディスクを使用する必要があります。 各データ ディスクの最大容量は 4 TB です。 VM インスタンス サイズによって、接続できるデータ ディスクの数が決まります。 VM vCPU ごとに、2 つのデータ ディスクを仮想マシンあたり絶対最大数の 64 個のディスクまで接続できます。

VM ディスクの種類

Azure では、2 種類のディスクを提供しています。

Standard ディスク

Standard Storage では、HDD が使用されており、コスト効率とパフォーマンスに優れたストレージを提供します。 Standard ディスクは、コスト効率が重視される、開発およびテストのワークロードに最適です。

Premium ディスク

Premium ディスクは、SSD ベースの高性能で待機時間の短いディスクによってサポートされています。 これらのディスクは、運用ワークロードを実行している VM に適しています。 Premium Storage は、DS シリーズ、DSv2 シリーズ、GS シリーズ、FS シリーズの VM をサポートしています。 ディスク サイズを選択するときは、値を切り上げて 1 つ上の種類にします。 たとえば、ディスク サイズが 128 GB 未満の場合、ディスクの種類は P10 です。 ディスク サイズが 129 ~ 512 GB の場合、サイズは P20 です。 512 GB を超えた場合、サイズは P30 です。

ディスクを作成して接続する

ディスクは、スケール セットの作成時に作成および接続できます。また、既存のスケール セットに対してディスクを作成および接続することもできます。

API バージョン 2019-07-01 時点では、storageProfile.osDisk.diskSizeGb プロパティを使用して、Virtual Machine Scale Sets の OS ディスクのサイズを設定できます。 プロビジョニング後、領域全体を活用するために、ディスクの拡張またはパーティション再分割を行う必要がある場合があります。 OS でボリュームを拡張する方法の詳細については、Windows に関する記事または Linux に関する記事を参照してください。

スケール セットの作成時にディスクを接続する

重要

2023 年 11 月以降、PowerShell と Azure CLI を使用して作成された VM スケール セットは、オーケストレーション モードが指定されていない場合、既定でフレキシブル オーケストレーション モードになります。 この変更の詳細と実行する必要があるアクションについては、「VMSS PowerShell/CLI のお客様向けの重大な変更 - Microsoft Community Hub」を参照してください

まず、az group create コマンドでリソース グループを作成します。 この例では、myResourceGroup という名前のリソース グループが eastus リージョンに作成されます。

az group create --name myResourceGroup --location eastus

az vmss create コマンドを使用して、Virtual Machine Scale Sets を作成します。 次の例では、myScaleSet という名前のスケール セットを作成し、SSH キーを存在しない場合に生成します。 --data-disk-sizes-gb パラメーターを使用して 2 つのディスクを作成します。 1 つ目のディスクのサイズは 64 GB、2 つ目のディスクは 128 GB です。

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  --orchestration-mode Flexible \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 64 128

すべてのスケール セット リソースと VM インスタンスを作成して構成するには数分かかります。

既存のスケール セットにディスクを接続する

既存のスケール セットの各インスタンスに追加ディスクを接続することもできます。 前の手順で作成したスケール セットを使用して別のディスクを追加するには、az vmss disk attach を使用します。 次の例では、128 GB の追加ディスクを接続します。

az vmss disk attach \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --size-gb 128

また、スケール セット内の個々のインスタンスにデータ ディスクを追加したい場合は、az vm disk attach を使用します。

az vm disk attach \
  --vm-name myScaleSet_Instance1 \
  --resource-group myResourceGroup \
  --size-gb 30 \
  --name disk_name \
  --new

接続されているディスクの一覧表示

スケール セットに接続されているディスクに関する情報を表示するには、az vmss showvirtualMachineProfile.storageProfile.dataDisks に対するクエリを使います。

az vmss show \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --query virtualMachineProfile.storageProfile.dataDisks

ディスク サイズ、ストレージ層、および LUN (論理ユニット番号) に関する情報が表示されます。 次の出力例では、スケール セットに接続されている 3 つのデータ ディスクの詳細を出力します。

[
  {
    "additionalProperties": {},
    "caching": "None",
    "createOption": "Empty",
    "diskSizeGb": 64,
    "lun": 0,
    "managedDisk": {
      "additionalProperties": {},
      "storageAccountType": "StandardSSD_LRS"
    },
    "name": null
  },
  {
    "additionalProperties": {},
    "caching": "None",
    "createOption": "Empty",
    "diskSizeGb": 128,
    "lun": 1,
    "managedDisk": {
      "additionalProperties": {},
      "storageAccountType": "StandardSSD_LRS"
    },
    "name": null
  },
  {
    "additionalProperties": {},
    "caching": "None",
    "createOption": "Empty",
    "diskSizeGb": 128,
    "lun": 2,
    "managedDisk": {
      "additionalProperties": {},
      "storageAccountType": "StandardSSD_LRS"
    },
    "name": null
  }
]

ディスクを取り外す

特定のディスクが不要になったら、スケール セットから切断することができます。 ディスクは、スケール セット内のすべての VM インスタンスから削除されます。 スケール セットからディスクを切断するには、az vmss disk detach を使用し、ディスクの LUN を指定します。 LUN は、前のセクションの az vmss show の出力に表示されています。 次の例では、スケール セットから LUN 2 を切断します。

az vmss disk detach \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --lun 2

az vm disk detach を使用して、個々のインスタンスからディスクをデタッチすることもできます。

az vm disk detach \
  --vm-name myScaleSet_Instance1
  --name disk_name

リソースをクリーンアップする

スケール セットとディスクを削除するには、az group delete を使用して、リソース グループとそのすべてのリソースを削除します。 --no-wait パラメーターは、操作の完了を待たずにプロンプトに制御を戻します。 --yes パラメーターは、追加のプロンプトを表示せずにリソースの削除を確定します。

az group delete --name myResourceGroup --no-wait --yes

次のステップ

このチュートリアルでは、Azure CLI を使用してスケール セットのディスクを作成して使用する方法について学習しました。

  • OS ディスクと一時ディスク
  • データ ディスク
  • Standard ディスクと Premium ディスク
  • ディスクのパフォーマンス
  • データ ディスクの接続および準備

次のチュートリアルに進み、スケール セットの VM インスタンスにカスタム イメージを使用する方法を学習してください。