OpenClaw on Oracle Cloud (OCI)

目標

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. 設定:
    • Name: openclaw
    • Image: Ubuntu 24.04 (aarch64)
    • Shape: VM.Standard.A1.Flex(Ampere ARM)
    • OCPUs: 2(または最大4)
    • Memory: 12 GB(または最大24 GB)
    • Boot volume: 50 GB(最大200 GB無料)
    • SSH key: 公開鍵を追加
  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 + トークン認証)し、Tailscale Serveを有効化

デフォルトとしてトークン認証を使用します。これは予測可能で、「insecure auth」Control UIフラグが不要です。

# GatewayをVM上でプライベートに保つ
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

# デーモンステータスを確認
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>をtailnet名(tailscale statusで確認可能)に置き換えます。

SSHトンネルは不要です。Tailscaleが提供:

  • HTTPS暗号化(自動証明書)
  • Tailscale IDによる認証
  • tailnet上の任意のデバイス(ラップトップ、電話など)からのアクセス

セキュリティ: VCN + Tailscale(推奨ベースライン)

VCNをロックダウン(UDP 41641のみ開放)し、Gatewayをloopbackにバインドすることで、強力な多層防御が得られます: パブリックトラフィックはネットワークエッジでブロックされ、管理アクセスはtailnet経由で行われます。

このセットアップにより、インターネット全体のSSHブルートフォースを単に阻止するためだけに追加のホストベースファイアウォールルールが不要になることがよくあります — しかし、OSを最新に保ち、openclaw security auditを実行し、誤ってパブリックインターフェースでリッスンしていないことを確認する必要があります。

既に保護されているもの

従来のステップ必要?理由
UFWファイアウォールいいえVCNがトラフィックがインスタンスに到達する前にブロック
fail2banいいえVCNでポート22がブロックされている場合、ブルートフォースなし
sshdの強化いいえTailscale SSHはsshdを使用しない
rootログインの無効化いいえTailscaleはTailscale IDを使用、システムユーザーではない
SSHキーのみの認証いいえTailscaleはtailnet経由で認証
IPv6の強化通常は不要VCN/サブネット設定による。実際に割り当て/公開されているものを確認

まだ推奨されるもの

  • 認証情報のパーミッション: chmod 700 ~/.openclaw
  • セキュリティ監査: openclaw security audit
  • システムアップデート: 定期的にsudo apt update && sudo apt upgrade
  • Tailscaleの監視: Tailscale admin consoleでデバイスを確認

セキュリティ態勢を確認

# パブリックポートがリッスンしていないことを確認
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/ — workspace(SOUL.md、memory、artifacts)

定期的にバックアップ:

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

関連項目