Oracle Cloud(OCI)에서 OpenClaw 실행
목표
Oracle Cloud의 Always Free ARM 티어에서 지속적인 OpenClaw Gateway를 실행합니다.
Oracle의 무료 티어는 OpenClaw에 훌륭한 선택이 될 수 있지만 (특히 OCI 계정이 이미 있는 경우), 트레이드오프가 있습니다:
- ARM 아키텍처 (대부분 작동하지만 일부 바이너리는 x86 전용일 수 있음)
- 용량 및 가입이 까다로울 수 있음
비용 비교 (2026)
| 제공업체 | 플랜 | 사양 | 월 가격 | 비고 |
|---|---|---|---|---|
| Oracle Cloud | Always Free ARM | 최대 4 OCPU, 24GB RAM | $0 | ARM, 제한된 용량 |
| Hetzner | CX22 | 2 vCPU, 4GB RAM | ~ $4 | 가장 저렴한 유료 옵션 |
| DigitalOcean | Basic | 1 vCPU, 1GB RAM | $6 | 쉬운 UI, 좋은 문서 |
| Vultr | Cloud Compute | 1 vCPU, 1GB RAM | $6 | 많은 위치 |
| Linode | Nanode | 1 vCPU, 1GB RAM | $5 | 현재 Akamai의 일부 |
전제 조건
- Oracle Cloud 계정 (가입) — 문제가 발생하면 커뮤니티 가입 가이드 참조
- Tailscale 계정 (tailscale.com에서 무료)
- ~30분
1) OCI 인스턴스 생성
- Oracle Cloud Console에 로그인
- Compute → Instances → Create Instance로 이동
- 구성:
- 이름: openclaw
- 이미지: Ubuntu 24.04 (aarch64)
- Shape: VM.Standard.A1.Flex (Ampere ARM)
- OCPUs: 2 (또는 최대 4)
- 메모리: 12 GB (또는 최대 24 GB)
- 부팅 볼륨: 50 GB (최대 200 GB 무료)
- SSH 키: 공개 키 추가
- Create 클릭
- 공개 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는 네트워크 엣지에서 방화벽 역할을 합니다 — 트래픽이 인스턴스에 도달하기 전에 차단됩니다.
- OCI Console에서 Networking → Virtual Cloud Networks로 이동
- VCN 클릭 → Security Lists → Default Security List
- 다음을 제외한 모든 인그레스 규칙 제거:
- 0.0.0.0/0 UDP 41641 (Tailscale)
- 기본 이그레스 규칙 유지 (모든 아웃바운드 허용)
이것은 네트워크 엣지에서 포트 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
관련 문서
- Gateway 원격 접근 — 다른 원격 접근 패턴
- Tailscale 통합 — 전체 Tailscale 문서
- Gateway 구성 — 모든 구성 옵션
- DigitalOcean 가이드 — 유료 + 더 쉬운 가입을 원하는 경우
- Hetzner 가이드 — Docker 기반 대안