0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure の 無料クレジット枠サブスクではH100 クォータで詰まった話&作業メモ(TRELLIS.2に挑む)

0
Last updated at Posted at 2026-06-04

この記事は何か

Azureの初月の無料クレジット枠を使い VM で TRELLIS.2 を動かそうとして、最終的に H100 のクォータが通らず失敗した ときの作業メモです。

結論から書くと、無料クレジットのサブスクリプションでは NCads H100 v5 Series のクォータ増加が承認されませんでした。

VM の作り方を間違えたというより、サブスクリプション種別の制限に引っかかった形です。

この記事では、実際にやった VM 作成、SSH 接続、TRELLIS の準備、H100 へのリサイズ、クォータ申請、失敗確認、後始末までを残します。

やりたかったこと

やりたかったのはシンプルです。

Azure 上に GPU VM を立てて、Microsoft の TRELLIS.2 を動かしたい。

TRELLIS.2 は image-to-3D 系のモデルです。ローカルで軽く試せるかと思ったら、要求される GPU の性能がかなり高いです。

今回の目標 VM はこれでした。

Standard_NC40ads_H100_v5

Japan East でこの VM を 1 台使うには、少なくとも以下のクォータが必要でした。

NCads H100 v5 Series: 40 cores

最初から H100 VM を作ると高いので、まずは CPU VM を作って、SSH や Ubuntu の準備だけ済ませてから GPU VM にリサイズする方針にしました。

今回の VM 設定

最初に作った CPU VM は、GPU 実行用ではなく下準備用です。

項目 設定
リソースグループ rg-trellis-test
VM 名 vm-trellis-a10-01
リージョン Japan East
可用性ゾーン Zone 1
イメージ Ubuntu Server 22.04 LTS x64 Gen2
アーキテクチャ x64
認証方式 SSH 公開キー
管理ユーザー azureuser
OS ディスク 128GB 以上
ディスク種別 Standard SSD または Premium SSD
Public IP Standard

実際には、Japan East の容量やクォータ都合で VM サイズ選びに何度か失敗しました。

特に注意した点はこの 2 つです。

  • Bps_v2 / Bpls_v2 系は Arm64 なので、x64 Ubuntu とは合わない
  • Azure Portal に SKU が見えていても、実際に作れるとは限らない

1. Azure にログインする

まず Azure CLI でログインします。

az login

ブラウザが開いて Azure アカウントでログインします。

このあと実行する az コマンドは、このログイン中のサブスクリプションに対して実行されます。

2. 変数を設定する

毎回長い名前を書くのが面倒なので、PowerShell の変数に入れておきました。

$VMRG="rg-trellis-test"
$LOCATIONLOCATION="japaneast"
$VM_NAME="vm-trellis-a10-01"
$ADMIN_USER="azureuser"
$VMIMAGE="Ubuntu2204"

それぞれの意味は以下です。

変数 意味
$VMRG リソースグループ名
$LOCATION Azure リージョン
$VM_NAME VM 名
$ADMIN_USER SSH ログイン用ユーザー名
$VMIMAGE VM に入れる OS イメージ

3. リソースグループを作る

az group create `
  --name $VMRG `
  --location $LOCATIONLOCATION

リソースグループは、VM、ディスク、NIC、Public IP などをまとめる入れ物です。

検証用ならリソースグループを分けておくと、最後にまとめて消せます。

4. CPU VM を作る

最終的に使った CPU VM 作成コマンドはこの形です。

az vm create `
  --resource-group $VMRG `
  --name $VM_NAME `
  --location $LOCATIONLOCATION `
  --zone 1 `
  --image Ubuntu2204 `
  --size Standard_D2s_v3 `
  --admin-username $ADMIN_USER `
  --generate-ssh-keys `
  --os-disk-size-gb 128 `
  --storage-sku StandardSSD_LRS `
  --public-ip-sku Standard

この VM でやることは、あくまで下準備です。

  • SSH できるか確認する
  • Ubuntu の基本パッケージを入れる
  • TRELLIS / TRELLIS.2 のリポジトリを clone する

CUDA や GPU 依存のセットアップは、CPU VM ではやらない方針にしました。そこで詰まっても意味が薄いからです。

コマンドの主な意味

オプション 意味
--resource-group VM を置くリソースグループ
--name VM 名
--location リージョン
--zone 1 可用性ゾーン 1 に配置
--image Ubuntu2204 Ubuntu 22.04 を使用
--size Standard_D2s_v3 VM サイズ
--admin-username SSH ログインユーザー
--generate-ssh-keys SSH キーを自動生成
--os-disk-size-gb 128 OS ディスク容量
--storage-sku StandardSSD_LRS Standard SSD を使用
--public-ip-sku Standard Standard Public IP を使用

5. VM 作成で実際に踏んだエラー

最初は Standard_D4s_v5 を使おうとしました。

az vm create `
  --resource-group $VMRG `
  --name $VM_NAME `
  --location $LOCATIONLOCATION `
  --image $VMIMAGE `
  --size Standard_D4s_v5 `
  --admin-username $ADMIN_USER `
  --generate-ssh-keys `
  --os-disk-size-gb 512 `
  --storage-sku Premium_LRS `
  --security-type Standard `
  --public-ip-sku Standard

