튜토리얼 카테고리 Skills 소개
ZH EN JA KO
설치 및 배포

Fly.io에 OpenClaw 배포 완전 가이드

· 8 분 소요

Fly.io를 선택하는 이유

Fly.io는 개발자 지향 현대 클라우드 플랫폼으로, 전 세계 여러 엣지 노드에 애플리케이션을 배포할 수 있습니다. OpenClaw과 같은 AI Agent 게이트웨이에 Fly.io는 몇 가지 뚜렷한 장점을 제공합니다: 무료 쿼터로 소규모 인스턴스 운영 가능, 간결하고 효율적인 배포 프로세스, 영속 스토리지 볼륨 지원, 그리고 사용자에게 가장 가까운 데이터 센터 선택 가능.

이 글에서는 Fly.io에서 OpenClaw의 전체 배포 과정을 처음부터 안내합니다.

사전 준비

시작하기 전에 다음 항목을 준비해야 합니다:

  • Fly.io 계정 (fly.io에서 등록)
  • 로컬에 flyctl 명령줄 도구 설치
  • 설정이 완료된 OpenClaw 프로젝트 (또는 처음부터 시작할 준비)

flyctl 설치

macOS 또는 Linux에서 다음 명령으로 flyctl을 설치합니다:

curl -L https://fly.io/install.sh | sh

설치가 완료되면 Fly.io 계정에 로그인합니다:

fly auth login

Dockerfile 생성

Fly.io는 Docker 배포를 기본 지원합니다. 먼저 프로젝트 디렉토리에 Dockerfile을 생성합니다:

FROM node:22-slim

WORKDIR /app

RUN npm install -g openclaw@latest

RUN mkdir -p /root/.openclaw

EXPOSE 3000

CMD ["openclaw", "start"]

이 Dockerfile은 Node.js 22 공식 이미지를 베이스로 사용하고, OpenClaw을 전역으로 설치하며, 기본 포트 3000을 노출합니다. 다른 런타임이 아닌 node:22-slim을 사용하는 이유는 OpenClaw이 Node.js 22+ 환경을 요구하며, Bun 사용을 권장하지 않기 때문입니다 (WhatsApp 및 Telegram 연결 처리 시 알려진 문제 존재).

Fly.io 애플리케이션 초기화

프로젝트 디렉토리에서 다음 명령을 실행합니다:

fly launch

flyctl이 Dockerfile을 자동으로 감지하고 초기화 과정을 안내합니다. 다음 항목을 선택해야 합니다:

  • 애플리케이션 이름: 예를 들어 my-openclaw-gateway
  • 배포 지역: 대상 사용자에게 가장 가까운 지역 선택, 예: hkg(홍콩) 또는 nrt(도쿄)
  • 리소스 구성: OpenClaw 실행 메모리는 최소 256MB 이상, 512MB 권장

초기화가 완료되면 프로젝트 루트 디렉토리에 fly.toml 설정 파일이 생성됩니다.

fly.toml 설정

생성된 fly.toml 파일을 열고 다음 핵심 설정을 확인합니다:

app = "my-openclaw-gateway"
primary_region = "hkg"

[build]

[http_service]
  internal_port = 3000
  force_https = true
  auto_stop_machines = false
  auto_start_machines = true
  min_machines_running = 1

[mounts]
  source = "openclaw_data"
  destination = "/root/.openclaw"

여기서 몇 가지 중요한 설정 항목에 주의해야 합니다. auto_stop_machinesfalse로 설정하면 Fly.io가 유휴 시 인스턴스를 종료하는 것을 방지합니다 -- OpenClaw은 메시지 게이트웨이로서 WhatsApp, Telegram, Discord 등 채팅 플랫폼의 메시지를 수신하기 위해 지속적으로 실행되어야 합니다. mounts 부분은 영속 스토리지 볼륨을 OpenClaw의 설정 디렉토리 ~/.openclaw에 마운트하여 재시작 후에도 설정과 데이터가 유지되도록 합니다.

영속 스토리지 볼륨 생성

배포 전에 스토리지 볼륨을 먼저 생성합니다:

fly volumes create openclaw_data --region hkg --size 1

이 명령은 홍콩 지역에 1GB 스토리지 볼륨을 생성하며, OpenClaw의 설정 파일과 데이터를 저장하는 데 사용됩니다.

환경 변수 설정

OpenClaw의 민감한 설정은 Fly.io의 Secrets 기능을 통해 안전하게 관리할 수 있습니다:

fly secrets set OPENCLAW_API_KEY="당신의API키"
fly secrets set OPENCLAW_WEBHOOK_URL="https://my-openclaw-gateway.fly.dev/webhook"

배포 실행

모든 준비가 완료되면 배포 명령을 실행합니다:

fly deploy

flyctl이 자동으로 Docker 이미지를 빌드하고, Fly.io의 이미지 레지스트리에 푸시한 후 애플리케이션을 시작합니다. 전체 과정은 보통 2-5분 소요됩니다.

배포가 완료되면 애플리케이션 상태를 확인합니다:

fly status

실행 로그를 확인하여 OpenClaw이 정상적으로 시작되었는지 확인합니다:

fly logs

배포 후 설정

애플리케이션이 성공적으로 실행되면 OpenClaw의 초기 설정을 완료해야 합니다. SSH로 인스턴스에 연결합니다:

fly ssh console

인스턴스에서 OpenClaw의 가이드 프로그램을 실행합니다:

openclaw onboard --install-daemon

대화형 안내에 따라 AI 모델 설정과 채팅 플랫폼 연결을 완료합니다. 완료 후 진단 명령을 실행하여 모든 것이 정상인지 확인합니다:

openclaw doctor

다음 명령으로 OpenClaw 관리 패널에 접근할 수도 있습니다:

openclaw dashboard

관리 패널은 기본적으로 포트 3000에서 실행되며, https://my-openclaw-gateway.fly.dev를 통해 접근할 수 있습니다.

커스텀 도메인

자체 도메인을 사용하려면 다음 명령으로 추가할 수 있습니다:

fly certs create openclaw.yourdomain.com

그런 다음 DNS 서비스 제공업체에서 Fly.io가 할당한 주소를 가리키는 CNAME 레코드를 추가합니다.

확장 및 모니터링

사용자 수가 증가하면 간편하게 확장할 수 있습니다:

fly scale count 2
fly scale vm shared-cpu-2x

Fly.io에 내장된 모니터링 대시보드를 통해 CPU, 메모리 사용률 및 네트워크 트래픽을 추적할 수 있습니다.

일반적인 문제 해결

배포 후 문제가 발생하면 먼저 로그를 확인합니다:

fly logs --app my-openclaw-gateway

스토리지 볼륨이 올바르게 마운트되었는지, 포트 설정이 정확한지, Node.js 버전이 22 이상인지 확인합니다. 애플리케이션이 반복적으로 충돌하는 경우 메모리 쿼터를 늘리거나 OpenClaw 설정 파일 ~/.openclaw/openclaw.json이 올바른지 확인해 보세요.

정리

Fly.io를 통한 OpenClaw 배포는 가볍고 경제적인 방안으로, 개인 개발자와 소규모 팀에 특히 적합합니다. 전 세계 다지역 배포 능력과 간결한 CLI 도구를 통해 몇 분 안에 OpenClaw AI Agent 게이트웨이를 배포하고, 선호하는 채팅 플랫폼과 AI 모델을 연결할 수 있습니다.

OpenClaw는 무료 오픈소스 개인 AI 어시스턴트로, WhatsApp, Telegram, Discord 등 다양한 플랫폼을 지원합니다