Oracle Cloud(OCI)에서 OpenClaw 운영

목표

Oracle Cloud의 Always Free ARM 티어에서 영구적인 OpenClaw 게이트웨이를 운영합니다.

Oracle의 무료 티어는 OpenClaw에 적합할 수 있지만(특히 OCI 계정이 이미 있는 경우), 트레이드오프가 있습니다:

  • ARM 아키텍처 (대부분 동작하지만 일부 바이너리가 x86 전용일 수 있음)
  • 용량 확보 및 가입이 까다로울 수 있음

비용 비교 (2026)

공급자플랜사양월 비용비고
Oracle CloudAlways Free ARM최대 4 OCPU, 24GB RAM$0ARM, 제한된 용량
HetznerCX222 vCPU, 4GB RAM~ $4가장 저렴한 유료 옵션
DigitalOceanBasic1 vCPU, 1GB RAM$6쉬운 UI, 좋은 문서
VultrCloud Compute1 vCPU, 1GB RAM$6다양한 리전
LinodeNanode1 vCPU, 1GB RAM$5현재 Akamai 소속

사전 요구 사항

1) OCI 인스턴스 생성

  1. Oracle Cloud 콘솔에 로그인
  2. Compute → Instances → Create Instance로 이동
  3. 설정:
    • 이름: openclaw
    • 이미지: Ubuntu 24.04 (aarch64)
    • Shape: VM.Standard.A1.Flex (Ampere ARM)
    • OCPU: 2 (최대 4)
    • 메모리: 12 GB (최대 24 GB)
    • 부팅 볼륨: 50 GB (최대 200 GB 무료)
    • SSH 키: 공개 키 추가
  4. Create 클릭
  5. 퍼블릭 IP 주소 기록

팁: “Out of capacity” 오류로 인스턴스 생성에 실패하면, 다른 가용 도메인을 시도하거나 나중에 다시 시도하세요. 무료 티어 용량은 제한적입니다.

2) 접속 및 업데이트

# 퍼블릭 IP로 접속
ssh ubuntu@YOUR_PUBLIC_IP

# 시스템 업데이트
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential

참고: build-essential은 일부 의존성의 ARM 컴파일에 필요합니다.

3) 사용자 및 호스트명 설정

# 호스트명 설정
sudo hostnamectl set-hostname openclaw

# ubuntu 사용자 비밀번호 설정
sudo passwd ubuntu

# lingering 활성화 (로그아웃 후에도 사용자 서비스 유지)
sudo loginctl enable-linger ubuntu

4) Tailscale 설치

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh --hostname=openclaw

Tailscale SSH가 활성화되어, 테일넷의 어느 디바이스에서든 ssh openclaw로 접속할 수 있습니다 — 퍼블릭 IP 불필요.

확인:

tailscale status

이제부터는 Tailscale로 접속하세요: ssh ubuntu@openclaw (또는 Tailscale IP 사용).

5) OpenClaw 설치

curl -fsSL https://openclaw.ai/install.sh | bash
source ~/.bashrc

“How do you want to hatch your bot?” 프롬프트에서 **“Do this later”**를 선택하세요.

참고: ARM 네이티브 빌드 문제가 발생하면, Homebrew보다 시스템 패키지(예: sudo apt install -y build-essential)를 먼저 사용하세요.

6) 게이트웨이 설정 (루프백 + 토큰 인증) 및 Tailscale Serve 활성화

토큰 인증을 기본으로 사용하세요. 예측 가능하며, “안전하지 않은 인증” Control UI 플래그가 필요 없습니다.

# VM에서 게이트웨이를 비공개로 유지
openclaw config set gateway.bind loopback

# 게이트웨이 + Control UI에 인증 필요
openclaw config set gateway.auth.mode token
openclaw doctor --generate-gateway-token

# Tailscale Serve를 통해 노출 (HTTPS + 테일넷 접근)
openclaw config set gateway.tailscale.mode serve
openclaw config set gateway.trustedProxies '["127.0.0.1"]'

systemctl --user restart openclaw-gateway

7) 확인

# 버전 확인
openclaw --version

# 데몬 상태 확인
systemctl --user status openclaw-gateway

# Tailscale Serve 확인
tailscale serve status

# 로컬 응답 테스트
curl http://localhost:18789

8) VCN 보안 잠금

모든 것이 동작하는 것을 확인한 후, Tailscale을 제외한 모든 트래픽을 차단하도록 VCN을 잠그세요. OCI의 Virtual Cloud Network은 네트워크 엣지에서 방화벽 역할을 하여, 트래픽이 인스턴스에 도달하기 전에 차단합니다.

  1. OCI 콘솔에서 Networking → Virtual Cloud Networks로 이동
  2. VCN → Security Lists → Default Security List 클릭
  3. 다음을 제외한 모든 인그레스 규칙 제거:
    • 0.0.0.0/0 UDP 41641 (Tailscale)
  4. 기본 이그레스 규칙 유지 (모든 아웃바운드 허용)

