v1.5 — Memory Store + 新規ページ + コンテナコスト
· 約3分で読めます
AgentCore Memory Store の導入により、ユーザー別会話履歴を 365 日間保管。EBS、MSK、OpenSearch の新規ページと ECS/EKS コンテナコスト分析を追加したリリースです。
主要追加
Memory Store (365 日) · 4 つの新規ページ · ECS/EKS コンテナコスト · OpenCost 連携 · ハードコーディング値 3 つを除去
AgentCore Memory Store
ユーザー別会話履歴を 365 日間保管する Memory Store を導入しました。src/lib/agentcore-memory.ts で保存/検索ロジックを管理します。
| 項目 | 説明 |
|---|---|
| 保管期間 | 365 日 (eventExpiryDuration) |
| ユーザー分離 | Cognito JWT から email を抽出 (src/lib/auth-utils.ts) |
| 保存データ | 質問、要約、ルート、使用ツール、応答時間 |
| 設定スクリプト | 06e-setup-agentcore-memory.sh |
| 設定ファイル | data/config.json の memoryId、memoryName |
Memory 名の規則
Memory 名にハイフン(-)は使用できません。アンダースコア(_)のみ許可されます。
正しい例: awsops_memory / 誤った例: awsops-memory
AgentCore ページ統合:
- 6 つの StatsCard: 総呼び出し数、平均応答時間、Gateway 別呼び出し比率、モデル別トークン使用量
- 会話履歴検索: キーワード、日付範囲、ルート別フィルター
AI ページ統合:
- 下部のトグルパネルで会話履歴を照会
- 以前の質問/応答のコンテキスト参照が可能
新規ページ (4 つ)
| ページ | パス | クエリファイル | 主要機能 |
|---|---|---|---|
| EBS | /ebs | queries/ebs.ts | ボリューム/スナップショット、暗号化、EC2 アタッチメント、Idle ボリューム検出 |
| MSK | /msk | queries/msk.ts | Kafka クラスター、ブローカーノードメトリクス (CPU/Memory/Network)、KRaft モード |
| OpenSearch | /opensearch | queries/opensearch.ts | ドメイン、N2N/At-Rest 暗号化、VPC 構成、クラスターステータス |
| Resource Inventory | /inventory | resource-inventory.ts | 18 種のリソース数量推移 (スナップショットベース、追加クエリ 0 件) |
Steampipe JSONB の注意事項
- MSK:
provisionedカラムが JSONB でブローカー数、ストレージサイズなどを含む - OpenSearch:
encryption_at_rest_optionsJSONB 内のenabledフィールドの確認が必要 - カラム名は必ず
information_schema.columnsで確認してからクエリを作成
コンテナコスト分析
ECS と EKS のコンテナコストを分析する 2 つのページと API を追加しました。
| 項目 | ECS (/container-cost) | EKS (/eks-container-cost) |
|---|---|---|
| データソース | CloudWatch Container Insights | OpenCost API |
| フォールバック | なし | Request ベースの計算 |
| コスト計算 | Fargate vCPU/GB 価格を適用 | Pod CPU/Memory 割り当てコスト |
| API ルート | /api/container-cost | /api/eks-container-cost |
| 設定 | - | 06f-setup-opencost.sh (Prometheus + OpenCost) |
AI ルーティング改善
| 項目 | Before | After |
|---|---|---|
| AgentCore 設定 | コード内ハードコーディング | data/config.json から ARN を読み取り |
| ツール使用表示 | なし | キーワードマッチングで MCP ツールを推論 → UI バッジ |
| マルチルート失敗 | 全体失敗 | Bedrock Direct フォールバック |
| タイムアウト | 60 秒 | 90 秒 |
ツール使用の推論
AgentCore は最終テキストのみを返します (tool_call タグなし)。extractUsedTools() 関数が応答内容からキーワードをマッチングして使用された MCP ツールを推論し、UI にバッジとして表示します。
セキュリティ強化
| 課題 | 修正内容 |
|---|---|
| Sign Out | HttpOnly クッキーのサーバーサイド API 削除 (POST /api/auth) |
| ハードコーディング #1 | Steampipe パスワード → 動的取得 |
| ハードコーディング #2 | Code Interpreter ID → data/config.json |
| ハードコーディング #3 | Gateway URL → data/config.json |