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 やモデルキャッシュも維持できる
🚀 実装ステップ
- GPU VM(Ubuntu + nvidia-docker)を構成
ollama serve
を systemd に登録- VM起動後すぐ使えるように準備(モデル事前Pull)
- VM起動/停止APIを
az vm start
/az vm deallocate
で管理 - 外部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 サービス設定
コメント