Google CloudでNemoClawを動かす全体像

Google Cloud Platform(GCP)はNVIDIA GPUを幅広くサポートするクラウドプラットフォームです。Compute EngineのGPUインスタンスにより、NemoClawをホストする環境を柔軟に構築できます。特にA100・L4・T4の各GPUが利用可能で、PoC環境から大規模な本番環境まで対応できます。

本ガイドでは、GCPアカウントを保有している状態を前提に、Compute Engine GPUインスタンスの選定・Deep Learning VM Image選択・IAMロール設計・Artifact Registry・Filestore・Cloud Monitoring連携まで、本番運用を想定した構築手順を網羅します。

NemoClawはNVIDIA GTC 2026で発表された早期アルファ版です。本ガイドの手順はアルファ版公開情報に基づいています。GA(一般提供)版では設定項目・手順が変更になる可能性があります。最新情報はNVIDIA公式リポジトリをご確認ください。

NemoClawの動作要件

GCPのCompute EngineでNemoClawを動作させるための要件です。

要件項目最低要件推奨
GPUNVIDIA GPU(Volta世代以降)Ampere(A100)以降
CUDAバージョンCUDA 12.4以上CUDA 12.6以上
VRAM推論プロファイルによる(最低16GB)80GB以上(フル精度モデル用)
OSUbuntu 20.04 LTS以上Ubuntu 22.04 LTS
DockerDocker Engine 24.0以上Docker Engine 26.0以上
NVIDIA Container Toolkit1.14以上最新版
ディスク(モデル用)100GB以上(pd-ssd推奨)500GB以上

GCP構成の全体図

本番運用を想定したGCP構成の概要です。

┌─────────────────────────────────────────────────────────────────┐
│ Google Cloud VPC (10.0.0.0/16)                                   │
│                                                                   │
│  ┌───────────────────┐  ┌──────────────────────────────────────┐ │
│  │ Public Subnet     │  │ Private Subnet                        │ │
│  │                   │  │                                       │ │
│  │  ┌─────────────┐  │  │  ┌──────────────────────────────┐    │ │
│  │  │ Cloud Load  │──┼──┼─▶│ Managed Instance Group (MIG) │    │ │
│  │  │ Balancing   │  │  │  │  Compute Engine GPU VM        │    │ │
│  │  └─────────────┘  │  │  │  (NemoClaw + NIM Runtime)    │    │ │
│  │                   │  │  │  ┌──────────────────────────┐ │    │ │
│  │  ┌─────────────┐  │  │  │  │ OpenShell Sandbox         │ │    │ │
│  │  │ Cloud NAT   │  │  │  │  └──────────────────────────┘ │    │ │
│  │  └──────┬──────┘  │  │  └──────────────────────────────┘    │ │
│  └─────────┼─────────┘  │                                       │ │
│            │             │  ┌──────────────────────────────┐    │ │
│            └─────────────┼─▶│ Filestore (モデルキャッシュ)  │    │ │
│                          │  └──────────────────────────────┘    │ │
│                          └──────────────────────────────────────┘ │
│                                                                   │
│  ┌─────────────────────────────────────────────────────────────┐  │
│  │ Cloud Monitoring + Cloud Logging + Artifact Registry         │  │
│  └─────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘

Compute Engine GPUインスタンスの選定

GCPではCompute EngineのVMにGPUをアタッチする形でGPU環境を構築します。NemoClawのワークロードに適したGPU種別と推奨マシンタイプを解説します。

GPUVRAM推奨マシンタイプ利用可能ゾーン(東京)料金目安(GPU分)主な用途
NVIDIA T416GBn1-standard-4〜16asia-northeast1-a/b/c約$0.35/h/GPU量子化モデル・低コスト検証
NVIDIA L424GBg2-standard-4〜96asia-northeast1-b/c約$0.70/h/GPUNano 30B量子化・中規模推論
NVIDIA A100(40GB)40GBa2-highgpu-1g〜8gasia-northeast1-b/c約$2.93/h/GPU70Bクラスモデル・本番推論
NVIDIA A100(80GB)80GBa2-ultragpu-1g〜8g限定(事前申請必要)約$4.02/h/GPUフル精度120B以上モデル

A100(80GB)搭載のa2-ultragpuシリーズおよびA100×8のa2-highgpu-8gは東京リージョン(asia-northeast1)で提供が限定的です。GCPコンソールからクォータ増加リクエストを事前に提出してください。承認には1〜2週間かかる場合があります。

GPUクォータの申請手順

