演習 - VM を適切なサイズに変更する

完了

仮想マシンのサイズは、予定の作業に合ったものにする必要があります。 メモリの大きさや CPU が適切でない VM では、負荷を処理できなくなることや、動作が遅すぎて実用的ではなくなることがあります。

定義済みの VM サイズ

仮想マシンを作成するときに、Azure から仮想マシンで利用できる CPU、GPU、メモリなど、VM に割り当てられるコンピューティング リソースの量を決定する "VM サイズ" の値を指定できます。

Azure では、予想される使用量に基づいて選択できる、Linux および Windows 用の定義済みの VM サイズのセットが定義されています。

Type サイズ 説明
汎用 Dsv3、Dv3、DSv2、Dv2、DS、D、Av2、A0-7 CPU とメモリのバランスがとれています。 開発/テスト環境や、小中規模のアプリケーションとデータ ソリューションに最適です。
コンピューティング最適化 Fs、F メモリに対する CPU の比が大きくなっています。 トラフィックが中程度のアプリケーション、ネットワーク アプライアンス、バッチ処理に適しています。
メモリ最適化 Esv3、Ev3、M、GS、G、DSv2、DS、Dv2、D コアに対するメモリの比が大きくなっています。 リレーショナル データベース、中から大規模のキャッシュ、およびインメモリ分析に適しています。
ストレージ最適化 Ls 高いディスク スループットと IO。 ビッグ データ、SQL、および NoSQL のデータベースに最適です。
GPU 最適化 NV、NC 負荷の大きいグラフィックスのレンダリングやビデオ編集に特化した VM です。
高性能 H、A8-11 オプションで高スループットのネットワーク インターフェイス (RDMA) を備えた、最も強力な CPU VM です。

使用可能なサイズは、VM を作成するリージョンに基づいて変わります。 vm list-sizes コマンドを使用して、使用可能なサイズのリストを取得することができます。 Azure Cloud Shell に次のコマンドを入力します。

az vm list-sizes --location eastus --output table

eastus に対する応答の要約を次に示します。

  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
                 2          2048  Standard_B1ms                         1           1047552                    4096
                 2          1024  Standard_B1s                          1           1047552                    2048
                 4          8192  Standard_B2ms                         2           1047552                   16384
                 4          4096  Standard_B2s                          2           1047552                    8192
                 8         16384  Standard_B4ms                         4           1047552                   32768
                16         32768  Standard_B8ms                         8           1047552                   65536
                 4          3584  Standard_DS1_v2                       1           1047552                    7168
                 8          7168  Standard_DS2_v2                       2           1047552                   14336
                16         14336  Standard_DS3_v2                       4           1047552                   28672
                32         28672  Standard_DS4_v2                       8           1047552                   57344
                64         57344  Standard_DS5_v2                      16           1047552                  114688
        ....
                64       3891200  Standard_M128-32ms                  128           1047552                 4096000
                64       3891200  Standard_M128-64ms                  128           1047552                 4096000
                64       3891200  Standard_M128ms                     128           1047552                 4096000
                64       2048000  Standard_M128s                      128           1047552                 4096000
                64       1024000  Standard_M64                         64           1047552                 8192000
                64       1792000  Standard_M64m                        64           1047552                 8192000
                64       2048000  Standard_M128                       128           1047552                16384000
                64       3891200  Standard_M128m                      128           1047552                16384000

VM の作成中にサイズを指定する

VM を作成したときにサイズを指定しなかったため、Azure によって既定の汎用のサイズが選択されました。 しかし、サイズは vm create コマンドの一部として --size パラメーターを使用して指定できます。 たとえば、次のコマンドを使用して 2 コアの仮想マシンを作成します。

az vm create \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM2 \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --verbose \
    --size "Standard_DS2_v2"

警告

ご利用のサブスクリプション レベルに応じて、作成できるリソース数に制限が課され、さらにそのリソースの合計サイズも制限されます。 クォータの制限は、サブスクリプションの種類とリージョンによって異なります。 Azure CLI を使用すると、この制限を超えたときにクォータ超過エラーで通知されます。 自分の有料サブスクリプションでこのエラーが発生した場合は、有料サブスクリプションに関連付けられている制限 (最大 10,000 個までの vCPU) を引き上げるよう、無料のオンライン要求を通じて申請することができます。

既存の VM のサイズを変更する

ワークロードが変化した場合や、作成時に正しくサイズが設定されなかった場合に、既存の VM のサイズを変更することもできます。 最初に作成した SampleVM という VM を使用してみましょう。 サイズ変更を要求する前に、VM が属しているクラスターで希望のサイズが使用できるかどうかを確認する必要があります。 次の vm list-vm-resize-options コマンドを使用できます。

az vm list-vm-resize-options \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --output table

このコマンドは、リソース グループ内で使用可能なすべてのサイズ構成のリストを返します。 目的のサイズがクラスターでは使用できないものの、リージョンでは使用 "できる" 場合は、VM を割り当て解除することができます。 このコマンドは、実行中の VM を停止し、リソースを失うことなく、現在のクラスターからその VM を削除します。 その後、サイズを変更すると、そのサイズ構成が利用可能な新しいクラスターに VM が再作成されます。

Note

Microsoft Learn サンドボックスは、いくつかの VM サイズに制限されます。

VM のサイズを変更するために、vm resize コマンドを使用します。 たとえば、多くの場合は、VM で実行したいタスクに対して、VM のパフォーマンスが不足していることがわかります。 2つのvCoreと8GBのメモリを備えたD2s_v3にバンプすることができます。 Cloud Shell に次のコマンドを入力します。

az vm resize \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --size Standard_D2s_v3

このコマンドで VM のリソースを削減するには数分かかります。完了すると、新しい JSON 構成が返されます。