월 2만원으로 24시간 돌리는 개인 AI 에이전트 원격 서버 구축 완전 가이드
결론부터 말하면, 개인 에이전트를 집 PC에서 돌리는 것은 전기세와 소음, 외출 시 단절이라는 3중고를 안고 가는 선택이다. 정답은 월 1~2만원짜리 저가 가상 서버에 가벼운 에이전트 코어만 올리고, 지능은 외부 가성비 API에서 사다 쓰며, Jev MCP로 승인 마지노선을 치고, PM2로 24시간 데몬화하는 것이다. 아래 순서를 그대로 따라 하면 1시간 안에 나만의 방치형 에이전트 인프라가 완성된다.
1. 아키텍처: 무엇이 어디에서 도는가
로컬에 30B급 모델을 올리던 방식의 치명적 실수는 서버 자원을 지능 연산에 다 태운다는 점이다. 원격 운영의 핵심은 역할 분리다.
| 레이어 | 위치 | 역할 |
|---|---|---|
| 에이전트 코어 (Hermes) | 저가 VPS (2vCPU/4GB) | 프롬프트 조립, 도구 호출, 스케줄 실행 |
| 지능 (LLM) | 외부 API (DeepSeek 등) | 추론 연산 전담, 서버 자원 0 소모 |
| 판단 (Jev MCP) | VPS 내 MCP 노드 | 위험 행동 승인/차단, 루프 감시 |
| 실행 환경 | Docker 샌드박스 | 파일 삭제 등 돌발 행동 격리 |
| 상시 가동 | PM2 데몬 | 재부팅 후 자동 부활 |
이 구조에서 VPS는 추론을 하지 않으므로 GPU가 필요 없고, 2vCPU/4GB면 충분하다.
2. 저가 서버 고르기: 월 1~2만원대 선택지
기준 사양은 2vCPU, 4GB RAM, 40GB SSD, Ubuntu 24.04 LTS다. GPU는 필요 없다.
| 서버 | 사양 | 월 비용 (운영자 환경 측정 기준) | 특징 |
|---|---|---|---|
| 오픈클라우드 Micro VM | 2vCPU/4GB/40GB | 약 1~2만원 | 국내망, 낮은 지연시간, 포트 8000 개방 가능 |
| Oracle Cloud Free Tier | 4vCPU/24GB (ARM) | 0원 | 무료지만 신청 대기, 갑작스런 회수 리스크 |
| Hetzner CX22 | 2vCPU/4GB/40GB | 약 5천원대 | 해외망, 국내 접속 지연 약간 |
| Vultr Regular | 2vCPU/4GB/80GB | 약 7천원대 | 시간 과금 가능, 테스트용 유리 |
| 국내 IDC 소형 VPS | 2vCPU/4GB | 약 1~2만원 | 사업자 지원, 세금계산서 발행 |
운영자 환경 측정 기준, 국내에서 상시 가동 목적이라면 오픈클라우드 Micro VM이 지연시간과 관리 편의의 균형이 가장 좋다. 테스트만 할 목적이면 Vultr 시간 과금으로 며칠 돌려보고 결정하는 것을 권장한다.
서버 생성 후 최초 접속과 방화벽 개방은 다음과 같다.
ssh ubuntu@<서버IP>
sudo apt update && sudo apt upgrade -y
sudo ufw allow 22/tcp
sudo ufw allow 8000/tcp
sudo ufw enable
3. 1단계: 에이전트 코어 환경 구축
Python 기반 Hermes 에이전트 코어를 설치한다.
# 기본 의존성 및 에이전트 파이프라인 패키지 설치
sudo apt update && sudo apt install -y python3-pip python3-venv git
git clone https://github.com/hermes-agent/hermes-agent
cd hermes-agent
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
4. 2단계: 가성비 외부 API 매칭
서버 자원을 먹지 않는 외부 API로 가동 단가를 낮추는 것이 이 가이드의 핵심이다. 2026년 9월 기준 가성비 API 가격표는 다음과 같다.
| 공급자 | 모델 | 입력 (100만 토큰) | 출력 (100만 토큰) | 용도 |
|---|---|---|---|---|
| DeepSeek | deepseek-chat | 약 $0.27 | 약 $1.10 | 일상 추론, 코딩 주력 |
| DeepSeek | deepseek-reasoner | 약 $0.55 | 약 $2.19 | 심층 추론 필요시 |
| OpenRouter | 중계 (최저가 라우팅) | 모델별 상이 | 모델별 상이 | 장애시 자동 폴백 |
| OpenRouter | 무료枠 모델군 | $0 | $0 | 테스트, 가벼운 분류 |
운영자 환경 측정 기준, 하루 10만 토큰 수준의 개인 에이전트라면 DeepSeek 기준 월 1천원 안팎이다. 서버비(2만원)보다 API비가 압도적으로 싸므로, 아낄 것은 서버 사양이 아니라 토큰 누수다.
API 키는 환경 변수로 격리한다. 소스 코드에 하드코딩하지 않는다.
# API 보안 열쇠 환경 변수 세팅
echo 'export DEEPSEEK_API_KEY="sk-ds-xxxxxxxxxxxxxxxx"' >> ~/.bashrc
echo 'export OPENROUTER_API_KEY="sk-or-v1-xxxxxxxxxxxxxxxx"' >> ~/.bashrc
source ~/.bashrc
5. 3단계: Jev MCP 감시 레이어 바인딩
API 기반 에이전트도 언제 어디로 튈지 모른다는 점은 로컬과 동일하다. 그래서 외부 호출 길목에 Jev MCP 감시 레이어를 둔다.
# Node.js 런타임 및 MCP 브릿지 글로벌 설치
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g @modelcontextprotocol/server-bridge
설정 파일은 다음과 같이 작성한다.
{
"agent": {
"name": "Hermes-API-Production",
"llm_provider": "deepseek",
"model": "deepseek-chat",
"api_key": "env:DEEPSEEK_API_KEY",
"max_context_tokens": 128000
},
"mcp_servers": {
"jev-loop-validator": {
"command": "node",
"args": ["/usr/local/lib/node_modules/@modelcontextprotocol/server-bridge/jev-entry.js"],
"env": {
"OPENROUTER_API_KEY": "env:OPENROUTER_API_KEY",
"JEV_DECISION_THRESHOLD": "0.85"
}
}
}
}
JEV_DECISION_THRESHOLD는 Jev의 승인 임계값이다. 0.85는 파일 삭제, 외부 전송 같은 위험 행동을 85% 확신 이하에서는 차단한다는 의미다. 개인 용도라면 0.8~0.9 사이를 권장한다.
6. 4단계: PM2 데몬화로 24시간 방치형 운영
# PM2 인프라 설치 및 파이썬 에이전트 데몬 런칭
sudo npm install -g pm2
pm2 start app.py --name "hermes-api-agent" --interpreter ./venv/bin/python3
# 가상 서버 리부팅 시 가드레일 자동 부활 세팅
pm2 startup
pm2 save
pm2 startup이 출력하는 명령을 그대로 한 번 실행해야 재부팅 후 자동 부활이 된다. 상태 확인은 pm2 status, 로그 확인은 pm2 logs hermes-api-agent다.
7. 실전 돌발 리스크와 삼중 울타리
위 구조로 일주일간 방치형 가동해 보니 세 가지 돌발 상황이 실제로 발생했다.
- 무한 루프 폭주: 에이전트가 같은 API를 수백 번 재호출하며 토큰을 태움
- 과도한 파일 접근: 작업 범위를 벗어난 디렉토리에 손을 댐
- API 장애시 무한 재시도: 공급자 장애를 재시도로 메우며 비용과 부하를 키움
해결책은 실행 권한이 나가는 최종 게이트웨이에 확정적 코드 울타리를 치는 것이다.
울타리 1: 토큰 리미터 (Python)
import time
class TokenRateLimiter:
def __init__(self, max_tokens_per_hour=100000):
self.max = max_tokens_per_hour
self.used = 0
self.reset_at = time.time() + 3600
def consume(self, tokens):
now = time.time()
if now > self.reset_at:
self.used, self.reset_at = 0, now + 3600
if self.used + tokens > self.max:
raise RuntimeError("시간당 토큰 한도 초과, 에이전트 일시 정지")
self.used += tokens
울타리 2: Jev 인터셉터 규칙
위험 행동(삭제, 외부 전송, 결제)은 Jev 확신도 0.85 미만이면 무조건 차단하고 운영자에게 알림한다. 위 config.json의 threshold 설정이 바로 이것이다.
울타리 3: Docker 샌드박스
docker run -d --name agent-sandbox \
--memory=2g --cpus=1 \
-v /home/ubuntu/agent-work:/work \
--network=agent-net \
python:3.12-slim sleep infinity
에이전트의 파일 작업은 /work 안에서만 일어나게 격리한다. 호스트 시스템에는 손도 못 댄다.
8. 월 비용 시뮬레이션
| 항목 | 금액 |
|---|---|
| VPS (오픈클라우드 Micro) | 약 15,000원 |
| DeepSeek API (일 10만 토큰) | 약 1,000원 |
| Jev (판단 전용, 토큰 미생성) | API비에 포함 |
| 합계 | 약 16,000원/월 |
운영자 환경 측정 기준이다. 로컬 GPU 전기세(월 3만원 이상)와 비교해도 절반이며, 외출 중에도 스마트폰으로 접속해 지시를 내릴 수 있다.
결론
원격 가상 서버에 무거운 로컬 모델을 올리는 것은 실수다. 저가 서버 + 가성비 상용 API + Jev MCP 가드레일의 삼각 편대가 가성비와 안정성을 모두 쥔다. 지능을 밖에서 사다 쓰더라도 승인 마지노선을 확정적 코드 울타리로 옮기는 것이 방치형 운영의 핵심이다.