Azure GPU使用 + LLMのオンデマンド起動 + コスト最小化

GPUを使いたいが、「使うときだけ自動で起動し、使っていないときは停止(≒費用がかからない)」というニーズに応える構成は、Azureの標準サービスだけでは難易度がやや高めですが、現実的なアプローチがあります。

Azure VM(Nシリーズ) + 外部からの起動スクリプト(最も現実的)

📌 要求の具体化

  • GPU搭載マシンで Ollama や LLM を動かしたい
  • 常時稼働ではなく、「リクエストがあったときだけ起動」
  • 使用していないときは自動停止 or スケール0
  • 最終的に月額コストを最小化したい

🔧 構成概要

  • GPU搭載の Azure VM(例:Standard_NC6s_v3)を用意
  • デフォルトでは VMは停止状態(課金なし)
  • 外部トリガー(LINE/n8n/API Gatewayなど)から「起動」
  • Ollama が Docker 自動起動で応答
  • 一定時間使用されなければ、自動で停止(スクリプト/cron)

✅ 利点

  • Azureの標準VM料金体系 → 停止中はストレージ課金のみ
  • GPU対応(T4, V100, A100など)柔軟に選べる
  • Ollama やモデルキャッシュも維持できる

🚀 実装ステップ

  1. GPU VM(Ubuntu + nvidia-docker)を構成
  2. ollama serve を systemd に登録
  3. VM起動後すぐ使えるように準備(モデル事前Pull)
  4. VM起動/停止APIを az vm start / az vm deallocate で管理
  5. 外部APIやn8nからこのAzure CLI/APIを呼び出す

⏱️ 自動停止(アイドル検知)

以下のような簡易スクリプトを cron に設定

if [ $(uptime -p | grep -c 'idle') -gt 0 ]; then
  az vm deallocate --name <vm-name> --resource-group <rg>
fi

✅ まとめ(現実的かつ安価)

項目推奨構成
起動時のみ費用発生✅ Azure VM + API起動 + 自動停止
GPU活用(Ollama/LLM)✅ NシリーズVM(例:NCasT4_v3
自動起動/停止✅ n8n or Pythonスクリプトで制御可能
ストレージコストのみ✅ VM停止中はディスク代のみ(数百円/月)

📦 その他(必要作業)

  • GPU VM の cloud-init スクリプト
  • az vm start / az vm deallocate を使った Webhook起動スクリプト
  • n8n フローで LINE/Slack → Azure VM 起動連携
  • Ollama 自動起動 systemd サービス設定

コメント

タイトルとURLをコピーしました