バックアップ対象の全体像

NemoClawの運用で保護すべきデータは4カテゴリに分類されます。各カテゴリの重要度とバックアップ頻度の目安を以下に示します。

カテゴリ対象データ重要度推奨頻度保持期間
設定blueprint.yaml・ポリシーファイル・MCP設定最高変更のたびに無期限
モデルローカルNIMコンテナイメージ・Nemotronモデルウェイトバージョン更新時2世代分
メモリエージェントセッション履歴・ベクトルストア日次90日
ログアクセスログ・ポリシー違反ログ・監査ログ日次(ローテーション)1年(コンプライアンス要件次第)

設定ファイル(blueprint.yaml)はGitで管理することを強く推奨します。変更履歴が自動的に保持され、任意の時点に復元できます。

3-2-1バックアップ戦略

バックアップのベストプラクティスである「3-2-1ルール」をNemoClaw環境に適用します。

3-2-1ルールとは

ルール意味NemoClaw環境での実装例
3データのコピーを3つ保持本番サーバー + バックアップサーバー + オフサイト
22種類の異なるメディアローカルディスク + オブジェクトストレージ(S3・GCS)
11つはオフサイト(物理的に別の場所)別リージョンのクラウドストレージ

設定ファイルのバックアップ(Git + オブジェクトストレージ)

#!/bin/bash
# backup-nemoclaw-config.sh - 設定バックアップスクリプト

NEMOCLAW_DIR="/opt/nemoclaw"
BACKUP_BUCKET="s3://your-company-backup/nemoclaw/config"
DATE=$(date +%Y%m%d-%H%M%S)

# Gitコミット(変更があれば)
cd "${NEMOCLAW_DIR}"
git add blueprint.yaml policies/ mcp-servers/
git diff --cached --quiet || git commit -m "Auto backup: ${DATE}"
git push origin main

# S3へのバックアップ(暗号化付き)
tar -czf "/tmp/nemoclaw-config-${DATE}.tar.gz" \
  blueprint.yaml policies/ mcp-servers/ .env.encrypted

aws s3 cp "/tmp/nemoclaw-config-${DATE}.tar.gz" \
  "${BACKUP_BUCKET}/${DATE}/" \
  --sse aws:kms --sse-kms-key-id "${KMS_KEY_ID}"

rm -f "/tmp/nemoclaw-config-${DATE}.tar.gz"
echo "設定バックアップ完了: ${DATE}"

このスクリプトをcronで自動実行します(変更検知で随時 + 日次フルバックアップ)。

# crontab -e
# 毎日0時に設定バックアップ
0 0 * * * /opt/nemoclaw/scripts/backup-nemoclaw-config.sh >> /var/log/nemoclaw-backup.log 2>&1

メモリ・セッションデータのバックアップ

#!/bin/bash
# backup-nemoclaw-memory.sh - メモリ・ベクトルストアのバックアップ

MEMORY_DIR="/opt/nemoclaw/data/memory"
VECTOR_DIR="/opt/nemoclaw/data/vectorstore"
BACKUP_BUCKET="s3://your-company-backup/nemoclaw/memory"
DATE=$(date +%Y%m%d)

# ベクトルストアのスナップショット(NemoClaw APIを使用)
curl -X POST "http://localhost:8765/v1/admin/memory/snapshot" \
  -H "Authorization: Bearer ${NEMOCLAW_ADMIN_KEY}" \
  -o "/tmp/memory-snapshot-${DATE}.bin"

# メモリディレクトリとスナップショットをS3へ
aws s3 sync "${MEMORY_DIR}" "${BACKUP_BUCKET}/${DATE}/memory/" --delete
aws s3 cp "/tmp/memory-snapshot-${DATE}.bin" \
  "${BACKUP_BUCKET}/${DATE}/vectorstore-snapshot.bin" \
  --sse aws:kms

echo "メモリバックアップ完了: ${DATE}"

RPO・RTO設計

災害復旧計画の核心はRPO(目標復旧時点)とRTO(目標復旧時間)の設定です。NemoClaw環境の性質に合わせて適切な目標値を設定してください。

