Oracle Cloud(OCI)에서 OpenClaw 실행

목표

Oracle Cloud의 Always Free ARM 티어에서 지속적인 OpenClaw Gateway를 실행합니다.

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 Console에 로그인
  2. Compute → Instances → Create Instance로 이동
  3. 구성:
    • 이름: openclaw
    • 이미지: Ubuntu 24.04 (aarch64)
    • Shape: VM.Standard.A1.Flex (Ampere ARM)
    • OCPUs: 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를 활성화하여 tailnet의 모든 기기에서 ssh openclaw로 연결할 수 있습니다 — 공개 IP 불필요.

확인:

tailscale status

이제부터 Tailscale을 통해 연결: ssh ubuntu@openclaw (또는 Tailscale IP 사용).

5) OpenClaw 설치

curl -fsSL https://openclaw.bot/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) Gateway 구성 (loopback + token 인증) 및 Tailscale Serve 활성화

token 인증을 기본값으로 사용하세요. 예측 가능하며 "비보안 인증" Control UI 플래그가 필요하지 않습니다.

# VM에서 Gateway를 private으로 유지
openclaw config set gateway.bind loopback

# Gateway + Control UI에 인증 요구
openclaw config set gateway.auth.mode token
openclaw doctor --generate-gateway-token

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

systemctl --user restart openclaw-gateway

7) 확인

# 버전 확인
openclaw --version

# Daemon 상태 확인
systemctl --user status openclaw-gateway

# Tailscale Serve 확인
tailscale serve status

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

8) VCN 보안 잠금

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

  1. OCI Console에서 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>을 tailnet 이름으로 바꾸세요 (tailscale status에서 확인 가능).

SSH 터널이 필요 없습니다. Tailscale이 제공하는 것:

  • HTTPS 암호화 (자동 인증서)
  • Tailscale identity를 통한 인증
  • Tailnet의 모든 기기에서 접근 (노트북, 휴대폰 등)

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

VCN이 잠겨 있고 (UDP 41641만 열림) Gateway가 loopback에 바인드된 상태에서, 강력한 심층 방어를 얻습니다: 공개 트래픽은 네트워크 엣지에서 차단되고, 관리 접근은 tailnet을 통해 이루어집니다.

이 설정은 종종 인터넷 전체의 SSH 무차별 대입 공격을 막기 위한 추가 호스트 기반 방화벽 규칙의 필요성을 제거합니다 — 그러나 여전히 OS를 업데이트하고, openclaw security audit를 실행하고, 실수로 공개 인터페이스에서 수신 대기하지 않는지 확인해야 합니다.

이미 보호되는 것

전통적인 단계필요?이유
UFW 방화벽아니오VCN이 트래픽이 인스턴스에 도달하기 전에 차단
fail2ban아니오포트 22가 VCN에서 차단된 경우 무차별 대입 공격 없음
sshd 강화아니오Tailscale SSH는 sshd를 사용하지 않음
root 로그인 비활성화아니오Tailscale은 시스템 사용자가 아닌 Tailscale identity 사용
SSH 키 전용 인증아니오Tailscale은 tailnet을 통해 인증
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

Gateway가 시작되지 않음

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

Control UI에 도달할 수 없음

# Tailscale Serve가 실행 중인지 확인
tailscale serve status

# Gateway가 수신 대기 중인지 확인
curl http://localhost:18789

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

ARM 바이너리 문제

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

uname -m  # aarch64를 표시해야 함

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


지속성

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

  • ~/.openclaw/ — 구성, 자격 증명, 세션 데이터
  • ~/.openclaw/workspace/ — 작업 공간 (SOUL.md, memory, 아티팩트)

주기적으로 백업:

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

관련 문서