Infrastructure as Code 방식으로 OpenClaw를 Render에 배포하세요. 저장소에 포함된 render.yaml Blueprint가 서비스, 디스크, 환경 변수 등 전체 스택을 선언적으로 정의하므로, 원클릭으로 배포하면서 인프라도 코드와 함께 버전 관리할 수 있습니다.
사전 준비
Render Blueprint로 배포
이 링크를 클릭하면:
- 저장소 루트에 있는
render.yamlBlueprint를 기반으로 새 Render 서비스가 생성됩니다. SETUP_PASSWORD입력을 요청합니다.- Docker 이미지를 빌드하고 배포합니다.
배포가 완료되면 서비스 URL은 https://<service-name>.onrender.com 형식입니다.
Blueprint 구조 이해하기
Render Blueprint는 인프라를 정의하는 YAML 파일입니다. 이 저장소의 render.yaml은
OpenClaw 실행에 필요한 모든 것을 구성합니다:
services:
- type: web
name: openclaw
runtime: docker
plan: starter
healthCheckPath: /health
envVars:
- key: PORT
value: "8080"
- key: SETUP_PASSWORD
sync: false # prompts during deploy
- key: OPENCLAW_STATE_DIR
value: /data/.openclaw
- key: OPENCLAW_WORKSPACE_DIR
value: /data/workspace
- key: OPENCLAW_GATEWAY_TOKEN
generateValue: true # auto-generates a secure token
disk:
name: openclaw-data
mountPath: /data
sizeGB: 1
Blueprint에서 사용되는 주요 기능:
| 기능 | 용도 |
|---|---|
runtime: docker | 저장소의 Dockerfile로 빌드 |
healthCheckPath | Render가 /health를 모니터링하고 비정상 인스턴스를 재시작 |
sync: false | 배포 시 값 입력을 요청 (시크릿용) |
generateValue: true | 암호학적으로 안전한 값을 자동 생성 |
disk | 재배포에도 유지되는 영구 스토리지 |
플랜 선택
| 플랜 | 스핀다운 조건 | 디스크 | 적합한 용도 |
|---|---|---|---|
| Free | 15분 유휴 시 | 사용 불가 | 테스트, 데모 |
| Starter | 없음 | 1GB+ | 개인 사용, 소규모 팀 |
| Standard+ | 없음 | 1GB+ | 프로덕션, 멀티 채널 |
Blueprint 기본값은 starter입니다. 무료 플랜을 사용하려면 포크한 저장소의
render.yaml에서 plan: free로 변경하세요. 다만 영구 디스크가 없기 때문에 배포할 때마다 설정이 초기화됩니다.
배포 후 작업
설정 마법사 완료
https://<your-service>.onrender.com/setup에 접속합니다SETUP_PASSWORD를 입력합니다- 모델 프로바이더를 선택하고 API 키를 붙여넣습니다
- 필요하면 메시징 채널(Telegram, Discord, Slack)을 구성합니다
- Run setup을 클릭합니다
Control UI 접속
웹 대시보드는 https://<your-service>.onrender.com/openclaw에서 사용할 수 있습니다.
Render 대시보드 기능
로그
Dashboard → 서비스 → Logs에서 실시간 로그를 확인할 수 있습니다. 필터 옵션:
- 빌드 로그 (Docker 이미지 생성)
- 배포 로그 (서비스 시작)
- 런타임 로그 (애플리케이션 출력)
셸 접속
디버깅이 필요하면 Dashboard → 서비스 → Shell에서 셸 세션을 열 수 있습니다. 영구 디스크는 /data에 마운트되어 있습니다.
환경 변수
Dashboard → 서비스 → Environment에서 변수를 수정할 수 있습니다. 변경 시 자동으로 재배포됩니다.
자동 배포
원본 OpenClaw 저장소를 사용하는 경우 Render가 자동으로 배포하지 않습니다. 업데이트하려면 대시보드에서 수동으로 Blueprint 동기화를 실행하세요.
커스텀 도메인
- Dashboard → 서비스 → Settings → Custom Domains로 이동합니다
- 도메인을 추가합니다
- 안내에 따라 DNS를 설정합니다 (CNAME을
*.onrender.com으로 지정) - Render가 TLS 인증서를 자동으로 발급합니다
스케일링
Render는 수평 및 수직 스케일링을 모두 지원합니다:
- 수직 스케일링: 플랜을 변경해서 CPU/RAM을 늘림
- 수평 스케일링: 인스턴스 수를 늘림 (Standard 플랜 이상)
OpenClaw의 경우 수직 스케일링만으로 대부분 충분합니다. 수평 스케일링을 적용하려면 스티키 세션이나 외부 상태 관리가 필요합니다.
백업 및 마이그레이션
언제든 아래 주소에서 설정과 워크스페이스를 내보낼 수 있습니다:
https://<your-service>.onrender.com/setup/export
다른 OpenClaw 호스트에서 복원할 수 있는 이식 가능한 백업 파일이 다운로드됩니다.
문제 해결
서비스가 시작되지 않을 때
Render 대시보드의 배포 로그를 확인하세요. 흔한 원인:
SETUP_PASSWORD누락 — Blueprint에서 입력을 요청하지만, 실제로 설정되었는지 확인하세요- 포트 불일치 —
PORT=8080이 Dockerfile에서 노출한 포트와 일치하는지 확인하세요
콜드 스타트가 느린 경우 (무료 플랜)
무료 플랜 서비스는 15분간 트래픽이 없으면 중지됩니다. 중지 후 첫 요청 시 컨테이너가 시작되는 동안 몇 초 정도 걸립니다. 항상 실행 상태를 유지하려면 Starter 플랜으로 업그레이드하세요.
재배포 후 데이터 손실
무료 플랜에서 발생하는 문제입니다 (영구 디스크 없음). 유료 플랜으로 업그레이드하거나,
/setup/export를 통해 정기적으로 설정을 내보내세요.
헬스 체크 실패
Render는 /health에서 30초 이내에 200 응답을 기대합니다. 빌드는 성공하는데 배포가 실패한다면 서비스 시작이 너무 오래 걸리는 것일 수 있습니다. 확인할 사항:
- 빌드 로그에 에러가 없는지
docker build && docker run으로 로컬에서 컨테이너가 정상 실행되는지