はじめに
前回の記事では、Kiro x Amplify Gen 2のテンプレートを紹介しました。
本記事では、テンプレートに含まれているサンプルプログラムの利用手順を解説します。
サンプルの概要
テンプレートには2つのサンプルプログラムが含まれています。
- Todoリスト — Amplify Data(AppSync + DynamoDB)とのCRUD連携デモ
- エージェントチャット — AgentCore RuntimeとのHTTP SSEストリーミング対話デモ
Cognitoで認証を受けて、Amplify HostingのCloudFrontがフロントエンドを担います。
Todoリストのサンプルでは、AppSyncを介してDynamoDBにメモ情報を登録します。
エージェントチャットのサンプルでは、BedrockAgentCore Runtime上で動作するエージェントとSSEによるストリーミングでの会話を確認することができます。
事前準備
- AWS CLI
- Node.js(v18以上)
- Python 3.10+(エージェントチャットを使う場合)
AWSリージョンはオレゴンを想定しています。他のリージョンでも動作するはずですが、動作未確認です。
特にサンドボックスではAWS configureで設定されているリージョンにサンドボックス環境をデプロイしますので、事前にご確認ください。
デプロイ手順
- サンドボックスでフロントエンド実行
- ローカル環境でエージェント実行
- Amplifyにデプロイ
- AgentCore Runtimeにデプロイ
- お片付け
サンドボックスを立ち上げてみる
1. リポジトリの作成とセットアップ
GitHubで「Use this template」からご自身のGitHubアカウント内にリポジトリを作成し、ローカルにクローンします。
git clone <リポジトリURL>
cd <プロジェクト名>
npm ci
npm ciは、ローカルプロジェクト内にNode.jsの依存パッケージをインストールするコマンドです。
2. Amplify sandboxの起動
まずはAmplifyのサンドボックス環境を起動します。
サンドボックスは起動したままにする必要があるため、ターミナルを2つ利用します。
ターミナル1
# ターミナル1: Amplify sandboxを起動(初回は数分かかります)
npx ampx sandbox
次のようになればOK。サンドボックス用にCognitoやDynamoDBなどが立ち上がります。

ターミナル2
# ターミナル2: 開発サーバーを起動
npm run dev
ターミナル右上の「+」ボタンでターミナルを追加できます。
コマンドを入力して、次のようにReadyとなればOK。

3. サンプルページにアクセス
ブラウザで http://localhost:3000/sample にアクセスすると、Todoリストが動作します。
ユーザ認証
まずはCognito認証画面が開きますので、Create Accountからユーザを作成します。

サンプルページ
サンプルページは次のようになっています。
画面下側のエージェントチャットは、エージェントが未設定のため動きません。

Todoリスト
メモを入力→追加すると、Todoリストが追加されていきます。

完了ステータスに変更したり、削除したりできます(CRUD操作)。

ひと通りの動作確認が可能です。
エージェントチャットをローカルで確認してみる
エージェントチャットを動かすには、追加でAgentCore Runtimeのデプロイが必要となりますが、ローカルでの動作確認では不要です。
次の手順でターミナル上で動作確認できます。
1. エージェントのセットアップ
cd agents
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
端末の環境を汚さないためにvenv利用前提としてますが、ご自身の環境に合わせて調整ください。Pythonコマンドに関しても、自分の環境だとpython3で進めました。
2. 環境変数の設定
envファイルを作成します。
cp .env.example .env
# .envを編集して必要な値を設定
以下スクリーンショットのように、3つのコメントアウトを外してください。

3. ローカルでの動作確認
AgentCore Runtimeなしでエージェント単体の動作を確認できます。
質問はスクリプトにあらかじめ埋め込まれています。
python scripts/run_local.py
Amplifyにデプロイする
それでは、Amplifyにデプロイしてみます。今回は本番環境ですが、開発環境でも手順は同じです。
1. Amplify Hosting(フロントエンド)へのデプロイ
-
AWS コンソールで Amplify を開いて、「新しいアプリを作成」を選択します。
2. フロントエンドの動作確認
エージェントチャットを動かしてみる
エージェントチャットを動かすために、AgentCore Runtimeへのデプロイを進めます。
1. 認証情報の確認
AWSコンソールでCognitoを開いて、今回作成したユーザプールを選択します。
ユーザプールID(例: us-west-2_xxxxxxxx)を取得します。

