Infrastructure as Code 방식으로 OpenClaw를 Render에 배포하세요. 저장소에 포함된 render.yaml Blueprint가 서비스, 디스크, 환경 변수 등 전체 스택을 선언적으로 정의하므로, 원클릭으로 배포하면서 인프라도 코드와 함께 버전 관리할 수 있습니다.

사전 준비

Render Blueprint로 배포

Deploy to Render

이 링크를 클릭하면:

  1. 저장소 루트에 있는 render.yaml Blueprint를 기반으로 새 Render 서비스가 생성됩니다.
  2. SETUP_PASSWORD 입력을 요청합니다.
  3. 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로 빌드
healthCheckPathRender가 /health를 모니터링하고 비정상 인스턴스를 재시작
sync: false배포 시 값 입력을 요청 (시크릿용)
generateValue: true암호학적으로 안전한 값을 자동 생성
disk재배포에도 유지되는 영구 스토리지

플랜 선택

플랜스핀다운 조건디스크적합한 용도
Free15분 유휴 시사용 불가테스트, 데모
Starter없음1GB+개인 사용, 소규모 팀
Standard+없음1GB+프로덕션, 멀티 채널

Blueprint 기본값은 starter입니다. 무료 플랜을 사용하려면 포크한 저장소의 render.yaml에서 plan: free로 변경하세요. 다만 영구 디스크가 없기 때문에 배포할 때마다 설정이 초기화됩니다.

배포 후 작업

설정 마법사 완료

  1. https://<your-service>.onrender.com/setup에 접속합니다
  2. SETUP_PASSWORD를 입력합니다
  3. 모델 프로바이더를 선택하고 API 키를 붙여넣습니다
  4. 필요하면 메시징 채널(Telegram, Discord, Slack)을 구성합니다
  5. Run setup을 클릭합니다

Control UI 접속

웹 대시보드는 https://<your-service>.onrender.com/openclaw에서 사용할 수 있습니다.

Render 대시보드 기능

로그

Dashboard → 서비스 → Logs에서 실시간 로그를 확인할 수 있습니다. 필터 옵션:

  • 빌드 로그 (Docker 이미지 생성)
  • 배포 로그 (서비스 시작)
  • 런타임 로그 (애플리케이션 출력)

셸 접속

디버깅이 필요하면 Dashboard → 서비스 → Shell에서 셸 세션을 열 수 있습니다. 영구 디스크는 /data에 마운트되어 있습니다.

환경 변수

Dashboard → 서비스 → Environment에서 변수를 수정할 수 있습니다. 변경 시 자동으로 재배포됩니다.

자동 배포

원본 OpenClaw 저장소를 사용하는 경우 Render가 자동으로 배포하지 않습니다. 업데이트하려면 대시보드에서 수동으로 Blueprint 동기화를 실행하세요.

커스텀 도메인

  1. Dashboard → 서비스 → Settings → Custom Domains로 이동합니다
  2. 도메인을 추가합니다
  3. 안내에 따라 DNS를 설정합니다 (CNAME을 *.onrender.com으로 지정)
  4. 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으로 로컬에서 컨테이너가 정상 실행되는지