Moltbot (旧Clawdbot) を Amazon EC2 インスタンスにインストールする完全ガイド
はじめに
この記事では、Moltbot (旧Clawdbot) を Amazon EC2 インスタンスにゼロからインストールする手順を解説します。
Amazon EC2 で Moltbot を実行するメリット
🕐 24時間365日稼働
ローカル PC と違い、常時起動でいつでもメッセージに応答できます。PC のスリープやシャットダウンの影響を受けません。
🔗 AWS サービスとのシームレスな連携
IAM ロールを使うことで、Amazon Bedrock、Amazon S3、AWS Lambda などの AWS サービスを API キー管理なしでセキュアに利用できます。
🔒 高いセキュリティ
VPC 内で隔離された環境で実行できます。SSM Session Manager を使えば SSH ポートを開ける必要がなく、セキュリティグループで通信を細かく制御できます。
📈 柔軟なスケーラビリティ
必要に応じてインスタンスサイズを変更可能。小さく始めて、利用状況に応じて拡張できます。
🛡️ 運用の安定性
AMI バックアップで環境を丸ごと保存・復元できます。CloudWatch でメトリクスやログを監視し、問題を早期に発見できます。
💰 コスト効率
月額 $15〜30 程度で本格的な AI アシスタント環境を構築できます。
前提条件
- AWS アカウント
- 基本的なLinuxコマンドの知識
-
Anthropic API キー
- Claude Console で取得
- Telegram アカウント(ボット作成に使用)
-
ローカル環境で AWS CLI が利用可能
- SSM ポートフォワーディングに必要
- Session Manager プラグイン のインストールも必要
Session Manager プラグインのインストール(macOS)
# Homebrew でインストール
brew install --cask session-manager-plugin
# または手動でインストール
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/session-manager-plugin.pkg" -o "session-manager-plugin.pkg"
sudo installer -pkg session-manager-plugin.pkg -target /
環境情報
| 項目 | 値 |
|---|---|
| OS | Amazon Linux 2023 |
| インスタンスタイプ | t4g.medium |
| リージョン | us-west-2 (オレゴン) |
AWS 料金の目安
本構成を 1 ヶ月間稼働させた場合の概算料金です(2026年1月時点、us-west-2 リージョン)。
| リソース | 単価 | 月額目安 |
|---|---|---|
| Amazon EC2 t4g.medium | $0.0336/時間 | 約 $25 |
| Amazon EBS 30GB gp3 | $0.08/GB-月 | 約 $2.5 |
| CloudWatch Logs | $0.50/GB | 約 $0.5〜 |
| 合計 | 約 $28〜30/月 |
インストール手順
1. ベースインフラの構築 (CloudFormation)
まず、CloudFormation で VPC やサブネットなどのベースとなるネットワーク環境を構築します。
スタック名: moltbot
作成されるリソース:
| リソースタイプ | 説明 |
|---|---|
| VPC | 10.0.0.0/16 のプライベートネットワーク |
| Public Subnet 1 | 10.0.1.0/24 (AZ-a) |
| Public Subnet 2 | 10.0.2.0/24 (AZ-b) |
| Internet Gateway | インターネット接続用 |
| Route Table | パブリックルート設定 |
| IAM Role | EC2 用のインスタンスロール |
| Instance Profile | EC2 にアタッチするプロファイル |
IAM ポリシー:
- SSM (Systems Manager) アクセス(
AmazonSSMManagedInstanceCore) - CloudWatch Agent 用(
CloudWatchAgentServerPolicy) - AWS リソース参照用(
ReadOnlyAccess)※オプション
Security Group:
- Inbound: ルールなし(完全クローズ)
- Outbound: 0.0.0.0/0 全許可
CloudFormation テンプレート(クリックで展開)
AWSTemplateFormatVersion: "2010-09-09"
Description: "Moltbot infrastructure - VPC with two public subnets"
Parameters:
VpcCidr:
Type: String
Default: 10.0.0.0/16
Description: CIDR block for the VPC
PublicSubnet1Cidr:
Type: String
Default: 10.0.1.0/24
Description: CIDR block for public subnet in AZ1
PublicSubnet2Cidr:
Type: String
Default: 10.0.2.0/24
Description: CIDR block for public subnet in AZ2
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref VpcCidr
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: Name
Value: MoltbotVPC
InternetGateway:
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: Name
Value: Moltbot-IGW
VPCGatewayAttachment:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
VpcId: !Ref VPC
InternetGatewayId: !Ref InternetGateway
PublicRouteTable:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref VPC
Tags:
- Key: Name
Value: Moltbot-RT
PublicRoute:
Type: AWS::EC2::Route
DependsOn: VPCGatewayAttachment
Properties:
RouteTableId: !Ref PublicRouteTable
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref InternetGateway
PublicSubnet1:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: !Ref PublicSubnet1Cidr
AvailabilityZone: !Select [0, !GetAZs ""]
MapPublicIpOnLaunch: true
Tags:
- Key: Name
Value: Moltbot-PublicSubnet1
PublicSubnet2:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: !Ref PublicSubnet2Cidr
AvailabilityZone: !Select [1, !GetAZs ""]
MapPublicIpOnLaunch: true
Tags:
- Key: Name
Value: Moltbot-PublicSubnet2
PublicSubnet1RouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PublicSubnet1
RouteTableId: !Ref PublicRouteTable
PublicSubnet2RouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PublicSubnet2
RouteTableId: !Ref PublicRouteTable
MoltbotSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Security group with no ingress rules (SSM access only)
GroupName: moltbot-sg
VpcId: !Ref VPC
Tags:
- Key: Name
Value: moltbot-sg
MoltBotInstanceRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
Service:
- ec2.amazonaws.com
Action:
- sts:AssumeRole
ManagedPolicyArns:
# 必須: SSM Session Manager 用
- arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
# 必須: CloudWatch Agent 用
- arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
# オプション: AWS リソースの参照用(必要に応じて変更)
- arn:aws:iam::aws:policy/ReadOnlyAccess
MoltBotInstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Roles:
- !Ref MoltBotInstanceRole
Path: /
Outputs:
VpcId:
Description: VPC ID
Value: !Ref VPC
PublicSubnet1Id:
Description: Public Subnet 1 ID
Value: !Ref PublicSubnet1
PublicSubnet2Id:
Description: Public Subnet 2 ID
Value: !Ref PublicSubnet2
MoltBotInstanceRoleArn:
Description: IAM Role ARN
Value: !GetAtt MoltBotInstanceRole.Arn
MoltBotInstanceProfileName:
Description: Instance Profile name for EC2 attachment
Value: !Ref MoltBotInstanceProfile
SecurityGroupId:
Description: Security Group ID
Value: !Ref MoltbotSecurityGroup
2. EC2 インスタンスの作成
AWS マネジメントコンソールまたは CLI から EC2 インスタンスを起動します。
起動パラメータ:
| 項目 | 値 |
|---|---|
| AMI | Amazon Linux 2023 (ARM64) |
| インスタンスタイプ | t4g.medium |
| VPC | 手順1で作成したVPC |
| サブネット | Public Subnet 1 |
| パブリック IP の自動割り当て | 有効 |
| セキュリティグループ | 手順1で作成したSG(Inboundルールなし) |
| IAM インスタンスプロファイル | 手順1で作成したプロファイル |
| ストレージ | 30GB gp3 |
3. SSM Session Manager で接続
AWS マネジメントコンソールから SSM Session Manager でインスタンスに接続します。
接続後、ec2-user にスイッチします:
sudo su - ec2-user
4. Moltbot のインストール
公式ドキュメント: https://docs.molt.bot/start/getting-started
4.1 Moltbot のインストール
公式インストールスクリプトを実行します。このスクリプトは Node.js も一緒にインストールしてくれます:
curl -fsSL https://molt.bot/install.sh | bash
インストール後、パスを設定します:
# .bashrc にパスを追加
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
# 現在のセッションに反映
source ~/.bashrc
# 確認
clawdbot --version
インストールが完了すると、オンボーディングウィザードが自動的に起動します。
4.2 オンボーディングウィザード
最初にセキュリティに関する確認画面が表示されます:
Clawdbot agents can run commands, read/write files, and act through any tools you enable.
「I understand this is powerful and inherently risky. Continue?」 と聞かれるので、内容を理解した上で Yes を選択します。
その後、以下の項目を順番に設定していきます:
| 項目 | 選択例 |
|---|---|
| Onboarding mode | QuickStart |
| Gateway port | 18789 |
| Gateway bind | Loopback (127.0.0.1) |
| Gateway auth | Token (default) |
| Tailscale exposure | Off |
| Model/auth provider | Anthropic |
| Anthropic auth method | API Key |
続いて、以下の設定を行います:
| 項目 | 選択例 |
|---|---|
| Token name | default |
| Default model | anthropic/claude-opus-4-5 (デフォルト) |
4.3 チャンネル設定
チャットプラットフォームとの連携を設定します。以下のチャンネルが利用可能です:
- Telegram - 最も簡単。@BotFather でボット作成するだけ
- Discord - よくサポートされている
- WhatsApp - 自分の番号で動作。別のスマホ + eSIM 推奨
- Slack - Socket Mode でサポート
- Signal - signal-cli のセットアップが必要
- その他、プラグインで拡張可能(Google Chat, Teams, Matrix 等)
今回は Telegram を選択します。
4.4 ワークスペースとスキル設定
チャンネル設定が完了すると、以下が自動的に設定されます:
-
設定ファイル:
~/.clawdbot/clawdbot.json -
ワークスペース:
~/clawd -
セッション:
~/.clawdbot/agents/main/sessions
続いてスキルの設定を行います。初回インストールではすべてスキップしても問題ありません(後から設定可能です)。
| 項目 | 選択例 |
|---|---|
| Configure skills now? | Yes |
| Preferred node manager | npm |
4.5 スキル依存関係と API キー
スキルの依存関係や各種 API キーの設定を求められます。初回インストールではすべてスキップして問題ありません。必要に応じて後から clawdbot configure で設定できます。
| 項目 | 選択例 |
|---|---|
| Install missing skill dependencies | Skip for now |
| GOOGLE_PLACES_API_KEY | No |
| GEMINI_API_KEY | No |
| OPENAI_API_KEY | No |
| ELEVENLABS_API_KEY | No |
4.6 Hooks の設定
Hooks はエージェントコマンド実行時に自動アクションを実行する機能です。
推奨 Hooks:
| Hook 名 | 説明 |
|---|---|
boot-md |
Gateway 起動時に BOOT.md を読み込み、起動時タスクを実行 |
command-logger |
/new や /reset などのコマンド実行をログに記録 |
session-memory |
/new 実行時に会話内容を自動的にメモリファイルへ保存 |
4.7 オンボーディング完了
設定が完了すると、Dashboard へのアクセス情報が表示されます。
5. Gateway の起動
オンボーディング完了後、Gateway を手動で起動します:
clawdbot gateway --port 18789 --verbose
起動すると以下のようなログが表示されます:
🦞 Clawdbot 2026.1.24-3 — Your task has been queued; your dignity has been deprecated.
[canvas] host mounted at http://127.0.0.1:18789/__clawdbot__/canvas/
[heartbeat] started
[gateway] agent model: anthropic/claude-opus-4-5
[gateway] listening on ws://127.0.0.1:18789
[telegram] [default] starting provider (@your_bot_name)
6. Control UI への接続確認
Gateway が起動したら、ローカルマシンからブラウザで接続確認を行います。
6.1 SSM ポートフォワーディング
今回のように SSH ポートを開けていない場合は、SSM Session Manager のポートフォワーディングを使用します。
ローカルマシンで実行:
aws ssm start-session \
--target <インスタンスID> \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["18789"],"localPortNumber":["18789"]}'
6.2 ブラウザでアクセス
ポートフォワーディングが接続されたら、ブラウザで以下の URL を開きます:
http://127.0.0.1:18789/?token=<オンボーディング時に表示されたトークン>
Control UI が表示されれば接続成功です。チャット画面でエージェントと会話できます。