이렇게 하면 네트워크 엣지에서 포트 22의 SSH, HTTP, HTTPS 및 모든 것이 차단됩니다. 이후에는 Tailscale을 통해서만 접속할 수 있습니다.


Control UI 접근

Tailscale 네트워크의 모든 디바이스에서:

https://openclaw.<tailnet-name>.ts.net/

<tailnet-name>을 테일넷 이름으로 바꾸세요 (tailscale status에서 확인 가능).

SSH 터널 불필요. Tailscale이 제공하는 기능:

  • HTTPS 암호화 (자동 인증서)
  • Tailscale 아이덴티티를 통한 인증
  • 테일넷의 모든 디바이스(노트북, 스마트폰 등)에서 접근

보안: VCN + Tailscale (권장 기본 구성)

VCN이 잠겨 있고(UDP 41641만 개방) 게이트웨이가 루프백에 바인딩되어 있으면, 강력한 심층 방어를 확보합니다: 퍼블릭 트래픽은 네트워크 엣지에서 차단되고, 관리 접근은 테일넷을 통해 이루어집니다.

이 설정으로 인터넷 전체의 SSH 무차별 대입 공격을 막기 위한 추가 호스트 기반 방화벽 규칙의 _필요성_이 대부분 제거되지만, OS를 최신 상태로 유지하고 openclaw security audit를 실행하며, 퍼블릭 인터페이스에서 실수로 리스닝하고 있지 않은지 확인해야 합니다.

이미 보호된 항목

전통적인 단계필요 여부이유
UFW 방화벽아니오VCN이 트래픽이 인스턴스에 도달하기 전에 차단
fail2ban아니오VCN에서 포트 22가 차단되면 무차별 대입 공격 없음
sshd 하드닝아니오Tailscale SSH는 sshd를 사용하지 않음
root 로그인 비활성화아니오Tailscale은 시스템 사용자가 아닌 Tailscale 아이덴티티 사용
SSH 키 전용 인증아니오Tailscale은 테일넷을 통해 인증
IPv6 하드닝대체로 불필요VCN/서브넷 설정에 따라 다름; 실제 할당/노출 확인 필요

여전히 권장 사항

  • 자격 증명 권한: chmod 700 ~/.openclaw
  • 보안 감사: openclaw security audit
  • 시스템 업데이트: sudo apt update && sudo apt upgrade 정기적으로 실행
  • Tailscale 모니터링: Tailscale 관리 콘솔에서 디바이스 확인

보안 상태 확인

# 퍼블릭 포트 리스닝 없음 확인
sudo ss -tlnp | grep -v '127.0.0.1\|::1'

# Tailscale SSH 활성 확인
tailscale status | grep -q 'offers: ssh' && echo "Tailscale SSH active"

# 선택: sshd 완전 비활성화
sudo systemctl disable --now ssh

대안: SSH 터널

Tailscale Serve가 동작하지 않으면 SSH 터널을 사용하세요:

# 로컬 머신에서 (Tailscale을 통해)
ssh -L 18789:127.0.0.1:18789 ubuntu@openclaw

그런 다음 http://localhost:18789을 여세요.


문제 해결

인스턴스 생성 실패 (“Out of capacity”)

무료 티어 ARM 인스턴스는 인기가 많습니다. 다음을 시도하세요:

  • 다른 가용 도메인
  • 비피크 시간(이른 아침)에 재시도
  • Shape 선택 시 “Always Free” 필터 사용

Tailscale 연결 불가

# 상태 확인
sudo tailscale status

# 재인증
sudo tailscale up --ssh --hostname=openclaw --reset

게이트웨이가 시작되지 않음

openclaw gateway status
openclaw doctor --non-interactive
journalctl --user -u openclaw-gateway -n 50

Control UI에 접근할 수 없음

# Tailscale Serve 실행 확인
tailscale serve status

# 게이트웨이 리스닝 확인
curl http://localhost:18789

# 필요 시 재시작
systemctl --user restart openclaw-gateway

ARM 바이너리 문제

일부 도구에 ARM 빌드가 없을 수 있습니다. 확인:

uname -m  # aarch64여야 함

대부분의 npm 패키지는 정상 동작합니다. 바이너리의 경우 linux-arm64 또는 aarch64 릴리스를 찾으세요.


영속성

모든 상태는 다음에 저장됩니다:

  • ~/.openclaw/ — 설정, 자격 증명, 세션 데이터
  • ~/.openclaw/workspace/ — 작업 공간 (SOUL.md, 메모리, 아티팩트)

주기적으로 백업하세요:

tar -czvf openclaw-backup.tar.gz ~/.openclaw ~/.openclaw/workspace

참고 자료