NemoClaw 배포 실전: OpenClaw를 더 안전하고 제어 가능하게 만들기

March 19, 2026

WARNING

이 글은 OpenClaw 사용 경험이 있는 개발자를 대상으로 하며, 기본적인 Linux/Docker 지식이 필요합니다.

상상해 보세요. AI에게 코드 작성을 맡기거나 자료 조사, 서버 조작을 시켰는데, 실수로 중요한 파일을 삭제하거나 악의적인 프롬프트 주입(Prompt Injection)을 받아 몰래 외부로 데이터를 전송한다면? 이는 모든 AI 에이전트 사용자들의 악몽입니다. NVIDIA가 출시한 NemoClaw는 바로 이 문제를 해결하기 위해 등장했습니다. OpenClaw에 '안전 보호막'을 씌워, AI 에이전트의 편리함을 누리면서도 '통제 불능' 상태를 걱정하지 않게 해줍니다.

이 글에서는 이 보호막이 정확히 어떻게 작동하는지, 그리고 안전하고 제어 가능한 AI 에이전트를 어떻게 빠르게 배포하는지 살펴보겠습니다.

대상 독자

  • 기존 OpenClaw 사용 경험이 있으며 보안성을 높이고 싶은 개발자
  • AI 에이전트 보안 요구사항이 있는 팀의 기술 책임자
  • 프로덕션 환경에 AI 에이전트를 배포하려는 운영 인력

핵심 의존성 및 환경

항목요구사항
운영체제Ubuntu 22.04 LTS+ / macOS (Apple Silicon) / Windows WSL2
Node.js20+
npm10+
컨테이너 런타임Docker Desktop / Colima (macOS)
메모리권장 16GB (최소 8GB + 8GB swap)
디스크권장 40GB 여유 공간

TIP

macOS(Apple Silicon) 사용자는 Colima 또는 Docker Desktop을 권장하며, Windows 사용자는 WSL2 + Docker Desktop이 필요합니다.

프로젝트 구조 개요

NemoClaw 시스템은 총 4개의 계층으로 나뉩니다. 이 구조를 이해하면 문제 발생 시 원인 파악이 훨씬 수월합니다.

┌─────────────────────────────────────────────────────────────┐
│                      Plugin Layer                           │
│            (TypeScript CLI - nemoclaw 명령어)               │
├─────────────────────────────────────────────────────────────┤
│                    Blueprint Layer                         │
│         (Python Blueprint - 샌드박스 생성 및 정책 구성)     │
├─────────────────────────────────────────────────────────────┤
│                     Sandbox Layer                          │
│        (OpenShell 컨테이너 - 격리된 OpenClaw 실행 환경)     │
├─────────────────────────────────────────────────────────────┤
│                    Inference Layer                         │
│      (추론 라우팅 - OpenShell 게이트웨이가 가로채서 모델 서비스로 전달) |
└─────────────────────────────────────────────────────────────┘

핵심 원리는 다음과 같습니다. 모든 추론 요청은 샌드박스 밖으로 바로 나가지 않고 반드시 OpenShell 게이트웨이를 거쳐 전달됩니다. 즉, AI가 몰래 외부로 데이터를 보내려 해도 게이트웨이에서 차단할 수 있습니다.

단계별 배포 절차

1. 시스템 환경 확인

먼저 시스템이 요구사항을 충족하는지 확인합니다.

# 시스템 버전 확인
cat /etc/os-release | grep -E "^(NAME|VERSION)="

# Node.js 버전 확인
node --version  # 20+ 필요

# npm 버전 확인
npm --version   # 10+ 필요

# Docker 실행 여부 확인
docker ps

WARNING

Docker가 실행 중이지 않다면 먼저 시작해 주세요. NemoClaw는 샌드박스 환경을 만들기 위해 컨테이너에 의존합니다.

2. OpenShell 설치

NemoClaw는 NVIDIA OpenShell을 기반으로 하므로 이를 먼저 설치해야 합니다.

# OpenShell 설치 (Linux)
curl -fsSL https://www.nvidia.com/openshell.sh | bash

# 설치 확인
openshell --version

