GCP Compute Engine에서 OpenClaw 실행하기
목표
Docker를 사용해 GCP Compute Engine VM에서 OpenClaw Gateway를 지속적으로 실행합니다. 상태는 영구 보존되고, 필요한 바이너리는 이미지에 포함되며, 재시작 동작도 안전하게 유지하는 구성을 목표로 합니다. 월 약$5-12 수준으로 OpenClaw를 24시간 운영하고 싶다면 Google Cloud에서 충분히 실용적인 선택입니다. 비용은 머신 타입과 리전에 따라 달라지므로, 먼저 가장 작은 VM부터 시작하고 OOM이 발생하면 사양을 올리세요.
무엇을 하게 되나요?
- GCP 프로젝트를 만들고 billing을 활성화합니다.
- Compute Engine VM을 생성합니다.
- Docker를 설치합니다.
- Docker 안에서 OpenClaw Gateway를 실행합니다.
- 호스트의
~/.openclaw와~/.openclaw/workspace를 영구 보존합니다. - SSH 터널을 통해 노트북에서 Control UI에 접속합니다.
- 노트북에서 SSH port forwarding 사용
- firewall과 token을 직접 관리하면서 포트를 외부에 노출
빠른 경로(숙련자용)
- GCP 프로젝트를 만들고 Compute Engine API를 활성화합니다.
- Compute Engine VM을 생성합니다(
e2-small, Debian 12, 20GB). - VM에 SSH로 접속합니다.
- Docker를 설치합니다.
- OpenClaw 저장소를 클론합니다.
- 호스트 영구 디렉터리를 만듭니다.
.env와docker-compose.yml을 구성합니다.- 필요한 바이너리를 이미지에 bake하고 빌드 및 실행합니다.
준비 사항
- GCP 계정(
e2-micro는 free tier 대상일 수 있음) gcloudCLI 설치 또는 Cloud Console 사용- 노트북에서 SSH 접속 가능
- SSH와 복사/붙여넣기에 대한 기본 이해
- 20~30분 정도의 작업 시간
- Docker와 Docker Compose
- 모델 인증 정보
- 선택적 provider 자격 증명
- WhatsApp QR
- Telegram bot token
- Gmail OAuth
1) gcloud CLI 설치(또는 Console 사용)
옵션 A: gcloud CLI(자동화에 권장)
https://cloud.google.com/sdk/docs/install에서 설치합니다.
초기화와 인증:
2) GCP 프로젝트 만들기
CLI:- IAM & Admin > Create Project로 이동합니다.
- 프로젝트 이름을 정하고 생성합니다.
- 해당 프로젝트에 billing을 연결합니다.
- APIs & Services > Enable APIs에서 “Compute Engine API”를 검색해 활성화합니다.
3) VM 만들기
머신 타입| Type | Specs | Cost | Notes |
|---|---|---|---|
| e2-medium | 2 vCPU, 4GB RAM | ~$25/mo | 로컬 Docker 빌드에 가장 안정적 |
| e2-small | 2 vCPU, 2GB RAM | ~$12/mo | Docker build 최소 권장 사양 |
| e2-micro | 2 vCPU (shared), 1GB RAM | Free tier eligible | Docker build 중 OOM(exit 137)이 자주 발생 |
- Compute Engine > VM instances > Create instance로 이동합니다.
- 이름은
openclaw-gateway로 지정합니다. - Region은
us-central1, Zone은us-central1-a를 선택합니다. - Machine type은
e2-small을 선택합니다. - Boot disk는 Debian 12, 20GB로 설정합니다.
- 생성합니다.
4) VM에 SSH 접속
CLI:5) Docker 설치(VM 내부)
6) OpenClaw 저장소 클론
7) 영구 호스트 디렉터리 만들기
Docker 컨테이너는 일시적입니다. 오래 유지해야 하는 상태는 모두 호스트에 있어야 합니다.8) 환경 변수 구성
저장소 루트에.env를 만듭니다.
9) Docker Compose 구성
docker-compose.yml을 만들거나 갱신합니다.
10) 필요한 바이너리를 이미지에 bake하기(중요)
실행 중인 컨테이너 안에 바이너리를 설치하는 방식은 함정입니다. 런타임에 설치한 내용은 재시작하면 사라집니다. skill이 필요로 하는 외부 바이너리는 모두 이미지 빌드 시점에 설치해야 합니다. 아래 예시는 대표적인 세 가지 바이너리만 보여줍니다.- Gmail 접근용
gog - Google Places용
goplaces - WhatsApp용
wacli
- Dockerfile을 수정합니다.
- 이미지를 다시 빌드합니다.
- 컨테이너를 재시작합니다.
11) 빌드 및 실행
pnpm install --frozen-lockfile 중 Killed 또는 exit code 137이 나면 VM 메모리가 부족한 것입니다. 최소 e2-small, 가능하면 첫 빌드는 e2-medium이 더 안정적입니다.
OPENCLAW_GATEWAY_BIND=lan으로 LAN 바인딩하는 경우, 다음 단계로 가기 전에 trusted browser origin을 설정해야 합니다.
18789를 그 포트로 바꾸세요.
바이너리 확인:
12) Gateway 확인
13) 노트북에서 접근
Gateway 포트를 전달하는 SSH 터널을 만듭니다.http://127.0.0.1:18789/
새 tokenized dashboard link를 가져옵니다.
unauthorized 또는 disconnected (1008): pairing required가 보이면 브라우저 디바이스를 승인합니다.
무엇이 어디에 보존되나(source of truth)
OpenClaw는 Docker 안에서 실행되지만, Docker 자체가 source of truth는 아닙니다. 모든 장기 상태는 재시작, 재빌드, 재부팅 후에도 남아야 합니다.| Component | Location | Persistence mechanism | Notes |
|---|---|---|---|
| Gateway config | /home/node/.openclaw/ | Host volume mount | openclaw.json, token 포함 |
| Model auth profiles | /home/node/.openclaw/ | Host volume mount | OAuth token, API key |
| Skill configs | /home/node/.openclaw/skills/ | Host volume mount | Skill 수준 상태 |
| Agent workspace | /home/node/.openclaw/workspace/ | Host volume mount | 코드와 agent 산출물 |
| WhatsApp session | /home/node/.openclaw/ | Host volume mount | QR 로그인 유지 |
| Gmail keyring | /home/node/.openclaw/ | Host volume + password | GOG_KEYRING_PASSWORD 필요 |
| External binaries | /usr/local/bin/ | Docker image | 빌드 시점에 bake 필요 |
| Node runtime | Container filesystem | Docker image | 이미지 재빌드 때마다 교체 |
| OS packages | Container filesystem | Docker image | 런타임 설치 금지 |
| Docker container | Ephemeral | Restartable | 삭제해도 무방 |
업데이트
VM에서 OpenClaw를 업데이트하려면:문제 해결
SSH connection refused VM 생성 직후에는 SSH key 전파에 1~2분 걸릴 수 있습니다. 잠시 기다렸다가 다시 시도하세요. OS Login issues OS Login profile을 확인합니다.Killed와 exit code 137로 실패하면 VM이 OOM-kill된 것입니다. e2-small 이상으로 올리거나, 첫 빌드 안정성을 원하면 e2-medium을 권장합니다.
Service account(보안 모범 사례)
개인 용도라면 기본 사용자 계정으로도 충분합니다. 자동화나 CI/CD 파이프라인에서 운영한다면 최소 권한만 가진 전용 service account를 만드세요.-
service account 생성:
-
Compute Instance Admin 역할(또는 더 좁은 custom role) 부여:
다음 단계
- 메시징 채널 설정: Channels
- 로컬 디바이스를 node로 페어링: Nodes
- Gateway 구성: Gateway configuration