Serverless Operations, inc

>_cd /blog/id_veq5-m8tzzbn

title

OpenClaw on AWS with Bedrock をやってみた

2回にわたって Amazon Lightsail のOpenClaws インスタンスを触ってきました。

https://serverless.co.jp/blog/v0dz9baxe/

https://serverless.co.jp/blog/4j7amkb71/

AWS はそれとは別に Amazon EC2 用 に OpenClaw を構築する CloudFormation スタックを OpenClaw on AWS with Bedrock という名前で提供しています。

https://github.com/aws-samples/sample-OpenClaw-on-AWS-with-Bedrock

Amazon Lightsail OpenClaw イメージと OpenClaw on AWS with Bedrock の違い

この CloudFromation スタックで構築される OpenClaw にはいくつかの特徴があります。

デフォルトモデル: Nova 2 Lite (default) を採用しており Anthropic モデルより安価です。 (起動後モデルはいつでも変更できます)

Graviton 対応: ARMチップである Graviton に対応していることでx86系CPUモデルより 最大40% 安く利用可能です

ネットワーク:Lightsail環境と異なり、外部へのポート開放が行われません。VPC のセキュリティグループを修正して通信を許可しても、ミドルウェアレベルで 0.0.0.0/0 からの通信は許可されません。その代わり Systems Manager が提供するポートフォワーディング機能により外部から許可された環境のみがアクセス可能となります。またVPC Endpointの作成も自動化されBedrockやSystems Managerへの通信も簡単にプライベート経由に変更できます。

監査対応:OpenClaw は非常に強力なツールで時としてそのセキュリティが懸念されます。このCloudFormation スタックではOpenClawがBedrockを呼び出すイベントをCloudTrailにすべて記録することでAIがどういう作業を行ったか?を追跡可能となっています。

さっそくやってみる

1. 環境構築

ではやっていきます。環境構築は簡単でこのスタックボタンをクリックして実行するだけです。

VPCEndpoint (BedrockやSystems Managerへのアクセスをプライベートにするオプション)は今回のデモでは不要なので falseに変更します。

後はすべてデフォルトのまま Create stack をクリックして10分程度待ちます。

2. クライアント環境の整備

構築される環境は外部にポートが解放されず、アクセスが行えませんが、Systems Manager のポートフォワーディング機能を使ってアクセスが可能となります。このためクライアント環境には Systems Manger プラグインが必要なります。

https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html

(ここからの作業はWindowsで行っています。皆さんの環境ごとにコマンドは適切に調整してください。一番簡単なのはClaudeにコピペしてOSを伝えれば書き換えてくれます)

aws configure でIAMクレデンシャルをまずセットします。

次に以下を実行すると先ほど構築されたEC2 インスタンスのIDが変数に格納されます。

for /f %i in ('aws cloudformation describe-stacks --stack-name openclaw-bedrock --query "Stacks[0].Outputs[?OutputKey==`InstanceId`].OutputValue" --output text --region ap-northeast-1') do set INSTANCE_ID=%i
echo %INSTANCE_ID%

Systems Manager プラグインを使って接続するためのセッションを作成します。

aws ssm start-session --target %INSTANCE_ID% --region ap-northeast-1 --document-name AWS-StartPortForwardingSession --parameters "{\"portNumber\":[\"18789\"],\"localPortNumber\":[\"18789\"]}"
Starting session with SessionId: slops-z57tthn3l2fo9h598cug89cdaa
Port 18789 opened for sessionId slops-z57tthn3l2fo9h598cug89cdaa.
Waiting for connections...

では次に、このターミナルはこのまま別のターミナルを開きます。

for /f %i in ('aws ssm get-parameter --name /openclaw/openclaw-bedrock/gateway-token --with-decryption --query Parameter.Value --output text --region ap-northeast-1') do set TOKEN=%i
echo http://localhost:18789/?token=%TOKEN%

表示されるURLにアクセスすると無事起動したOpenClawにアクセスができます。

ポートフォワーディングでアクセスされているため localhost になっています。ターミナルに表示されていたトークンを入力すればログインできます。

テストでチャットを行うと無事動作していることがわかります。

Written by
編集部

亀田 治伸

Kameda Harunobu

  • Facebook->
  • X->
  • GitHub->

Share

Facebook->X->
Back
to list
<-