この記事では、
az vm list-skus コマンドを使って Azure VM の SKU 一覧をリージョン別に取得・確認する方法を解説します。フィルタリングオプションで必要な情報だけを絞り込む手順、restrictions フィールドで可用性を確認するコツ、複数リージョン間での比較パターンまでを扱います。想定環境は Azure CLI 2.x 系(Ubuntu 24.04 LTS または WSL2 からの実行)です。この記事のポイント
・az vm list-skus --location で VM SKU をリージョン別に一覧取得できる
・--size オプションでシリーズ(D/E/F 等)を prefix 絞り込みできる
・restrictions フィールドが None でないSKUはそのリージョンで制限あり
・japaneast と japanwest で使えるSKUの世代・ゾーンが異なる点に注意
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Azure VM の「SKU」とは何か
SKU(Stock Keeping Unit)は Azure における VM の仕様——CPU 数・メモリ量・ディスク種別などを一意に識別する名称です。たとえばStandard_D4s_v5 は「汎用(D)・4vCPU・Premium SSD 対応(s)・第 5 世代(v5)」を表します。SKU 名の読み方は次のルールで構成されています。
・シリーズ名(D / E / F / B 等): 用途カテゴリ。D は汎用、E はメモリ最適化、F はコンピュート最適化
・vCPU 数: 名称中の数字部分(D4s_v5 → 4vCPU)
・サフィックス(s / a / d 等): s は Premium SSD 対応、a は AMD CPU、d はローカル NVMe 搭載
・バージョン(v3 / v5 等): ハードウェア世代。数字が大きいほど性能・コスト効率が向上
AWS でいえば EC2 のインスタンスタイプ(t3.medium / m7i.large 等)に相当します。ただし Azure はリージョンごとに提供される SKU が大きく異なる点が AWS との違いです。事前に
az vm list-skus で確認する習慣が、デプロイエラーを防ぐ近道です。AZ CLI で SKU 一覧を取得する基本手順
1. AZ CLI のバージョンとログインを確認する
まずaz コマンドが使える状態か確認します。az --version | head -3
azure-cli 2.65.0 core 2.65.0 telemetry 1.1.0
az login
az login --service-principal)を選択します。2. リージョンを指定して SKU 一覧を取得する
VM の SKU 一覧を取得するコマンドはaz vm list-skus です。リージョンを --location で必ず指定します(未指定では全リージョン分が返り、処理に数分かかります)。az vm list-skus \ --location japaneast \ --resource-type virtualMachines \ --output table
ResourceType Locations Name Zones Restrictions --------------- ----------- ---------------------- ------- ------------ virtualMachines japaneast Standard_B1ls 1,2,3 None virtualMachines japaneast Standard_B1ms 1,2,3 None virtualMachines japaneast Standard_D2s_v5 1,2,3 None virtualMachines japaneast Standard_D4s_v5 1,2,3 None virtualMachines japaneast Standard_E4s_v5 1,2,3 None
Zones 列は利用可能な可用性ゾーン番号、Restrictions 列は利用制限の有無を示します。None であれば制限なしで使えます。3. --size でシリーズを絞り込む
--size オプションにシリーズ名のプレフィックスを指定すると、部分一致で絞り込めます。# D シリーズ(汎用)だけを取得する az vm list-skus \ --location japaneast \ --resource-type virtualMachines \ --size Standard_D \ --output table
ResourceType Locations Name Zones Restrictions --------------- ----------- ---------------------- ------- ------------ virtualMachines japaneast Standard_D2s_v5 1,2,3 None virtualMachines japaneast Standard_D4s_v5 1,2,3 None virtualMachines japaneast Standard_D8s_v5 1,2,3 None virtualMachines japaneast Standard_D16s_v5 1,2,3 None virtualMachines japaneast Standard_D32s_v5 1,2,3 None
--size Standard_E に変えるだけです。restrictions フィールドで可用性を確認する
1. 制限なしの SKU だけを抽出する
--query オプションで JMESPath フィルタを使うと、制限のない SKU 名だけを素早く一覧化できます。az vm list-skus \ --location japaneast \ --resource-type virtualMachines \ --query "[?restrictions[0].reasonCode == null] | [].name" \ --output tsv | head -20
Standard_B1ls Standard_B1ms Standard_B2ms Standard_D2s_v5 Standard_D4s_v5 Standard_D8s_v5 Standard_E4s_v5
2. restrictions の読み方
restrictions フィールドに値が入っている場合、よく見られる理由コードは次の 2 つです。・NotAvailableForSubscription: サブスクリプション単位で制限あり。Azure ポータルからクォータ増加申請が必要
・AllocationFailed: リージョンの物理容量不足。別のリージョンまたは別の SKU へ変更する
特定の可用性ゾーンだけで制限がかかっている場合は
restrictions[].restrictionInfo.zones に該当ゾーン番号が記録されます。リージョン間でのスペック比較
1. japaneast と japanwest を並べて比較する
同一 SKU が複数リージョンで使えるか確認するには、それぞれのコマンドを実行して出力を突き合わせます。# 東日本 az vm list-skus \ --location japaneast \ --resource-type virtualMachines \ --size Standard_D4s_v5 \ --output table # 西日本 az vm list-skus \ --location japanwest \ --resource-type virtualMachines \ --size Standard_D4s_v5 \ --output table
2. AWS との違いを踏まえた選定の考え方
AWS でもaws ec2 describe-instance-types で同様の情報を取得できますが、Azure との主な違いは次の点です。・リージョン差異の大きさ: Azure は AWS より SKU のリージョン差が大きく、特に日本リージョン間(japaneast / japanwest)で提供世代が異なることがある
・ゾーン対応 SKU の明示: Azure は
Zones 列で対応ゾーンを明示しているため、ゾーン分散の設計前に事前確認しやすい・Burstable の位置付け: AWS T 系に相当する Azure B シリーズは開発・テスト向け。継続負荷の本番では D / E 系を使うのは両クラウド共通の考え方
Azure 環境に移行する際や Azure でのLinuxサーバー構築を体系的に学ぶ ときは、まずこの SKU 一覧確認を習慣化しておくと、構成設計の手戻りを大幅に減らせます。
トラブルシュート
「The requested VM size is not available」が出る場合
デプロイ時にこのエラーが出た場合、次の手順で原因を特定します。・原因1: そのリージョンで SKU 自体が提供されていない
az vm list-skus --location <リージョン> --resource-type virtualMachines --size <SKU名> を実行して出力が空なら、そのリージョンでは提供されていません。別リージョンか別 SKU に変更します。・原因2: サブスクリプション制限(NotAvailableForSubscription)
restrictions 列にこの値が記録されている場合は、Azure ポータルからサポートへクォータ増加申請を行います。・原因3: 指定ゾーンで SKU が使えない
Zones 列に 1 のみ記載されている SKU をゾーン 2 に配置しようとした場合もエラーになります。--zone パラメーターと Zones 列を照合して確認します。コマンド実行が遅い場合
--location を省略すると全リージョン分の SKU を取得するため数分かかります。また --resource-type virtualMachines を省くとディスクやネットワーク系 SKU も含まれて出力がさらに大きくなります。必ず --location と --resource-type をセットで指定してください。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| リージョン別の VM SKU 一覧を取得 | az vm list-skus --location japaneast --resource-type virtualMachines --output table |
| シリーズ(D/E/F 等)で絞り込む | az vm list-skus --location japaneast --resource-type virtualMachines --size Standard_D --output table |
| 制限なし(restrictions=None)の SKU だけ抽出 | az vm list-skus --location japaneast --resource-type virtualMachines --query "[?restrictions[0].reasonCode == null] | [].name" --output tsv |
| 西日本リージョンの同 SKU 可用性を確認 | az vm list-skus --location japanwest --resource-type virtualMachines --size Standard_D4s_v5 --output table |
| SKU 名を grep で素早く絞る | az vm list-skus --location japaneast --resource-type virtualMachines --output table | grep -i "Standard_E" |
az vm list-skus でリージョンの実態を確認する——この習慣をつけておくだけで、デプロイ時の「使えなかった」という手戻りをほぼゼロにできます。
>> Azure LinuxセミナーのLP(詳細・日程はこちら)
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:Azure DataBox Diskで大容量データをオンプレからクラウド移行する手順|azコマンドで転送を制御
- この記事の属するカテゴリ:Azureへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます