AWS LightsailのOpenClawブループリントで、運用を自動化・永続化するための技術リファレンス
はじめに
📖 補足:本記事の背景と「読み物版」について
このシステムを「Jarvis」と名付け、AIアシスタントとして運用し始めるまでのストーリーや、執事としての振る舞いなどのエピソードは、個人ブログにて公開しています。技術の裏側にある「AIとの共同生活」に興味がある方はぜひご覧ください。
👉 自分専用AIエージェント「Jarvis」を召喚した1日 | miyakawa.codes
1. 概要
AWS Lightsailのブループリントに採用された個人専用AIエージェント「OpenClaw」を、実運用(カスタムドメイン・HTTPS・常時接続)に耐えうる構成にするための技術ドキュメントです。
セットアップ時に遭遇した「権限の罠」や「サービスファイルのインストール先問題」など、公式ドキュメントを補完する解決策をまとめます。
2. サーバー初期設定とセキュリティの要塞化
Lightsail起動直後、まず行うべきはOSレイヤーの保護です。
システムアップデートと自動更新
- OS: Ubuntu 24.04 LTS
-
Kernel:
6.17.0-1010-awsへの更新を確認。 -
自動セキュリティアップデート:
unattended-upgradesを導入。セキュリティパッチのみ毎日自動適用する設定(自動再起動は無効)を推奨します。
ファイアウォール (UFW) と Fail2Ban
- UFW: 22(SSH), 80(HTTP), 443(HTTPS) のみを開放。
- Fail2Ban: SSH監視を有効化。10分以内に5回失敗したIPを 24時間 BAN する強めの設定を採用。
-
注意点: OpenClaw Gatewayが使用する内部ポート
18789はloopback(127.0.0.1)のみで動作するため、Lightsailのファイアウォールで外部開放する必要はありません。
3. OpenClawのアップデートと「権限」の罠
プリインストールされている v2026.3.2 から v2026.4.2 へのアップデート時に複数の問題に遭遇しました。
UIからのアップデート失敗とCLIでの解決
Web UI上の「Update now」をクリックしても元のバージョンに戻る現象が発生したため、CLIからの手動更新が必要です。
-
npmの書き込み権限エラー (EACCES):
openclaw update実行時、/usr/lib/node_modules/への書き込み拒否が発生します。 -
解決策:
sudo openclaw updateを使用してください。
補完スクリプトの混入に注意
アップデート時にシェル補完のインストールをYesにすると、.bashrc にzsh用のスクリプトが混入し、起動時にエラーが出る場合があります。導入後は .bashrc の末尾を確認し、不要なコード(120行目〜付近)が含まれていないかチェックを推奨します。
Gatewayサービスファイルのインストール先問題
sudo openclaw gateway install を実行すると、サービスファイルが /root/.config/ に生成されてしまうケースがあります(本来は /home/ubuntu/.config/)。
-
解決策:
openclaw gateway install --forceを実行し、正しいパスへ再インストールと自動起動登録(systemd)を行ってください。
4. 【最重要】トークンの永続化とセキュリティ
デフォルト設定では 毎日 UTC 3:00 にトークンが自動ローテーションされ、ブラウザ側で毎日再ペアリングが発生します。
トークンローテーションの無効化
ブラウザに固有Tokenを発行する際の「5つの設定リスト」のうち、4番を無効化することで永続化が可能です。
4. Daily token rotation: Disabled
セキュリティの補完
トークンを永続化させる場合、リバースプロキシ(Apache2)側で Basic認証 を導入することを強く推奨します。
5. カスタムドメイン・HTTPS化の必須設定
certbot --apache -d [domain] 実行後、~/.openclaw/openclaw.json を以下のように修正しないと、Gatewayが正しく接続されません。以下の3箇所の設定が必須です。
"gateway": {
"publicUrl": "[https://your.domain.com](https://your.domain.com)",
"http": {
"allowedOrigins": ["[https://your.domain.com](https://your.domain.com)"]
},
"controlUi": {
"allowedOrigins": [
"[https://your.domain.com](https://your.domain.com)", // 公開ドメイン
"https://[Server-IP]", // IP直接アクセス(バックアップ)
"http://localhost:18789" // ローカルループバック
]
}
}
6. 脱ブラウザ:Telegramへの統合とAI多重運用
ブラウザUIはあくまで「初期設定と緊急時のメンテナンス(外科手術)」のための場所と割り切ります。
- Telegram連携: API通信を利用するため、ブラウザ向けトークンの有効期限(Daily rotation)に左右されません。
- AI多重運用: OpenClawがアップデート失敗などで停止した際、並行してセットアップした Claude Code を使い、サーバー内部から直接ファイルの修正・Gatewayの再起動を行う運用が極めて効率的です。
一度設定が完了すれば、iPhone等のチャットアプリから Jarvis_bot へ指示を出すだけで完結する「透明なAIエージェント」環境が整います。
7. 参考コマンド集
トラブルシューティングや設定確認に役立つコマンド群です。
# 証明書の状態と有効期限を確認
sudo certbot certificates
# Lightsail固有の証明書管理デーモンの状態確認
sudo systemctl status lightsail-manage-certd
# OpenClaw Gateway の稼働状況を確認
openclaw gateway status
# Gateway の再起動(設定反映時など)
openclaw gateway restart
# トークンの手動ローテーションが必要な場合
openclaw token rotate
8. まとめ:AIを「育てる」から「使いこなす」へ
今回の構築を通じて、単なるAIツールのセットアップを超えた、以下の実用的な運用フローを確立できました。
- インフラの要塞化: Fail2BanやUFWによる堅牢な環境。
- 接続の永続化: 毎日発生していた「トークン再ペアリング」からの解放。
- AIによるセルフメンテナンス: OpenClawをClaude Codeで外側から修理する運用。
- チャットUI統合: Telegramによる「脱ブラウザ」での常時アクセス。
これらにより、PCを開くことなく、日常のコミュニケーションの延長線上でAIエージェントに指示を出せるようになりました。
現在はサンドボックスによる制限がありますが、今後は外部API(Google Drive/Spreadsheet等)との連携を深め、より高度な「情報のハブ」として育てていく予定です。
「備えあれば憂いなし。ログさえあれば原因は分かります」——Jarvis