これは失敗しました。

SkuNotAvailable

意味としては、Japan East でその VM サイズが今は使えない、ということです。

次に Standard_B4ps_v2 も試しました。

az vm create `
  --resource-group $VMRG `
  --name $VM_NAME `
  --location $LOCATIONLOCATION `
  --image $VMIMAGE `
  --size Standard_B4ps_v2 `
  --admin-username $ADMIN_USER `
  --generate-ssh-keys `
  --os-disk-size-gb 512 `
  --storage-sku Premium_LRS `
  --security-type Standard `
  --public-ip-sku Standard

これも失敗しました。

Cannot create a VM of size 'Standard_B4ps_v2' because this VM size only supports a CPU Architecture of 'Arm64',
but an image or disk with CPU Architecture 'x64' was given.

Standard_B4ps_v2 は Arm64 VM でした。
一方、指定した Ubuntu イメージは x64 です。

ここで学んだことは単純で、VM サイズと OS イメージの CPU アーキテクチャは揃える必要があります。

6. Public IP を確認する

VM が作れたら、SSH するために Public IP を確認します。

az vm show `
  --resource-group $VMRG `
  --name $VM_NAME `
  --show-details `
  --query publicIps `
  --output tsv

--query publicIps で Public IP だけを取り出しています。

7. SSH で VM に入る

ssh azureuser@<public-ip>

<public-ip> は前のコマンドで出た IP に置き換えます。

初回接続時に fingerprint の確認が出たら yes で進めます。

8. Ubuntu 側の基本セットアップ

VM に入ったら、まず apt の情報を更新します。

sudo apt update

次に、最低限必要になりそうなツールを入れます。

sudo apt install -y git git-lfs wget curl build-essential ninja-build ffmpeg libgl1 libglib2.0-0

入れているものの意味は以下です。

パッケージ 何に使うか
git GitHub からコードを取得する
git-lfs 大きいモデルファイルなどを扱う
wget, curl ファイル取得
build-essential C/C++ ビルド用
ninja-build ビルドツール
ffmpeg 画像・動画処理
libgl1, libglib2.0-0 画像処理系ライブラリの依存

Git LFS も有効化します。

git lfs install

9. TRELLIS を clone する

TRELLIS 1 を使う場合。

git clone --recurse-submodules https://github.com/microsoft/TRELLIS.git

TRELLIS.2 を使う場合。

git clone -b main https://github.com/microsoft/TRELLIS.2.git --recursive

--recurse-submodules--recursive は、サブモジュールも一緒に取得するための指定です。

今回は CPU VM なので、ここまでにしました。

セットアップスクリプトは GPU VM にしてから実行する予定でした。

10. VM から抜ける

exit

SSH セッションを終了します。

11. VM を deallocate する

使い終わったら、VM を割り当て解除します。

az vm deallocate `
  --resource-group $VMRG `
  --name $VM_NAME

ここは重要です。

Azure VM は「停止」と「割り当て解除」が別です。
compute 課金を止めたい場合は、deallocated にする必要があります。

状態確認はこのコマンドです。

az vm get-instance-view `
  --resource-group $VMRG `
  --name $VM_NAME `
  --query "instanceView.statuses[?starts_with(code, 'PowerState/')].displayStatus" `
  --output tsv

期待する表示はこれです。

VM deallocated

12. H100 VM にリサイズしようとした

CPU VM を作ったあと、H100 VM に変更しようとしました。

