NemoClawをAzureで動かす理由

NemoClawをクラウド上で動かす選択肢としてAWSのEC2、GCPのCompute Engine、そしてMicrosoft Azureがあります。Azureを選ぶ理由として最も多いのは「既存の企業Azureテナントを活用できる」「Active DirectoryとEntra IDによるID管理が統合できる」「Microsoft 365・Teams・Azure OpenAI Serviceとのエコシステム相性が良い」の3点です。

NVIDIAとMicrosoftは長期的なパートナーシップを持っており、Azure上でのNIM(NVIDIA Inference Microservices)の動作も最適化されています。Azure Marketplace経由でNIM対応のVMイメージを取得できる点も利点です。

本ガイドはAzureの基本操作(Azureポータル・az CLI)の知識があることを前提とします。NemoClawは早期アルファ版であり、手順は正式リリース後に変更される可能性があります。

Azure GPU VMシリーズの選定

AzureのGPU対応VMは用途に応じて3シリーズに分かれます。NemoClawの推論ワークロードに合わせて適切なシリーズを選択してください。

シリーズ主なGPUNemoClawでの用途代表SKU目安時間料金
NDシリーズ H100 / A100 本番推論・Nemotron 120Bフル動作 ND H100 v5 $15〜30/時
NCシリーズ A100 / T4 中規模推論・Nano 30B / 検証環境 NC A100 v4 $4〜12/時
NVシリーズ RTX A5500 開発・デバッグ・小規模検証 NV36adms A10 v5 $1〜4/時

開発・検証環境から始める場合はNCシリーズのA100(24GBまたは80GB)が最もコストパフォーマンスに優れています。Nano 30Bモデルを全量ローカルで動かすには最低24GBのGPUメモリが必要です。

GPU VMのセットアップ手順

Azure CLIを使ったVM作成からNemoClawインストールまでの基本的な手順を示します。

GPU VMの作成

# リソースグループ作成
az group create --name nemoclaw-rg --location japaneast

# GPU VM作成(NC A100 v4シリーズ)
az vm create \
  --resource-group nemoclaw-rg \
  --name nemoclaw-vm \
  --image microsoft-dsvm:ubuntu-hpc:2204:latest \
  --size Standard_NC24ads_A100_v4 \
  --admin-username azureuser \
  --ssh-key-values ~/.ssh/id_rsa.pub \
  --os-disk-size-gb 512 \
  --data-disk-sizes-gb 1024

# NVIDIAドライバー自動インストール拡張機能を追加
az vm extension set \
  --resource-group nemoclaw-rg \
  --vm-name nemoclaw-vm \
  --name NvidiaGpuDriverLinux \
  --publisher Microsoft.HpcCompute \
  --version 1.9

NemoClaw本体のインストール

# SSHでVMに接続
ssh azureuser@<パブリックIP>

# NVIDIAドライバー確認
nvidia-smi

# Node.js / npm セットアップ
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# OpenClawインストール(前提条件)
npm install -g @anthropic-ai/claude-code

# NemoClawインストール
npm install -g @nvidia/nemoclaw

# blueprint.yaml作成
mkdir -p ~/nemoclaw && cd ~/nemoclaw
nemoclaw init --profile cloud

# OpenClawにNemoClawをMCPとして登録
claude mcp add nemoclaw -- nemoclaw serve

ネットワーク設定とセキュリティグループ

NemoClawのNIMエンドポイントへのアクセスを制御するため、Azure Network Security Group(NSG)を適切に設定します。

# NIMエンドポイント(ポート8000)を内部ネットワークのみに制限
az network nsg rule create \
  --resource-group nemoclaw-rg \
  --nsg-name nemoclaw-vmNSG \
  --name AllowNIMInternal \
  --priority 1000 \
  --direction Inbound \
  --source-address-prefixes 10.0.0.0/16 \
  --destination-port-ranges 8000 \
  --protocol Tcp \
  --access Allow

# SSH(ポート22)を特定IPのみに制限
az network nsg rule create \
  --resource-group nemoclaw-rg \
  --nsg-name nemoclaw-vmNSG \
  --name AllowSSHRestricted \
  --priority 900 \
  --direction Inbound \
  --source-address-prefixes <許可するIP>/32 \
  --destination-port-ranges 22 \
  --protocol Tcp \
  --access Allow

推論APIエンドポイント(ポート8000)はパブリックインターネットに公開せず、Azure Virtual NetworkまたはPrivate Endpointを通じてアクセスする設計を推奨します。

Azure Monitorとの連携

NemoClawの運用ではGPU使用率・推論レイテンシ・エラー率をリアルタイムで監視することが重要です。Azure MonitorとLog Analyticsを使って一元的なダッシュボードを構築します。

診断設定の有効化

# Log Analyticsワークスペース作成
az monitor log-analytics workspace create \
  --resource-group nemoclaw-rg \
  --workspace-name nemoclaw-logs \
  --location japaneast

# VM診断設定有効化
az monitor diagnostic-settings create \
  --resource $(az vm show -g nemoclaw-rg -n nemoclaw-vm --query id -o tsv) \
  --name nemoclaw-diag \
  --workspace $(az monitor log-analytics workspace show \
    -g nemoclaw-rg -n nemoclaw-logs --query id -o tsv) \
  --metrics "[{\"category\":\"AllMetrics\",\"enabled\":true}]"

GPUメトリクスのカスタム収集

Azure MonitorはデフォルトでGPUメトリクスを収集しません。nvidia-smiの出力をLog Analyticsに送信するカスタムスクリプトを設定します。

# GPU メトリクス収集スクリプト(/usr/local/bin/gpu-metrics.sh)
#!/bin/bash
GPU_UTIL=$(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits)
GPU_MEM=$(nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits)
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
curl -s -X POST "https://.ods.opinsights.azure.com/api/logs?api-version=2016-04-01" \
  -H "Content-Type: application/json" \
  -H "Log-Type: NemoClawGPU" \
  -d "[{\"TimeGenerated\":\"$TIMESTAMP\",\"GpuUtilPct\":$GPU_UTIL,\"GpuMemUsedMB\":$GPU_MEM}]"

# cronで1分間隔実行
echo "* * * * * /usr/local/bin/gpu-metrics.sh" | crontab -

Azureコスト管理の実践

GPU VMは時間課金であり、使用しない時間も課金されます。NemoClawのワークロード特性に応じたコスト最適化を行います。

  • スポットVM(スポットインスタンス):開発・バッチ推論ワークロードであれば通常料金の最大80%削減が可能。ただし中断リスクがあるため本番推論には不向き
  • Azure Reserved VM Instances(1年/3年予約):本番環境で常時稼働するVMは1年予約で最大40%、3年予約で最大60%の割引
  • 自動シャットダウン:開発環境は業務時間外に自動停止するスケジュールを設定
  • Azure Cost Alerts:月次予算を設定し、80%に達した時点でアラートを受信
# 開発VMの自動シャットダウン設定(毎日22時JST = 13時UTC)
az vm auto-shutdown \
  --resource-group nemoclaw-rg \
  --name nemoclaw-vm \
  --time 1300 \
  --email your-team@example.com