Infrastructure as Code를 사용하여 Render에 OpenClaw를 배포하세요. 포함된 render.yaml Blueprint는 서비스, 디스크, 환경 변수 등 전체 스택을 선언적으로 정의하므로 한 번의 클릭으로 배포하고 코드와 함께 인프라를 버전 관리할 수 있습니다.
사전 요구 사항
- Render 계정 (무료 티어 사용 가능)
- 선호하는 모델 Provider의 API 키
Render Blueprint로 배포
Render에 배포이 링크를 클릭하면:
- 이 리포지토리의 루트에 있는 render.yaml Blueprint에서 새 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 # 배포 중 프롬프트
- key: OPENCLAW_STATE_DIR
value: /data/.openclaw
- key: OPENCLAW_WORKSPACE_DIR
value: /data/workspace
- key: OPENCLAW_GATEWAY_TOKEN
generateValue: true # 안전한 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+ | 프로덕션, 여러 Channel |
Blueprint는 기본적으로 starter입니다. 무료 티어를 사용하려면 포크된 render.yaml에서 plan: free로 변경하세요 (단, 영구 디스크가 없으므로 각 배포 시 설정이 재설정됩니다).
배포 후
설정 마법사 완료
- https://<your-service>.onrender.com/setup으로 이동합니다
- SETUP_PASSWORD를 입력합니다
- 모델 Provider를 선택하고 API 키를 붙여넣습니다
- 선택적으로 메시징 Channel을 구성합니다 (Telegram, Discord, Slack)
- Run setup을 클릭합니다
Control UI 액세스
웹 대시보드는 https://<your-service>.onrender.com/openclaw에서 사용할 수 있습니다.
Render 대시보드 기능
로그
Dashboard → 서비스 → Logs에서 실시간 로그를 확인하세요. 필터링 기준:
- 빌드 로그 (Docker 이미지 생성)
- 배포 로그 (서비스 시작)
- 런타임 로그 (애플리케이션 출력)
Shell 액세스
디버깅을 위해 Dashboard → 서비스 → Shell을 통해 Shell 세션을 엽니다. 영구 디스크는 /data에 마운트됩니다.
환경 변수
Dashboard → 서비스 → Environment에서 변수를 수정합니다. 변경 사항은 자동 재배포를 트리거합니다.
자동 배포
원본 OpenClaw 리포지토리를 사용하는 경우 Render는 OpenClaw를 자동으로 배포하지 않습니다. 업데이트하려면 대시보드에서 수동 Blueprint 동기화를 실행하세요.
사용자 정의 도메인
- Dashboard → 서비스 → Settings → Custom Domains로 이동합니다
- 도메인을 추가합니다
- 지시에 따라 DNS를 구성합니다 (*.onrender.com에 대한 CNAME)
- Render가 TLS 인증서를 자동으로 프로비저닝합니다
확장
Render는 수평 및 수직 확장을 지원합니다:
- 수직: 플랜을 변경하여 더 많은 CPU/RAM 얻기
- 수평: 인스턴스 수 증가 (Standard 플랜 이상)
OpenClaw의 경우 수직 확장이 일반적으로 충분합니다. 수평 확장에는 고정 Session 또는 외부 상태 관리가 필요합니다.
백업 및 마이그레이션
언제든지 설정과 Workspace를 내보냅니다:
https://<your-service>.onrender.com/setup/export
이렇게 하면 모든 OpenClaw 호스트에서 복원할 수 있는 이식 가능한 백업을 다운로드합니다.
문제 해결
서비스가 시작되지 않음
Render 대시보드에서 배포 로그를 확인하세요. 일반적인 문제:
- 누락된 SETUP_PASSWORD — Blueprint가 이를 요청하지만 설정되었는지 확인하세요
- 포트 불일치 — PORT=8080이 Dockerfile의 노출된 포트와 일치하는지 확인하세요
느린 콜드 스타트 (무료 티어)
무료 티어 서비스는 15분의 비활성 후 스핀다운됩니다. 스핀다운 후 첫 번째 요청은 컨테이너가 시작되는 동안 몇 초가 걸립니다. 항상 켜져 있으려면 Starter 플랜으로 업그레이드하세요.
재배포 후 데이터 손실
이는 무료 티어 (영구 디스크 없음)에서 발생합니다. 유료 플랜으로 업그레이드하거나 /setup/export를 통해 정기적으로 설정을 내보내세요.
상태 확인 실패
Render는 30초 이내에 /health에서 200 응답을 기대합니다. 빌드는 성공하지만 배포가 실패하는 경우 서비스가 시작하는 데 너무 오래 걸릴 수 있습니다. 확인:
- 오류에 대한 빌드 로그
- docker build && docker run으로 컨테이너가 로컬에서 실행되는지 여부