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を動作させるための要件です。
| 要件項目 | 最低要件 | 推奨 |
|---|---|---|
| GPU | NVIDIA GPU(Volta世代以降) | Ampere(A100)以降 |
| CUDAバージョン | CUDA 12.4以上 | CUDA 12.6以上 |
| VRAM | 推論プロファイルによる(最低16GB) | 80GB以上(フル精度モデル用) |
| OS | Ubuntu 20.04 LTS以上 | Ubuntu 22.04 LTS |
| Docker | Docker Engine 24.0以上 | Docker Engine 26.0以上 |
| NVIDIA Container Toolkit | 1.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種別と推奨マシンタイプを解説します。
| GPU | VRAM | 推奨マシンタイプ | 利用可能ゾーン(東京) | 料金目安(GPU分) | 主な用途 |
|---|---|---|---|---|---|
| NVIDIA T4 | 16GB | n1-standard-4〜16 | asia-northeast1-a/b/c | 約$0.35/h/GPU | 量子化モデル・低コスト検証 |
| NVIDIA L4 | 24GB | g2-standard-4〜96 | asia-northeast1-b/c | 約$0.70/h/GPU | Nano 30B量子化・中規模推論 |
| NVIDIA A100(40GB) | 40GB | a2-highgpu-1g〜8g | asia-northeast1-b/c | 約$2.93/h/GPU | 70Bクラスモデル・本番推論 |
| NVIDIA A100(80GB) | 80GB | a2-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に設定されています。
- GCPコンソール → IAMと管理 → クォータ を開く
- フィルタで「NVIDIA T4 GPUs」または「NVIDIA A100 GPUs」を検索
- 対象のリージョンのクォータを選択し、クォータを編集をクリック
- 必要なGPU数を入力し、ユースケースの説明(英語)を添えてリクエストを送信
- メールで承認通知を受け取る(通常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版 | PyTorch | Docker | おすすめ度 |
|---|---|---|---|---|
| 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:22 | 35.235.240.0/20(Cloud IAPのIP範囲) | Cloud IAP経由のSSH |
| allow-nfs | インバウンド | TCP/UDP:2049 | 同VPC内のサブネット | Filestoreマウント(NFS) |
| allow-egress-https | アウトバウンド | TCP:443 | 0.0.0.0/0 | NGC・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-sa | roles/artifactregistry.reader | Artifact Registryからのイメージpull |
| nemoclaw-vm-sa | roles/monitoring.metricWriter | Cloud Monitoringへのカスタムメトリクス送信 |
| nemoclaw-vm-sa | roles/logging.logWriter | Cloud Loggingへのログ書き込み |
| nemoclaw-vm-sa | roles/storage.objectViewer(特定バケットのみ) | GCSからのモデルウェイト取得(必要な場合) |
| nemoclaw-vm-sa | roles/secretmanager.secretAccessor | Secret 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