az vm resize `
  --resource-group $VMRG `
  --name $VM_NAME `
  --size Standard_NC40ads_H100_v5

結果は失敗です。

Operation could not be completed as it results in exceeding approved StandardNCadsH100v5Family Cores quota.

Current Limit: 0
Current Usage: 0
Additional Required: 40
New Limit Required: 40

つまり、Japan East の StandardNCadsH100v5Family クォータが 0 なので、H100 VM を作れません。

Standard_NC40ads_H100_v5 は 40 vCPU の VM なので、最低でも 40 cores のクォータが必要でした。

13. H100 クォータを申請する

Azure Portal の「クォータ」から以下を申請しました。

項目
サービス Service and subscription limits / Quotas
デプロイモデル Resource Manager
リージョン Japan East
シリーズ NCads H100 v5 Series
要求値 40 cores
対象 VM Standard_NC40ads_H100_v5

Portal 上では Standard NCads H100 v5 Family という名前ではなく、NCads H100 v5 Series と表示されていました。

14. Quota API で申請結果を確認する

Portal だけだと理由が分かりにくかったので、Quota API でも確認しました。

まず現在のサブスクリプション ID を取得します。

$SUB = az account show --query id -o tsv

Japan East の Compute クォータを見る scope を作ります。

$SCOPE = "/subscriptions/$SUB/providers/Microsoft.Compute/locations/japaneast"

クォータ申請履歴を取得します。

az rest --method get --url "https://management.azure.com$SCOPE/providers/Microsoft.Quota/quotaRequests?api-version=2023-02-01"

結果として、以下のような失敗が確認できました。

{
  "error": {
    "code": "QuotaNotAvailableForResource",
    "message": "Request failed."
  },
  "message": "Request failed.",
  "provisioningState": "Failed"
}

この時点で、単なる入力ミスではなく、対象リソースのクォータ増加が使えない状態だと分かりました。

15. サポートに問い合わせた

Azure サポートにも問い合わせました。

回答の要旨は以下です。

NCads H100 v5 Series は需要が非常に高いため、
無料サブスクリプションでは可用性が制限されている。

そのため、NCads H100 v5 Series の増加要求を承認できない。

利用したい場合は、従量課金制サブスクリプションを作成し、
そのサブスクリプションから改めてクォータ増加リクエストを行う必要がある。

つまり、今回の失敗理由はコマンドのミスではなく、サブスクリプション種別の制限でした。

16. 使わないリソースを片付ける

検証が終わったら、不要なリソースは削除します。

全部まとめて消すなら、リソースグループごと削除します。

az group delete --name rg-trellis-test

これで以下がまとめて消えます。

  • VM
  • OS ディスク
  • NIC
  • Public IP
  • NSG
  • その他関連リソース

未接続ディスクだけ消す場合は、この形です。

az disk delete `
  --resource-group rg-trellis-test `
  --name "<所有者が - のディスク名>" `
  --yes

Azure Portal のディスク一覧で所有者が - になっているものは、どの VM にも接続されていないディスクです。

VM 作成失敗や作り直しの途中で残ることがあります。
未接続ディスクも課金対象なので、不要なら削除します。

まとめ

今回やったことは以下です。

  1. Azure で CPU VM を作成した
  2. SSH 接続した
  3. Ubuntu に基本ツールを入れた
  4. TRELLIS / TRELLIS.2 のリポジトリを clone した
  5. H100 VM へリサイズしようとした
  6. H100 ファミリのクォータ 0 で失敗した
  7. クォータ申請した
  8. 無料クレジット枠サブスクでは H100 クォータが承認されなかった

最終的な結論はこれです。

Azure の 無料クレジット枠のサブスクリプションでは、
NCads H100 v5 Series のクォータ増加は承認されなかった。

TRELLIS.2 を Azure で動かしたい場合は、最初から以下を検討した方がよさそうです。

  • 従量課金制サブスクリプションを使う
  • H100 / A100 のクォータが取れるリージョンを確認する
  • Azure 以外の GPU レンタルサービスを使う
  • TRELLIS.2 ではなく、より軽い TRELLIS 1 や別モデルを試す

今回の一番大きい学びは、GPU VM は「SKU が見えている」だけでは使えないということです。

必要なのは、VM サイズ、リージョン容量、ファミリ別クォータ、リージョン合計 vCPU、そしてサブスクリプション種別の全部でした。

検討するなら(次のステップ)

今回の用途(TRELLIS.2などの重量級AIモデルのテスト)であれば、Azureにこだわらず以下のGPUクラウドを検討するのが現実的です。

  • 最安重視:Vast.ai
    • 特徴: 個人や小規模データセンターが余らせているGPUをオークション形式で借りるP2Pスタイル
    • メリット: とにかく時間あたりの単価が圧倒的に安い
    • 注意点: ホストの都合で突然インスタンスが停止するリスク(プリエンプティブ)があるため、使い捨ての実験環境向き
  • 安さと使いやすさのバランス:RunPod
    • 特徴: AI開発者に今一番人気のあるGPUクラウド。UIが非常に洗練されている
    • メリット: Jupyter NotebookやWebUIへの接続テンプレートが豊富で、立ち上げまでが爆速
    • 注意点: 完全にデータセンター品質の「Secure Cloud」を選ぶと、Vast.aiよりは少し高くなる
  • 安定・企業寄り:Lambda Labs
    • 特徴: 大手AIスタートアップや研究機関も愛用する、信頼のデータセンター品質
    • メリット: H100やA100などのハイエンドGPUが、メガクラウドよりはるかに安価で安定して動く
    • 注意点: 人気すぎてインスタンスの空きがないという別格の壁がある(空いてたらラッキー)
  • Azure / AWS / GCP(3大メガクラウド)
    • 特徴: エンタープライズ向けの巨大インフラ
    • 結論: 今回のような「ちょっと個人で試したい」用途では、単価が高すぎる上にクォータ制限の壁が厚いので、後回しでOK
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?