AI 에이전트는 좀처럼 단일 프로세스가 아닙니다. 에이전트 루프 자체가 있고, 기억을 위한 벡터 스토어, 캐시, 보통 상태를 위한 데이터베이스, 그리고 어쩌면 작은 대시보드가 있습니다. 그 각각을 손으로 실행하는 것 — 시작하고, 재부팅 후 다시 올리고, 어느 포트가 무엇인지 기억하는 것 — 은 금세 지겨워집니다. Docker Compose는 그 전체를 한 파일로 기술하고 한 명령으로 실행합니다. 이것은 에이전트를 VPS에 깔끔하게 올리기 위한 복사-붙여넣기 스택입니다.
Docker 없는 배포 버전만 원한다면 AI 에이전트 24/7 실행 가이드가 대신 systemd를 다룹니다. 이 페이지는 컨테이너 네이티브 버전입니다.
스택
전형적인 자체 호스팅 에이전트는 곁에 네 가지를 원합니다: 에이전트 프로세스, Qdrant(벡터 기억), Redis(캐시 / 큐), Postgres(상태). 다음은 그 모두를 실행하고, 내부 서비스를 공개 인터넷에서 떨어뜨려 둔 docker-compose.yml입니다:
# /opt/agent/docker-compose.yml
services:
agent:
build: . # your agent image (or image: your/agent:latest)
restart: unless-stopped
env_file: [.env] # OPENAI/ANTHROPIC keys etc. — never in this file
environment:
QDRANT_URL: http://qdrant:6333
REDIS_URL: redis://redis:6379
DATABASE_URL: postgres://agent:${DB_PASSWORD}@postgres:5432/agent
depends_on: [qdrant, redis, postgres]
# no ports: — this agent only makes outbound calls. Publish one only if it serves webhooks.
qdrant:
image: qdrant/qdrant:latest
restart: unless-stopped
volumes: ["qdrant:/qdrant/storage"] # internal only — not published
redis:
image: redis:7-alpine
restart: unless-stopped
command: ["redis-server", "--save", "60", "1"]
volumes: ["redis:/data"]
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: agent
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: agent
volumes: ["pg:/var/lib/postgresql/data"]
volumes: { qdrant: {}, redis: {}, pg: {} }
비밀은 .env에 살고, compose 파일에는 두지 않습니다:
# /opt/agent/.env (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string
올립니다:
apt update && apt install -y docker.io docker-compose-v2
systemctl enable --now docker
cd /opt/agent && docker compose up -d
docker compose logs -f agent
각 내부 서비스(Qdrant, Redis, Postgres)는 compose 네트워크에서 서비스 이름으로만 도달할 수 있습니다 — 어느 것도 인터넷에 공개되지 않습니다. 에이전트는 그 사설 네트워크를 통해 그들과 대화하고, 그 포트 위의 어떤 것도 바깥을 향하지 않습니다.
중요한 세부 사항
- 각 서비스의
restart: unless-stopped— 이것이 재부팅이나 충돌을 견디는 것입니다. 부팅 시 Docker를 활성화하면 스택 전체가 스스로 돌아옵니다. - 키는
.env에, YAML이 아니라. env 변수로 참조하고,.env를chmod 600으로, git 밖에 두세요. 유효한 키가 담긴 유출된 compose 파일은 전형적인 실수입니다. - 꼭 필요하지 않은 것은 아무것도 공개하지 마세요. 모델 API와 자기 서비스만 호출하는 에이전트는 인바운드 포트가 전혀 필요 없습니다 — 그래서 NAT 요금제면 됩니다. 웹훅이나 대시보드를 서비스할 때만 전용 IP를 추가하세요.
- 코어가 아니라 메모리로 크기를 잡으세요. API 기반 에이전트는 가볍습니다. Qdrant 인덱스가 커지거나 로컬 모델을 추가할 때가 위로 올라갈 때입니다 — 에이전트용 고메모리 VPS를 보세요.
정말 우리만의 부분: 에이전트가 자기 머신을 만들 수 있다
EQVPS가 MCP 서버를 제공하므로, 이 스택을 실행하는 에이전트는 스스로 또 다른 깨끗한 VPS를 프로비저닝할 수 있습니다 — 주문하고, root를 얻고, 허물기 — 선불 암호화폐 잔액에서 결제하면서. 새 샌드박스가 필요한 compose 스택은 루프에 사람 없이 하나를 올릴 수 있습니다.
Docker화된 에이전트에 EQVPS를 쓰는 이유
- 깨끗한 이미지, 약 60초에 root. Ubuntu/Debian;
docker compose up이면 스택이 살아납니다. - KYC 없음, 암호화폐로 결제. 가입에 이메일, 결제에 USDC/USDT — 머신을 당신의 신원에 묶는 것이 없습니다.
- NVMe + 무제한 1 Gbit/s, EU(독일/핀란드). 이미지를 당기고 로그를 보내도 깜짝 청구서가 나오지 않습니다.
AI 에이전트용 VPS(개요) → · Docker용 VPS → · 에이전트 기억을 위한 벡터 DB 호스팅 →
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.