AzureのLinux VM作成で使うイメージURNをaz vm image listで調べる方法|Publisher・Offer・SKU・Versionの構造と実践手順

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Azure > AzureのLinux VM作成で使うイメージURNをaz vm image listで調べる方法|Publisher・Offer・SKU・Versionの構造と実践手順
「az vm createを実行しようとしたら、--imageに何を指定すればいいのか分からない。'UbuntuLTS'を使ったらエラーになった」——Azure CLI 2.x以降でよく見る落とし穴です。

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を作成できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

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で複数リージョンにVMを展開するスクリプトを書くときに不要なリージョン別分岐を避けられます。

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

Rocky LinuxのPublisher名はコンソーシアムの登録IDであり非常に長い文字列です。スクリプト内でスペルミスを防ぐため、一度 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

Ubuntu 22.04(Jammy)は 0001-com-ubuntu-server-jammy、Ubuntu 24.04は ubuntu-24_04-lts を使います。旧形式の UbuntuServer はすでに廃止されており、az vm create --image UbuntuLTS のようなエイリアスも使用不可になっています。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、20年以上の運用経験を持つ現役エンジニアが基礎から教えます。
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

第1世代VMには 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

RHEL 9でLVM構成を使うなら 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

このURNをそのまま 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
CentOS Stream系のイメージは2024年以降、Azure MarketplaceへのCentOS 8・Stream 8提供が終了しています。CentOSを使い続けている場合は Rocky Linux 9 または RHEL 9 への移行を検討してください。

トラブルシュート——よくあるエラーと対処

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を指定したが意図しないバージョンが使われた

latestaz 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 ...
AzureのイメージURNは list-publishers → list-offers → list-skus → vm image list --all の4段階で階層的に絞り込みます。スクリプトでURNをハードコードせず、--query "[-1].urn" で最新URNを動的取得する設計にしておくと、Versionが変わっても自動的に追従できます。AWSのAMI IDと違いリージョン間で使い回せる点はAzureの強みです。

次に読む記事
・AzureのVNetとLinux VMをazコマンドで構築する手順|リソースグループ作成からSSH接続まで
・AzureのLinux VMにcloud-initで初期設定を自動化する方法|azコマンドのcustom-dataとYAML設計の実践手順
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、20年以上の運用経験を持つ現役エンジニアが基礎から教えます。
Azure対応セミナーの詳細を見る >>

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。