同じユーザプールのアプリケーションクライアントを選択します。
クライアント ID(例: 7nxxxxxxxxxxxxxxxxxxxxxxxx)を取得します。

2. デプロイ準備
以降の作業はターミナルに戻ります。
デプロイ用のStarter Toolkitが入っていなければ、まずはインストールしてください。
pip install bedrock-agentcore-starter-toolkit
うまくインストールできない場合は、ご自身の環境に合わせてインストールを進めてください。
自分の場合は、以下手順にてインストールできました。
brew install pipx
pipx install bedrock-agentcore-starter-toolkit
最近、AgentCore CLIも出てきましたが、今回はStarter Toolkitでのデプロイを想定しています。
3. コンフィグ設定
Cognito の情報を使って JWT 認証を設定します。
<User Pool ID> と <Client ID> はあらかじめ確認した値に置き換えてください。
cd agents
agentcore configure \
--entrypoint sample_agent/app.py \
--name sample_agent \
--authorizer-config '{"customJWTAuthorizer":{"discoveryUrl":"https://cognito-idp.us-west-2.amazonaws.com/<User Pool ID>/.well-known/openid-configuration","allowedClients":["<Client ID>"]}}' \
--region us-west-2
コマンドを実行するといくつか設定を聞かれます。
基本的にはデフォルト設定のままエンターを押して進めてください。

AgentCore Memoryのところだけご自身の状況に合わせて変更してください。
Memory作成が不要な場合は、sでスキップ。

- Detected dependency file:
requirements.txt(デフォルト)- Select deployment type:
1(デフォルト)- Select Python runtime version:
2(デフォルト)- Execution Role: Enter (自動作成)
- S3 Bucket: Enter (自動作成)
- Request Header Allowlist: Enter (デフォルト:
no)- AgentCore Memory:
s(作成をスキップする場合)
4. AgentCore デプロイ
デプロイ実行
agentcore deploy
コマンドを実行すると、AgentCoreへのデプロイが進みます(数分かかります)。

完了すると次のように結果が表示されるので、赤枠内の ARN をコピーします。

ステータス確認
agentcore status
ステータス確認のコマンドを実行し、以下のように Ready になれば準備OK。

5. Amplify 再デプロイ
先ほど取得したAgentCore RuntimeのARNを設定します。
AWSコンソールでAmplifyを開き、対象アプリ → ホスティング → 環境変数を開きます。

変数の管理から新規追加を選び、環境変数を追加します。
- 変数:
NEXT_PUBLIC_AGENTCORE_RUNTIME_ARN - 値: AgentCore RuntimeのARN
(例:arn:aws:bedrock-agentcore:us-west-2:999999999999:runtime/sample_agent_xxxx)
環境変数追加後、ブランチを選択してこのバージョンを再デプロイにてAmplifyを再びデプロイ。

完了するまで、10分程度待ちます。
6. 動作確認
Amplifyのデプロイが完了したら、サンプルページを開き直します。

メッセージを入れて送信すると、エージェントからレスポンスが返ってきます。

これにてエージェントチャットの動作確認も完了です。
お片付け
それでは最後に各リソースのお片付けをしておきます。
1. サンドボックス
サンドボックス環境を削除するには、以下のコマンドを実行します。
npx ampx sandbox delete
これでサンドボックス用に作成されたAWSリソースが綺麗に削除されます。
2. Amplify Hosting
AWSコンソールでAmplifyを開きます。
対象のアプリを選んで、アプリケーションの設定 → 全般設定。

削除するまでに少々時間はかかりますが、Cognito User Pool を含むバックエンドリソースも一緒に削除されます。
3. AgentCore Runtime
AIエージェントの削除は、ターミナルから実行します。
cd agents
agentcore destroy
削除してもよいか聞かれるので、yと入れてエンターすると、次のように進んでいきます。

AgentCore Runtime とそれに紐づくリソースが削除されます。
ただし Memory リソースは agentcore destroy では削除されません(意図的に保持される仕様)。不要な場合は手動で削除してください。
まとめ
今回は、Kiro x Amplify テンプレート内のサンプルページのデプロイ手順について紹介しました。
AIエージェントに関してはいつでも使うというわけでなく、必要なときに追加できるような形にしてあります。デプロイにひと手間かかりますが、その分疎結合しやすくなると思いますのでしばらくこれで遊んでみます。

