7. Telegram からの接続確認
7.1 ボットを検索してメッセージを送信
- Telegram アプリを開く
- 検索バーに
@<設定したユーザー名>を入力(例:@nyaruko_ai_bot) - ボットを選択してチャットを開く
- 「こんにちは!」などメッセージを送信
8.2 ペアリングの承認
初回はセキュリティのため、ペアリング承認が必要です。ボットから以下のようなメッセージが返ってきます:
Clawdbot: access not configured.
Your Telegram user id: XXXXXXXXXX
Pairing code: XXXXXXXX
Ask the bot owner to approve with: clawdbot pairing approve telegram <code>
別の SSM セッションを開いて、ペアリングを承認します:
sudo su - ec2-user
clawdbot pairing approve telegram <ペアリングコード>
7.3 動作確認
承認後、再度 Telegram からメッセージを送ると、エージェントが応答するようになります。これで基本的なセットアップは完了です!
8. Systemd によるデーモン化
Gateway をバックグラウンドで常時起動させるために、systemd サービスを設定します。
8.1 サービスファイルの作成
sudo tee /etc/systemd/system/clawdbot-gateway.service << 'EOF'
[Unit]
Description=Clawdbot Gateway (ec2-user)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=ec2-user
WorkingDirectory=/home/ec2-user
Environment=HOME=/home/ec2-user
Environment=PATH=/home/ubuntu/.npm-global/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
ExecStart=/home/ubuntu/.npm-global/bin/clawdbot gateway --port 18789
Restart=always
RestartSec=2
RestartForceExitStatus=SIGABRT
StandardOutput=append:/var/log/clawdbot-gateway.log
StandardError=append:/var/log/clawdbot-gateway.log
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
8.2 サービスの有効化と起動
sudo systemctl daemon-reload
sudo systemctl enable clawdbot-gateway
sudo systemctl start clawdbot-gateway
sudo systemctl status clawdbot-gateway
8.3 ログローテーションの設定
ログファイルが肥大化しないよう、logrotate を設定します:
sudo tee /etc/logrotate.d/clawdbot-gateway << 'EOF'
/var/log/clawdbot-gateway.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
copytruncate
}
EOF
これで 7 日間分のログを保持し、古いログは自動的に圧縮・削除されます。
9.4 動作確認
# Clawdbot の状態確認
clawdbot status
clawdbot health
# systemd サービスの状態確認
sudo systemctl status clawdbot-gateway
# ログの確認
sudo tail -f /var/log/clawdbot-gateway.log
9. CloudWatch Agent によるメトリクス・ログ収集(オプション)
EC2 インスタンスのメトリクスと Gateway のログを CloudWatch に送信するため、CloudWatch Agent をインストールします。
9.1 CloudWatch Agent のインストール
sudo dnf install -y amazon-cloudwatch-agent
9.2 設定ファイルの作成
sudo tee /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json << 'EOF'
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"metrics": {
"namespace": "CWAgent",
"append_dimensions": {
"InstanceId": "${aws:InstanceId}"
},
"metrics_collected": {
"mem": { "measurement": [ "used_percent" ] },
"disk": { "measurement": [ "used_percent" ], "resources": [ "*" ] },
"swap": { "measurement": [ "used_percent" ] }
}
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/clawdbot-gateway.log",
"log_group_name": "/clawdbot/clawdbot-gateway",
"log_stream_name": "{instance_id}"
}
]
}
}
}
}
EOF
収集内容:
- メトリクス: メモリ使用率、ディスク使用率、スワップ使用率(60秒間隔)
- ログ: Gateway ログを CloudWatch Logs へ送信
9.3 Agent の起動
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json \
-s
9.4 動作確認
sudo systemctl status amazon-cloudwatch-agent
おわりに
これで Moltbot (旧Clawdbot) の EC2 へのインストールが完了しました!🎉
構築した環境:
- CloudFormation によるインフラ管理(VPC、サブネット、セキュリティグループ、IAM ロール)
- SSM Session Manager 経由のセキュアなアクセス(SSH ポート不要)
- Systemd によるデーモン化(自動起動・自動復旧)
- CloudWatch Agent によるメトリクス・ログ収集
- Telegram との連携
最後にエージェントに自己紹介とキャラクター設定を行えば、あなただけの AI アシスタントの完成です。