GCPではGPU使用にクォータ申請が必要です。デフォルトでは多くのリージョンでGPUクォータが0に設定されています。

  1. GCPコンソール → IAMと管理クォータ を開く
  2. フィルタで「NVIDIA T4 GPUs」または「NVIDIA A100 GPUs」を検索
  3. 対象のリージョンのクォータを選択し、クォータを編集をクリック
  4. 必要なGPU数を入力し、ユースケースの説明(英語)を添えてリクエストを送信
  5. メールで承認通知を受け取る(通常1〜3営業日)
# gcloudコマンドでクォータ状況を確認
gcloud compute project-info describe \
  --project=[PROJECT_ID] \
  --format="json(quotas)" | \
  python3 -c "import json,sys; q=json.load(sys.stdin)[\"quotas\"]; [print(x[\"metric\"],x[\"limit\"],x[\"usage\"]) for x in q if \"GPU\" in x[\"metric\"]]"

Compute Engine VMの作成と設定

NemoClaw動作に適したCompute Engine VMを作成します。GCPのDeep Learning VM Imageを使用することでCUDA・ドライバ環境の構築工数を大幅に削減できます。

Deep Learning VM Imageの選定

GCPはNVIDIAドライバとCUDAがプリインストールされたDeep Learning VM Imageを公式に提供しています。

イメージファミリーCUDA版PyTorchDockerおすすめ度
pytorch-latest-gpu(Ubuntu 22.04)12.x(最新)最新安定版含む★★★★★
common-cu124(Ubuntu 22.04)12.4固定選択可含む★★★★☆
Ubuntu 22.04 LTS(ベース)なし(手動)なし(手動)なし(手動)★★☆☆☆
# Deep Learning VM ImageのイメージリストをgcloudCLIで確認
gcloud compute images list \
  --project=deeplearning-platform-release \
  --filter="family:pytorch-latest-gpu" \
  --format="table(name,family,status)"

# gcloudCLIでGPU付きVMを作成(L4×1、東京ゾーン)
gcloud compute instances create nemoclaw-gpu-instance \
  --project=[PROJECT_ID] \
  --zone=asia-northeast1-b \
  --machine-type=g2-standard-8 \
  --accelerator=type=nvidia-l4,count=1 \
  --maintenance-policy=TERMINATE \
  --restart-on-failure \
  --image-family=pytorch-latest-gpu \
  --image-project=deeplearning-platform-release \
  --boot-disk-size=200GB \
  --boot-disk-type=pd-ssd \
  --scopes=cloud-platform \
  --no-address

--no-addressオプションでパブリックIPを割り当てず、Cloud NATを経由したセキュアな構成にします。

Firewall Rulesの設定

GCPのVPCファイアウォールルールでNemoClawの通信を制御します。

ルール名方向プロトコル/ポートソース/宛先用途
allow-nemoclaw-apiインバウンドTCP:8080ロードバランサーのサービスアカウントNemoClaw APIポート
allow-nim-apiインバウンドTCP:8000ロードバランサーのサービスアカウントNIM推論APIポート
allow-iap-sshインバウンドTCP:2235.235.240.0/20(Cloud IAPのIP範囲)Cloud IAP経由のSSH
allow-nfsインバウンドTCP/UDP:2049同VPC内のサブネットFilestoreマウント(NFS)
allow-egress-httpsアウトバウンドTCP:4430.0.0.0/0NGC・GCP APIへのHTTPS通信

GCPではCloud IAPを使用することでパブリックIPなしのSSHアクセスが可能です。gcloud compute ssh [INSTANCE_NAME] --tunnel-through-iapコマンドで接続できます。ファイアウォールルールにIAPのIP範囲(35.235.240.0/20)を許可するだけでセキュアなSSH管理が実現します。

Filestoreによるモデルキャッシュの共有設定

Managed Instance Group(MIG)で複数VMが共有できるNFSストレージとして、Google Cloud Filestoreを使用します。NIMモデルウェイトのキャッシュを共有し、スケールアウト時のモデル再ダウンロードを防ぎます。

# Filestoreインスタンスの作成(ベーシックHDDティア、1TB)
gcloud filestore instances create nemoclaw-models \
  --project=[PROJECT_ID] \
  --zone=asia-northeast1-b \
  --tier=BASIC_HDD \
  --file-share=name=models,capacity=1TB \
  --network=name=default

# Filestoreのマウント(VM上での操作)
sudo apt-get install -y nfs-common

sudo mkdir -p /mnt/filestore/nim-models

