Oracle CloudでOpenClawを動かす(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. 設定:
    • 名前: openclaw
    • イメージ: Ubuntu 24.04(aarch64)
    • シェイプ: 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) Gateway(ループバック+トークン認証)を設定して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+テールネットアクセス)
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 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>はお使いのテールネット名に置き換えてください(tailscale statusで確認可能)。

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

  • HTTPS暗号化(自動証明書)
  • Tailscaleアイデンティティによる認証
  • テールネット上のあらゆるデバイス(ノートPC、スマートフォンなど)からのアクセス

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

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

この構成により、インターネット全体の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インスタンスは人気があります。対処法:

  • 別の可用性ドメインを試す
  • オフピーク時間帯(早朝)に再試行
  • シェイプ選択時に「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、メモリ、アーティファクト)

定期的にバックアップ:

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

関連ドキュメント