TIP

DGX Spark를 사용하는 경우, 공식 문서에 따라 cgroup v2 및 Docker를 먼저 설정한 후 설치 스크립트를 실행하십시오.

3. NemoClaw CLI 설치

공식 제공되는 원클릭 설치 스크립트를 사용합니다.

curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash

설치 완료 후 환경 변수를 갱신합니다.

# bash의 경우
source ~/.bashrc

# zsh의 경우
source ~/.zshrc

설치 확인:

nemoclaw --version

4. 대화형 설정 마법사 실행

가장 중요한 단계입니다. nemoclaw onboard를 실행하면 대화형 마법사가 시작되어 샌드박스, 추론 Provider 및 네트워크 정책 설정을 도와줍니다.

nemoclaw onboard

마법사는 다음 내용을 차례로 묻습니다.

  1. 샌드박스 이름 설정: 예: my-agent
  2. 추론 Provider 선택: 여기서는 Defapi를 강력 추천합니다. 공식 서비스의 절반 가격이며 Claude/GPT/Gemini 등 주요 모델을 모두 지원하기 때문입니다.
  3. API Key 입력: Defapi를 선택했다면 Defapi에서 발급받은 키를 입력합니다.
  4. 네트워크 정책 설정: 기본적으로 엄격하게 설정되어 필수적인 아웃바운드 요청만 허용합니다.

TIP

Defapi는 v1/chat/completions 인터페이스를 지원하여 OpenClaw의 추론 호출 방식과 완벽히 호환됩니다. Defapi를 사용하면 비용을 절약하면서도 공식 서비스와 동일한 사용자 경험을 누릴 수 있습니다.

설정이 완료되면 다음과 같은 출력이 나타납니다.

──────────────────────────────────────────────────
Sandbox      my-agent (Landlock + seccomp + netns)
Model        defapi/claude-sonnet-4.5
──────────────────────────────────────────────────
Run:         nemoclaw my-agent connect
Status:      nemoclaw my-agent status
Logs:        nemoclaw my-agent logs --follow
──────────────────────────────────────────────────

[INFO]  === Installation complete ===

5. 샌드박스 연결 및 대화 시작

nemoclaw <name> connect 명령어로 샌드박스의 대화형 쉘에 진입합니다.

nemoclaw my-agent connect

진입 후 샌드박스 내부 프롬프트가 표시됩니다.

sandbox@my-agent:~$

이제 OpenClaw TUI를 실행하여 AI와 대화해 보세요.

openclaw tui

테스트 메시지를 입력합니다.

hello, can you introduce yourself?

AI의 응답을 받았다면 성공입니다! 당신은 이제 샌드박스화된 AI 에이전트를 성공적으로 배포했습니다.

6. CLI를 통한 단일 요청 전송

대화형 인터페이스가 필요 없고 빠른 테스트를 원한다면 CLI 모드를 사용합니다.

openclaw agent --agent main --local -m "What is 2+2?" --session-id test

응답이 터미널에 바로 출력되므로 자동화 스크립트에 적합합니다.

7. 사용자 정의 네트워크 정책 설정 (선택 사항)

기본 네트워크 정책은 매우 엄격합니다. AI가 특정 서비스에 접속해야 한다면 정책을 사용자 정의할 수 있습니다.

# 현재 네트워크 정책 확인
nemoclaw my-agent status

# 실행 중 정책 핫 리로드 (정책 파일 수정 후 실행)
openshell policy apply -f custom-policy.yaml

사용자 정의 정책 예시 (custom-policy.yaml):

egress:
  allowed:
    - host: "api.github.com"
      port: 443
    - host: "api.openai.com"
      port: 443
  denied:
    - host: "*"
      port: "*"

WARNING

네트워크 정책은 보안을 보장하는 중요한 장벽입니다. 새로운 허용 규칙을 추가할 때는 신중해야 합니다. 포트를 하나 열 때마다 공격에 노출될 위험이 증가할 수 있습니다.

8. 샌드박스 생명주기 관리

일상적인 유지보수에 사용되는 명령어들입니다.

# 샌드박스 상태 확인
nemoclaw my-agent status