# FilestoreのIPアドレスはコンソールまたはgcloudコマンドで確認
FILESTORE_IP=$(gcloud filestore instances describe nemoclaw-models \
  --zone=asia-northeast1-b \
  --format="value(networks[0].ipAddresses[0])")

sudo mount -t nfs -o vers=3 ${FILESTORE_IP}:/models /mnt/filestore/nim-models

# /etc/fstabに登録
echo "${FILESTORE_IP}:/models /mnt/filestore/nim-models nfs defaults,_netdev 0 0" | sudo tee -a /etc/fstab

本番環境ではFilestoreのEnterpriseティアを使用することでゾーン障害に対する耐障害性と99.99%のSLAが確保できます。ただしBasicティアと比較してコストが大幅に増加するため、要件に応じて選定してください。

Artifact Registryの設定

Artifact Registryを使用することで、NIMコンテナイメージをGCP内にキャッシュし、NGCからのpull回数を削減できます。特にMIGでの多数インスタンス起動時にイメージ取得のボトルネックを解消できます。

Artifact Registryリポジトリの作成

# Artifact Registryリポジトリの作成(東京リージョン・Docker形式)
gcloud artifacts repositories create nemoclaw-images \
  --repository-format=docker \
  --location=asia-northeast1 \
  --description="NemoClaw NIM container images cache"

# Docker認証の設定
gcloud auth configure-docker asia-northeast1-docker.pkg.dev

# NGCからNIMイメージをpullしてArtifact Registryに転送
# まずNGCにdockerログイン
echo $NGC_API_KEY | docker login nvcr.io -u "\$oauthtoken" --password-stdin

# NIMイメージをpull
docker pull nvcr.io/nim/nvidia/nemotron-3-nano-30b:latest

# Artifact Registryのパスにタグ付け
docker tag nvcr.io/nim/nvidia/nemotron-3-nano-30b:latest \
  asia-northeast1-docker.pkg.dev/[PROJECT_ID]/nemoclaw-images/nemotron-3-nano-30b:latest

# Artifact RegistryにプッシュShare
docker push asia-northeast1-docker.pkg.dev/[PROJECT_ID]/nemoclaw-images/nemotron-3-nano-30b:latest

IAMロール設計

GCPのサービスアカウントとIAMロールをNemoClawの動作に必要な最小権限で設計します。

サービスアカウント付与するIAMロール用途
nemoclaw-vm-saroles/artifactregistry.readerArtifact Registryからのイメージpull
nemoclaw-vm-saroles/monitoring.metricWriterCloud Monitoringへのカスタムメトリクス送信
nemoclaw-vm-saroles/logging.logWriterCloud Loggingへのログ書き込み
nemoclaw-vm-saroles/storage.objectViewer(特定バケットのみ)GCSからのモデルウェイト取得(必要な場合)
nemoclaw-vm-saroles/secretmanager.secretAccessorSecret ManagerからのNGC APIキー取得
# サービスアカウントの作成
gcloud iam service-accounts create nemoclaw-vm-sa \
  --display-name="NemoClaw GPU VM Service Account"

# IAMロールの付与
for ROLE in roles/artifactregistry.reader roles/monitoring.metricWriter roles/logging.logWriter; do
  gcloud projects add-iam-policy-binding [PROJECT_ID] \
    --member="serviceAccount:nemoclaw-vm-sa@[PROJECT_ID].iam.gserviceaccount.com" \
    --role=$ROLE
done

Managed Instance Groupとオートスケーリング

本番環境では単一VMではなくManaged Instance Group(MIG)を使用することで、自動スケーリングと高可用性を確保できます。

インスタンステンプレートの作成

# インスタンステンプレートの作成
gcloud compute instance-templates create nemoclaw-gpu-template \
  --project=[PROJECT_ID] \
  --machine-type=g2-standard-8 \
  --accelerator=type=nvidia-l4,count=1 \
  --maintenance-policy=TERMINATE \
  --image-family=pytorch-latest-gpu \
  --image-project=deeplearning-platform-release \
  --boot-disk-size=200GB \
  --boot-disk-type=pd-ssd \
  --service-account=nemoclaw-vm-sa@[PROJECT_ID].iam.gserviceaccount.com \
  --scopes=cloud-platform \
  --no-address \
  --metadata-from-file=startup-script=startup.sh

# MIGの作成(ゾーナル)
gcloud compute instance-groups managed create nemoclaw-mig \
  --project=[PROJECT_ID] \
  --zone=asia-northeast1-b \
  --template=nemoclaw-gpu-template \
  --size=1

