VPSSpark 블로그
← 개발 일기로 돌아가기

2026 OpenClaw Linux 클라우드 VPS: 다중 프로필 병렬 게이트웨이—포트 매트릭스, systemd 사용자 단위, OPENCLAW_* 디렉터리 격리의 재현 가능한 배포와 충돌 조치 FAQ

서버 노트 · 2026.04.27 · 약 7분 소요

한 대 Linux VPS에서 격리된 OpenClaw Gateway 프로필을 병렬 운영하는 개념

Linux VPS 한 대에 둘 이상 OpenClaw Gateway 프로필(운영·스테이징·실험)을 올릴 때 실패 원인은 포트 충돌, 상태 디렉터리 공유, systemd 유닛이 같은 사용자·작업 경로를 두고 충돌하는 경우가 대부분입니다. 포트 매트릭스·systemd --user·OPENCLAW_* 격리·FAQ를 한 페이지로 묶었습니다. CI에서 큐·시크릿을 나누는 표준은 2026년 단주기 스프린트: 두 번째 macOS CI 파이프라인 vs Linux 에이전트 잡 분리 — 대기열 비용·시크릿 격리 매트릭스·FAQ와 맞닿아 있습니다.

N
프로필 ≤ 고유 포트 + 디렉터리
user@
systemd 사용자 슬라이스 격리
1
매트릭스 문서를 인프라와 함께 버전 관리

한 호스트에서 프로필을 병렬로?

VM 분리는 비용·IPv4 부담이 크고, 컨테이너도 포트 공간은 공유합니다. 프로필별로 안 겹치는 바인드 포트, 권한 분리용 전용 사용자·홈, 토큰 혼선을 막는 문서화된 env만 갖추면 VPS 한 대로도 prod·stage·dev를 나눌 수 있습니다.

포트 매트릭스: 리버스 프록시 앞에서 바인드부터

TLS 앞단을 쓰기 전에 루프백 vs 공개 바인드를 정합니다. 흔한 패턴은 Gateway를 127.0.0.1에 두고 Nginx/Caddy가 0.0.0.0:443을 받는 것입니다. 직접 HTTP 노출이면 방화벽 행을 매트릭스에 같이 적습니다.

프로필 HTTP 바인드 비고
prod 127.0.0.1:18789 유닛 이름 고정, 로드밸런서 업스트림에 고정
stage 127.0.0.1:18790 prod 토큰 재사용 금지, 별도 systemd 유닛
dev 127.0.0.1:18791 선택: VPN 또는 SSH 터널로만 접근
같은 바이너리, 다른 우주
설치 경로는 하나, env·포트·상태 루트만 프로필별로 바꿔 업그레이드는 한 번에 굴리세요.

systemd 사용자 유닛: linger, 슬라이스, 로그 경계

사용자별 systemd --userjournalctl --user -u …로 로그를 나누기 쉽습니다. 상주가 필요하면 loginctl enable-linger를 켜고, 유닛마다 WorkingDirectory=와 프로필 전용 EnvironmentFile=을 고정하세요. 시스템 유닛이면 [email protected] 같은 템플릿도 같은 원칙입니다. 프로필당 유닛 노드 하나·포트 행 하나입니다.

프로필별 환경 파일 예시 필드
# /etc/openclaw/prod.env — 모드 640, 소유자는 서비스 사용자
OPENCLAW_STATE_DIR=/var/lib/openclaw/prod
OPENCLAW_CONFIG_PATH=/etc/openclaw/prod.yaml
# Gateway 리슨 — 포트 매트릭스와 반드시 일치
OPENCLAW_GATEWAY_BIND=127.0.0.1:18789

OPENCLAW_* 디렉터리: 설정만이 아니라 상태도 격리

설정 외에 런타임 상태(세션·캐시·다운로드)가 조용히 섞입니다. OPENCLAW_STATE_DIR 등을 프로필마다 분리(/var/lib/openclaw/prod vs …/stage)하고 서비스 사용자 소유로 맞추면 백업·쿼터·삭제 범위도 prod와 분리됩니다.

홈 디렉터리 기본값 함정
병렬 프로필은 ~/.config 등 기본값으로 수렴할 수 있으니 env에 상태 루트를 절대 경로로 고정하세요.

재현 가능한 배포 체크리스트

매트릭스와 env를 인프라 코드와 같은 저장소에 둡니다. daemon-reload 후 의존성 순으로 재시작하고, 롤백은 직전 env·유닛 drop-in 한 쌍으로 적습니다. macOS launchd와의 차이는 2026 클라우드 Mac에서 OpenClaw 배포: Linux VPS와 다른 macOS 검증, launchd 상주, 재현 가능한 FAQ를 참고하세요.

프로필 추가 후 스모크 테스트

ss -lntp로 포트·PID를 유닛과 매칭하고, 루프백에서 헬스 URL을 curl한 뒤 공개 호스트명을 프록시 경유로 같은 경로로 확인합니다. TLS만 되고 트래픽이 엇나가면 업스트림 포트 행을 의심합니다.

루프백 사다리(포트·경로는 환경에 맞게)
ss -lntp | grep -E '18789|18790|18791'
curl -svS http://127.0.0.1:18789/health
curl -svS https://prod-gateway.example.com/health

환경 드리프트는 systemctl show 결과를 저장소 env와 diff하면 빨리 잡힙니다.

FAQ: 병렬 구성에서 자주 보는 충돌

Address already in use — systemd 밖 잔존 프로세스. 스테이징이 운영 토큰으로 답함EnvironmentFile 중복. 디스크 풀 — 상태 디렉터리별 쿼터·로테이션. 한 호스트만 HTTPS 이상 — 업스트림이 다른 루프백 포트를 가리킴(ACME보다 매트릭스를 먼저).

게이트웨이는 Linux, 나머지 루프는 클라우드 Mac에

병렬 OpenClaw는 Linux VPS의 낮은 대기 전력·고정 IP·예측 가능한 systemd와 잘 맞습니다. 반면 Xcode·서명·Apple CLI는 VPSSpark 클라우드 Mac mini에서 네이티브 macOS·Homebrew·SSH·컨테이너를 그대로 쓰는 편이 덜 꼬입니다. Apple Silicon 통합 메모리는 대화형 빌드에도 유리합니다.

macOS 안정성과 Gatekeeper·SIP는 장기 무인에 유리하고, M4 Mac mini 대기 전력 약 4W면 VPS 옆 상시 노드 비용도 현실적입니다.

Linux 게이트웨이와 Apple 작업을 동시에 계획 중이라면 VPSSpark 클라우드 Mac mini M4를 함께 보세요——지금 플랜 살펴보기로 양쪽 스택을 맞춰 두면 됩니다.

한정 특가

Linux 병렬 프로필 정리됐다면, 다음은 클라우드 Mac?

작은 VPS와 VPSSpark Mac mini M4로 서명·Xcode·버스트 CI를 짝지으세요

홈으로
한정 혜택 플랜 확인하기