ジョニー!よろしくニャ!!🐱✨
ニャル子、ただいま起動完了ニャ!
猫耳メイドのニャル子、ジョニーのために一生懸命働くニャ!
Next Step
インストールが完了したら、以下のカスタマイズを検討してみてください。基本的には Moltbot 自身に相談しながら進める ことで、多くの設定を自動化できます。
Skills のインストール
追加のスキルをインストールすることで、機能を拡張できます:
clawdbot configure --section skills
他チャンネルの追加
Telegram 以外のチャンネルも追加できます:
-
Discord -
clawdbot configure --section discord - Slack - Socket Mode でサポート
- WhatsApp - QR コードでペアリング
他モデルの追加
ChatGPT Codex(OAuth 認証)
OpenAI の Codex サブスクリプションを利用する場合、OAuth 認証で接続できます。
Amazon Bedrock モデル
IAM ロールに AmazonBedrockFullAccess ポリシーを追加すれば、Bedrock 経由で各種モデルを利用できます。
Bedrock モデルの設定例
~/.clawdbot/clawdbot.json の models.providers に以下を追加:
{
"models": {
"providers": {
"amazon-bedrock": {
"baseUrl": "https://bedrock-runtime.us-west-2.amazonaws.com",
"auth": "aws-sdk",
"api": "bedrock-converse-stream",
"models": [
{
"id": "global.anthropic.claude-opus-4-5-20251101-v1:0",
"name": "Claude Opus 4.5 (Bedrock)",
"reasoning": true,
"input": ["text", "image"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
}
}
}
}
その他のアイデア
- Web 検索機能 - Brave Search API キーを設定
- 音声合成 - ElevenLabs API キーを設定
- カスタム Hooks - 独自の自動化処理を追加
-
ワークスペースのカスタマイズ -
SOUL.mdでペルソナを設定
詳細は 公式ドキュメント を参照してください。
Moltbot で楽しい AI ライフを!🦞
Discussion