オートスケーリングポリシーの設定

GPUカスタムメトリクスをベースにしたオートスケーリングを設定します。

設定項目推奨値理由
スケールアウトトリガー(GPU使用率)70%超過GPU飽和前に余裕を持ってスケールアウト
スケールインクールダウン期間600秒(10分)モデルロード完了後のトラフィック安定を待つ
最小VM数1常時1台でレイテンシを確保
最大VM数予算に応じて設定コスト上限の設定
スケールアウト後の安定化時間300秒(5分)NIMモデルのGPUロード完了を待つ
# オートスケーリングポリシーの設定
gcloud compute instance-groups managed set-autoscaling nemoclaw-mig \
  --project=[PROJECT_ID] \
  --zone=asia-northeast1-b \
  --min-num-replicas=1 \
  --max-num-replicas=4 \
  --cool-down-period=600 \
  --custom-metric-utilization metric=custom.googleapis.com/gpu_utilization,utilization-target=0.70,utilization-target-type=GAUGE

Cloud Monitoringの設定

GCPのCloud MonitoringでNemoClawのGPUインスタンスを監視します。カスタムメトリクスとアラートポリシーを設定することで、本番環境の異常を早期検知できます。

Ops Agentのインストールと設定

GCPのCloud Monitoring Agentの後継であるOps Agentをインストールし、システムメトリクスとアプリケーションログを収集します。

# Ops Agentのインストール(VM上での操作)
curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
sudo bash add-google-cloud-ops-agent-repo.sh --also-install

# Ops Agentの設定(/etc/google-cloud-ops-agent/config.yaml)
cat > /etc/google-cloud-ops-agent/config.yaml << EOF
logging:
  receivers:
    nemoclaw_app:
      type: files
      include_paths:
        - /var/log/nemoclaw/app.log
    nemoclaw_nim:
      type: files
      include_paths:
        - /var/log/nemoclaw/nim.log
  service:
    pipelines:
      nemoclaw_pipeline:
        receivers: [nemoclaw_app, nemoclaw_nim]

metrics:
  receivers:
    hostmetrics:
      type: hostmetrics
      collection_interval: 60s
  service:
    pipelines:
      default_pipeline:
        receivers: [hostmetrics]
EOF

sudo systemctl restart google-cloud-ops-agent

アラートポリシーの設定

Cloud Monitoringでの主要なアラートポリシー設定です。

監視対象メトリクスしきい値通知先
GPU使用率(カスタムメトリクス)95%超過が15分継続Cloud Pub/Sub → Cloud Functions → メール/Slack
VM CPU使用率80%超過が10分継続Cloud Pub/Sub → メール
VMの稼働停止(Uptime Check)1回失敗即時メール通知
Filestore使用容量80%超過メール通知(容量逼迫の事前警告)
アウトバウンドパケット(異常急増)通常値の10倍超過即時メール通知(セキュリティ異常の疑い)

VPC Peeringとネットワーク設計

NemoClawをマルチプロジェクト環境やオンプレミスと組み合わせる場合のネットワーク設計を解説します。

Private Service Connectの活用

GCPのPrivate Service ConnectはArtifact RegistryやSecret ManagerなどのGCPマネージドサービスにVPCの内部IPで接続するための仕組みです。インターネット経由の通信を排除できます。

# Artifact Registry用Private Service Connect(PSC)エンドポイントの作成
gcloud compute forwarding-rules create psc-artifact-registry \
  --project=[PROJECT_ID] \
  --region=asia-northeast1 \
  --network=default \
  --subnet=default \
  --address=10.0.0.100 \
  --target-service=projects/[PROJECT_ID]/regions/asia-northeast1/serviceAttachments/artifact-registry

Private Service Connectを使用することで、NATゲートウェイを経由せずにArtifact RegistryへのイメージpullができるようになりNATコストを削減できます。

Cloud NATの設定

Private SubnetのVMからNGCやパッケージリポジトリへのアウトバウンド通信にCloud NATを使用します。

# Cloud Routerの作成
gcloud compute routers create nemoclaw-router \
  --project=[PROJECT_ID] \
  --region=asia-northeast1 \
  --network=default

# Cloud NATの作成
gcloud compute routers nats create nemoclaw-nat \
  --project=[PROJECT_ID] \
  --router=nemoclaw-router \
  --region=asia-northeast1 \
  --auto-allocate-nat-external-ips \
  --nat-all-subnet-ip-ranges \
  --enable-logging