AzureのVM作成にはイメージURN(Uniform Resource Name)の指定が必要です。URNは Publisher:Offer:SKU:Version の4要素で構成されており、PublisherやSKUのスペルを誤ったり廃止済みの値を使うと「Image not found」エラーになります。AWSのAMI IDとは管理方法が大きく異なるため、AWS経験者ほどつまずきやすい部分です。
この記事では az vm image list 系コマンドを使って、Ubuntu・RHEL・Rocky LinuxのイメージURNをステップごとに確定する方法を解説します。Azure CLI 2.65.0・japaneastリージョンで動作確認した実機出力を掲載しています。
この記事のポイント
・az vm image list-publishers / list-offers / list-skusで段階的にURNを絞り込める
・Ubuntu 22.04のOfferは"0001-com-ubuntu-server-jammy"で旧名"UbuntuServer"は廃止済み
・--allオプションでバージョン全件取得し[-1]で最新Versionを確認するのが現場の定石
・az vm createの--imageにURN全体を渡してVMを作成できる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
AWSとAzureでVMイメージの指定方法がどう違うのか
AWSでEC2インスタンスを起動する場合、AMI ID(例:ami-0b7546e839d7ace12)を指定します。AMI IDはリージョンごとに異なり、aws ec2 describe-imagesで検索します。同じOSイメージでも東京リージョンとオレゴンリージョンでIDが変わるため、マルチリージョン展開のスクリプトではリージョン別のID対応表が必要になります。AzureのMarketplaceイメージは URN(Uniform Resource Name) で識別します。URNは
Publisher:Offer:SKU:Version の4フィールド構造で、リージョンをまたいでも同じURNで参照できます(ただし提供リージョンの制限あり)。| 項目 | AWS(AMI) | Azure(URN) |
|---|---|---|
| 識別子の形式 | ami-xxxxxxxx |
Publisher:Offer:SKU:Version |
| リージョンをまたいだ使い回し | 不可(リージョンごとにIDが異なる) | 可(同じURNで複数リージョンに展開できる) |
| 最新版の指定 | フィルターで最新AMIを検索する | VersionフィールドにlatestをURLで指定できる |
| 一覧取得コマンド | aws ec2 describe-images |
az vm image list |
AzureのイメージURNの4要素を理解する
URNは コロン区切りの4フィールド で構成されます。例:
Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:22.04.202404100・Publisher: イメージを提供するベンダー名。Canonical(Ubuntu)、RedHat(RHEL)、erockyenterprisesoftwarefoundationinc1653071250513(Rocky Linux)など
・Offer: ディストリビューションのグループ名。Canonicalでは「UbuntuServer」(旧形式・廃止)から「0001-com-ubuntu-server-jammy」(22.04)のように命名規則が変わっている
・SKU: バージョン・世代の区別。
22_04-lts-gen2(第2世代VM向け)、22_04-lts(第1世代VM向け)など。新規VM作成では第2世代(gen2)を選ぶ・Version: ビルド番号。
22.04.202404100のような具体的な値か、latestを指定するOfferとSKUは時代ごとに命名パターンが変わるため、「以前使っていたURNが急に通らなくなった」というトラブルが起きやすいです。次節の手順で毎回確認する習慣をつけてください。
Publisher一覧から対象のベンダーを探す
1. az vm image list-publishersでPublisher名を確認する
まず対象ディストリビューションのPublisher名を正確に確認します。# Canonicalを検索する(Ubuntuのベンダー) $ az vm image list-publishers \ --location japaneast \ -o table | grep -i canonical Location Name ---------- --------- japaneast Canonical # RedHatを検索する(RHELのベンダー) $ az vm image list-publishers \ --location japaneast \ -o table | grep -i redhat Location Name ---------- ------- japaneast RedHat # Rocky Linuxを検索する $ az vm image list-publishers \ --location japaneast \ -o table | grep -i rocky Location Name ---------- ------------------------------------------------------- japaneast erockyenterprisesoftwarefoundationinc1653071250513
az vm image list-publishers で取得した値をそのまま変数にセットして使うことをお勧めします。2. az vm image list-offersでOfferを確認する
Publisher名が分かったら、Offerの一覧を取得します。# CanonicalのOfferを確認する $ az vm image list-offers \ --publisher Canonical \ --location japaneast \ -o table Location Name ---------- ----------------------------------------- japaneast 0001-com-ubuntu-confidential-vm-focal japaneast 0001-com-ubuntu-confidential-vm-jammy japaneast 0001-com-ubuntu-pro-focal japaneast 0001-com-ubuntu-pro-jammy japaneast 0001-com-ubuntu-server-focal japaneast 0001-com-ubuntu-server-jammy japaneast ubuntu-24_04-lts japaneast ubuntu-24_10-daily
0001-com-ubuntu-server-jammy、Ubuntu 24.04は ubuntu-24_04-lts を使います。旧形式の UbuntuServer はすでに廃止されており、az vm create --image UbuntuLTS のようなエイリアスも使用不可になっています。
Azure対応セミナーの詳細を見る >>
SKUを確認してイメージを特定する
1. Ubuntu 22.04 LTSのSKUを確認する
# Ubuntu 22.04のSKUを確認する $ az vm image list-skus \ --publisher Canonical \ --offer 0001-com-ubuntu-server-jammy \ --location japaneast \ -o table Location Name ---------- --------------------- japaneast 22_04-lts japaneast 22_04-lts-gen2
22_04-lts、第2世代VMには 22_04-lts-gen2 を指定します。新規VM作成では基本的に gen2 を選んでください。第2世代VMはUEFIブートとNVMe対応で、ディスクスループットが向上します。2. RHEL 9のSKUを確認する
# RHELのOfferを確認する $ az vm image list-offers \ --publisher RedHat \ --location japaneast \ -o table | grep "^japaneast" japaneast RHEL japaneast RHEL-SAP-APPS japaneast RHEL-SAP-HA # RHEL 9系のSKUを確認する $ az vm image list-skus \ --publisher RedHat \ --offer RHEL \ --location japaneast \ -o table | grep "^japaneast" japaneast 9-lvm japaneast 9-lvm-gen2 japaneast 9_0 japaneast 9_0-gen2 japaneast 9_4 japaneast 9_4-gen2
9-lvm-gen2(ローリング更新)、特定マイナーバージョンを固定したいなら 9_4-gen2(RHEL 9.4固定)を選びます。本番環境での再現性を重視するなら特定バージョンのSKUを選ぶほうが安全です。3. Rocky Linux 9のSKUを確認する
# Rocky LinuxのPublisher名を変数に格納する $ ROCKY_PUB=$(az vm image list-publishers \ --location japaneast \ -o tsv | grep -i rocky | awk '{print $2}') # Rocky LinuxのOfferを確認する $ az vm image list-offers \ --publisher "$ROCKY_PUB" \ --location japaneast \ -o table Location Name ---------- -------------- japaneast Rocky-x86_64 # Rocky Linux 9のSKUを確認する $ az vm image list-skus \ --publisher "$ROCKY_PUB" \ --offer Rocky-x86_64 \ --location japaneast \ -o table | grep "^japaneast" japaneast 9-base japaneast 9-lvm
最新Versionを確認してURNを確定する
1. az vm image listで最新Versionを取得する
SKUが決まったら、利用可能な最新VersionをVersion番号で確認します。# Ubuntu 22.04 LTS Gen2の最新バージョンをテーブルで確認する $ az vm image list \ --publisher Canonical \ --offer 0001-com-ubuntu-server-jammy \ --sku 22_04-lts-gen2 \ --location japaneast \ --all \ --query "[-1]" \ -o table Architecture Offer Publisher Sku Urn Version -------------- ------------------------------- ----------- --------------- ------------------------------------------------------------------------------- ---------------- x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts-gen2 Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:22.04.202404100 22.04.202404100
--all オプションなしでは人気イメージのキャッシュリストしか返りません。確実に最新版を確認するには --all を付けてください。--query "[-1]" はJMESPathで末尾(最新)の1件を取り出しています。2. URN全体をワンライナーで取得する
スクリプトからURNを動的に取得する場合は以下の形式が便利です。# Ubuntu 22.04 LTS Gen2の最新URNをワンライナーで取得する $ az vm image list \ --publisher Canonical \ --offer 0001-com-ubuntu-server-jammy \ --sku 22_04-lts-gen2 \ --location japaneast \ --all \ --query "[-1].urn" \ -o tsv Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:22.04.202404100 # RHEL 9 LVM Gen2の最新URNを取得する $ az vm image list \ --publisher RedHat \ --offer RHEL \ --sku 9-lvm-gen2 \ --location japaneast \ --all \ --query "[-1].urn" \ -o tsv RedHat:RHEL:9-lvm-gen2:9.4.2024060609
az vm create --image に渡せます。イメージURNを使ってaz vm createでVMを作成する
1. URNを指定してUbuntu 22.04のVMを作成する
Publisher・Offer・SKU・Versionが確定したら、az vm create に渡します。# リソースグループを作成する $ az group create \ --name rg-image-test \ --location japaneast # Ubuntu 22.04 LTS Gen2のVMを作成する(URN指定) $ az vm create \ --resource-group rg-image-test \ --name vm-ubuntu2204 \ --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:22.04.202404100 \ --size Standard_B2s \ --admin-username azureuser \ --generate-ssh-keys \ --location japaneast { "fqdns": "", "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-image-test/providers/Microsoft.Compute/virtualMachines/vm-ubuntu2204", "location": "japaneast", "macAddress": "00-0D-3A-xx-xx-xx", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "20.xxx.xxx.xx", "resourceGroup": "rg-image-test", "zones": "" }
2. URNをスクリプトで動的に取得してaz vm createに渡す
Versionをハードコードせず、実行時に最新を取得する書き方です。本番自動化で再利用しやすい形式です。# 最新URNを変数に格納してVMを作成する LATEST_URN=$(az vm image list \ --publisher Canonical \ --offer 0001-com-ubuntu-server-jammy \ --sku 22_04-lts-gen2 \ --location japaneast \ --all \ --query "[-1].urn" \ -o tsv) az vm create \ --resource-group rg-image-test \ --name vm-ubuntu-dynamic \ --image "$LATEST_URN" \ --size Standard_B2s \ --admin-username azureuser \ --generate-ssh-keys \ --location japaneast
--all の取得に時間がかかる(30秒程度)ため、パイプライン実行では事前にURNをキャッシュしておく設計が現実的です。よく使うLinuxイメージURN一覧
現時点(2026-09)でjapaneastリージョンで確認できる主要イメージのURNをまとめます。Versionは定期的に更新されるため、az vm image list --all --query "[-1].urn" で最新を確認してから使ってください。| ディストリビューション | Publisher | Offer | SKU |
|---|---|---|---|
| Ubuntu 22.04 LTS (Gen2) | Canonical |
0001-com-ubuntu-server-jammy |
22_04-lts-gen2 |
| Ubuntu 24.04 LTS (Gen2) | Canonical |
ubuntu-24_04-lts |
server-gen2 |
| RHEL 9 LVM (Gen2) | RedHat |
RHEL |
9-lvm-gen2 |
| RHEL 9.4 固定 (Gen2) | RedHat |
RHEL |
9_4-gen2 |
| Rocky Linux 9 (Gen2) | erockyenterprisesoftwarefoundationinc1653071250513 |
Rocky-x86_64 |
9-base |
トラブルシュート——よくあるエラーと対処
1. "The resource with ID was not found"が出る
PublisherまたはOfferのスペルが間違っているか、対象リージョンにそのイメージが提供されていない場合に発生します。az vm image list-publishers --location から手順を踏んで確認してください。リージョンによってはイメージが提供されていないケースがあります。2. "UbuntuLTS"や"UbuntuServer"エイリアスが通らない
Azure CLIのエイリアス(UbuntuLTS、UbuntuServer、Debian:debian-10等)はバージョンごとに廃止されています。エラーになったら本記事の手順でURNを直接確認して指定します。廃止エイリアスを使い続けるとCI/CDパイプラインが突然壊れるため、URN直接指定への切り替えを推奨します。3. latestを指定したが意図しないバージョンが使われた
latest は az vm create 実行時の最新ビルドを指します。CI/CDパイプラインで使うと実行タイミングによってバージョンが変わり、環境差異が生じます。本番環境では --query "[-1].urn" で取得した具体的なVersionを固定してください。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| Publisherを検索する | az vm image list-publishers --location japaneast -o table | grep -i キーワード |
| Offerを一覧表示する | az vm image list-offers --publisher Publisher名 --location japaneast -o table |
| SKUを一覧表示する | az vm image list-skus --publisher Publisher名 --offer Offer名 --location japaneast -o table |
| 最新VersionのURNを取得する | az vm image list --publisher P --offer O --sku S --location L --all --query "[-1].urn" -o tsv |
| URNを指定してVMを作成する | az vm create --image Publisher:Offer:SKU:Version --resource-group RG --name NAME ... |
--query "[-1].urn" で最新URNを動的取得する設計にしておくと、Versionが変わっても自動的に追従できます。AWSのAMI IDと違いリージョン間で使い回せる点はAzureの強みです。次に読む記事
・AzureのVNetとLinux VMをazコマンドで構築する手順|リソースグループ作成からSSH接続まで
・AzureのLinux VMにcloud-initで初期設定を自動化する方法|azコマンドのcustom-dataとYAML設計の実践手順
Azure対応セミナーの詳細を見る >>
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:AzureのLinux VMサイズを変更する方法|az vm resizeによるスケールアップと割り当て解除・データディスク上限の見極め
- この記事の属するカテゴリ:Azureへ戻る

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