指標定義スタンダード構成目安HA構成目安
RPO障害発生時に許容できるデータ損失の最大時間24時間(日次バックアップ)1時間未満(増分バックアップ)
RTO障害発生から復旧完了までの最大許容時間4時間30分未満(フェイルオーバー自動化)

業務への影響度からRPO・RTOを逆算して設計してください。NemoClawがリアルタイムな顧客対応に使われている場合は、HA構成(Active-Standby)を検討する必要があります。

復旧手順

障害の種類別に、NemoClawの標準的な復旧手順を解説します。

設定ファイルの復旧

#!/bin/bash
# restore-nemoclaw-config.sh - 設定ファイル復旧スクリプト

RESTORE_DATE="${1:-latest}"  # 引数でリストア対象日時を指定
BACKUP_BUCKET="s3://your-company-backup/nemoclaw/config"
NEMOCLAW_DIR="/opt/nemoclaw"

echo "=== NemoClaw設定復旧開始: ${RESTORE_DATE} ==="

# 1. NemoClawサービス停止
systemctl stop nemoclaw

# 2. 現在の設定をバックアップ(安全のため)
cp -r "${NEMOCLAW_DIR}" "${NEMOCLAW_DIR}.bak.$(date +%Y%m%d%H%M%S)"

# 3. S3からダウンロード
if [ "${RESTORE_DATE}" = "latest" ]; then
  RESTORE_DATE=$(aws s3 ls "${BACKUP_BUCKET}/" | tail -1 | awk '{print $2}' | tr -d '/')
fi

aws s3 cp "${BACKUP_BUCKET}/${RESTORE_DATE}/" /tmp/restore/ --recursive

# 4. 展開・配置
tar -xzf "/tmp/restore/nemoclaw-config-${RESTORE_DATE}.tar.gz" -C "${NEMOCLAW_DIR}"

# 5. 構文チェック
nemoclaw validate blueprint.yaml
if [ $? -ne 0 ]; then
  echo "blueprint.yaml の検証失敗。復旧を中止します。"
  exit 1
fi

# 6. サービス再起動
systemctl start nemoclaw
systemctl status nemoclaw

echo "=== 設定復旧完了 ==="

サーバー全体の復旧(ゼロからの再構築)

サーバーが物理的に失われた場合の復旧手順です。

  1. 新しいサーバーをプロビジョニング(同スペック以上)
  2. OSセットアップ・依存パッケージのインストール
  3. NemoClawのインストール(npm install -g @nvidia/nemoclaw
  4. 設定ファイルの復旧(上記スクリプトを実行)
  5. メモリ・ベクトルストアの復旧(スナップショットのリストア)
  6. 動作確認(ヘルスチェック・テストセッション実行)
  7. DNSの切り替え(新サーバーIPへ)
# メモリ・ベクトルストアのリストア
curl -X POST "http://localhost:8765/v1/admin/memory/restore" \
  -H "Authorization: Bearer ${NEMOCLAW_ADMIN_KEY}" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @/tmp/memory-snapshot-${RESTORE_DATE}.bin

# ヘルスチェックで復旧確認
curl http://localhost:8765/v1/health

DR訓練チェックリスト

バックアップは「取っているだけ」では意味がありません。定期的なDR訓練で復旧手順の有効性を確認してください。以下のチェックリストを四半期ごとに実施することを推奨します。

フェーズ確認項目合否基準
事前確認最新バックアップが存在するか24時間以内のバックアップが存在
事前確認バックアップファイルの整合性チェックサム検証OK
事前確認復旧手順書が最新か直近3ヶ月以内に更新済み
復旧実行設定ファイルのリストアRTO以内に完了
復旧実行サービス起動・ヘルスチェック全コンポーネントHealthy
動作確認テストセッションでエージェントが応答するか正常応答を確認
動作確認ポリシー(サンドボックス)が機能するか禁止操作が拒否されるか確認
動作確認MCPサーバーが接続されているか/v1/healthでconnected確認
事後訓練結果・課題を記録報告書作成・次回改善点を明記