# 로그 확인
nemoclaw my-agent logs --follow

# 샌드박스 중지
nemoclaw my-agent stop

# 샌드박스 시작
nemoclaw my-agent start

# 샌드박스 삭제
nemoclaw my-agent delete

9. 다중 샌드박스 인스턴스 관리

동일한 기기에서 여러 개의 샌드박스 인스턴스를 실행할 수 있으며, 각 인스턴스는 완전히 격리됩니다.

# 두 번째 샌드박스 생성
nemoclaw onboard  # 마법사에 따라 다른 이름으로 생성

# 모든 샌드박스 목록 확인
openshell sandbox list

자주 발생하는 문제 해결(FAQ)

문제 1: 설치 스크립트 실행 시 "command not found" 오류

nemoclaw 명령어를 찾을 수 없다면 다음을 시도하세요.

source ~/.bashrc   # bash
source ~/.zshrc    # zsh

또는 전체 경로를 직접 사용합니다.

~/.local/bin/nemoclaw --version

문제 2: 메모리 부족으로 인한 OOM 발생

샌드박스 이미지 압축 해제 시 약 2.4GB를 차지하며, 기기 메모리가 8GB 미만인 경우 압축 해제 + Docker + k3s가 동시에 실행될 때 OOM이 발생할 수 있습니다. 해결 방법:

  • 최소 8GB의 swap 추가: sudo fallocate -l 8G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
  • 또는 더 큰 메모리의 기기 사용

문제 3: 컨테이너 런타임 준비 안 됨

# Docker 재시작
sudo systemctl restart docker

# Docker 상태 확인
docker ps

문제 4: NVIDIA API Key 설정 실패

Defapi 대신 NVIDIA Cloud 추론을 선택했다면 build.nvidia.com에서 API Key를 받아야 합니다. 다음을 확인하세요.

  • Key가 정확히 복사되었는지 확인
  • 계정에 잔액이 충분한지 확인
  • 네트워크에서 build.nvidia.com에 접속 가능한지 확인

TIP

NVIDIA Cloud 대신 Defapi를 사용하는 것을 강력 추천합니다. 가격이 절반 수준이며 국내 접속 속도가 더 빠릅니다.

문제 5: 네트워크 정책이 정상적인 요청을 차단함

AI가 서비스에 접속하려다 차단되면 알림이 뜹니다. TUI에서 승인하거나 영구 규칙으로 추가할 수 있습니다.

[OpenShell] Agent attempted to reach api.example.com:443
Allow? [y/n/a]:  # y=이번만 허용, n=거부, a=영구 추가

문제 6: 샌드박스 상태 이상

먼저 NemoClaw 차원에서 확인합니다.

nemoclaw my-agent status

그 다음 OpenShell 하위 레이어를 확인합니다.

openshell sandbox list
openshell sandbox inspect my-agent

심화 학습 방향

1. 추론 Provider 교체

처음에 NVIDIA Cloud를 사용하다가 나중에 Defapi로 바꾸고 싶다면 추론 설정을 수정할 수 있습니다.

# 추론 구성 업데이트
openshell provider update --provider defapi --api-key <your-key>

Defapi 지원 모델 목록은 Defapi 공식 홈페이지에서 확인할 수 있습니다.

2. 모니터링 및 로그 분석

OpenShell TUI를 사용하여 샌드박스 활동을 실시간으로 모니터링합니다.

openshell term

여기서 다음 항목들을 볼 수 있습니다.

  • AI의 모든 네트워크 요청
  • 파일 시스템 읽기/쓰기 작업
  • 추론 호출 상세 내역

3. 원격 GPU 배포

로컬 기기 성능이 부족하다면 샌드박스를 클라우드 GPU 인스턴스에 배포할 수 있습니다.

nemoclaw deploy --target remote-gpu --instance-type A100

상세 가이드는 공식 문서를 참조하세요.

4. Telegram/Discord 연동

AI가 Telegram이나 Discord를 통해 대화하도록 설정할 수 있습니다.

nemoclaw start telegram-bridge
nemoclaw start discord-bridge
Updated March 19, 2026