Slide 1

Slide 1 text

© 2025 Classmethod, Inc. Amazon Bedrock AgentCore 本番導入への道 アーキテクチャ設計の実践 Hello! AI Builders Day Online (プレイベント)

Slide 2

Slide 2 text

© 2025 Classmethod, Inc. 自己紹介 2 簡単な自己紹介をさせていただきます。本日はどうかよろしくお願いいたします。 名前 神野 雄大(Jinno Yudai)/@yjinn448208 最近X始めました! 所属 クラスメソッド株式会社 クラウド事業本部 コンサルティング部 ソリューションアーキテクト 資格 ● Japan All AWS Top Engineers 2025 好きな サービス ● Amazon Bedrock AgentCore ブログはこのアイ コンで書いていま す! ラ・ムーとチーズ ナンが好きです!

Slide 3

Slide 3 text

© 2025 Classmethod, Inc. 対象と目的 3 本日はAmazon Bedrock AgentCoreを使っている方に対して、深掘りする内容をお届け できればと思っております! 対象 対象と目的 ● Amazon Bedrock AgentCoreを触ったことがあるがお試しレベル で、本番導入の設計のポイントを知りたい 目的 ● Amazon Bedrock AgentCoreのアーキテクチャ例を理解して検討できるよ うになる

Slide 4

Slide 4 text

© 2025 Classmethod, Inc. お断り 4 大変申し訳ないですが、本日の内容はAgentCoreを少し触ったことがある、何ができる かざっくりと理解していることを前提としています。もし触りの箇所から知りたい場合 は手前味噌で恐縮ですが私のブログで解説しているのでみていただけると嬉しいです。 Amazon Bedrock AgentCoreを使ってみよう! 〜各種機能のポイントを解説〜 著者ページ Sorry・・・

Slide 5

Slide 5 text

© 2025 Classmethod, Inc. 5 内容 今日は本番導入時に重要なポイントになりそうなトピックに絞ってお伝えさせていただ きます。 ● Runtime ○ Endpointの活用方法 ○ CloudFront / Lambda + API Gateway Proxyパターン ○ フロントエンドとの連携 ○ Tips:lifecycle settings について ● Gateway ○ Gatewayの利用イメージ/Semantic Searchを活用する ● Memory ○ Identityと連携してユーザーの権限を絞る ● その他 ○ IaC・デプロイ手法

Slide 6

Slide 6 text

© 2025 Classmethod, Inc. Amazon Bedrock AgentCoreはAIエージェントを展開・運用するために最適なマネージ ドサービスとなります。マネージドサービスによりインフラ管理を排除し、開発者が エージェントのロジック構築に集中できる環境を提供します。 Amazon Bedrock AgentCore とは 6 Amazon Bedrock AgentCore ● AIエージェントのホスティング ○ Strands Agents、LangGraphなど多様なエージェ ントフレームワークに対応 ● 便利なマネージドサービス ○ AIエージェントを使用する上で認証・ツール連携な ど便利な機能がマネージドサービスとして提供 (IdentityやMemoryなど) 特徴

Slide 7

Slide 7 text

© 2025 Classmethod, Inc. Amazon Bedrock AgentCoreはRuntime、Identity、Memory、Gateway、Built-in Tools、Observabilityという6つのサービスが、それぞれ本番運用の具体的な課題を解決 します。組み合わせても使用できる柔軟性を持っており、ニーズに応じた最適な構成を 選択できます。 Amazon Bedrock AgentCoreの機能 7 Amazon Bedrock AgentCore Identity Gateway Built in tools Memory Runtime Identity Observability

Slide 8

Slide 8 text

© 2025 Classmethod, Inc. Runtime Endpointの活用方法 8

Slide 9

Slide 9 text

© 2025 Classmethod, Inc. Runtimeにはエンドポイントが存在します。デプロイするたびにバージョンがインクリ メントします。特に何も指定しなければエンドポイントを呼び出した時は最新バージョ ンの処理が呼ばれます。これがDEFAULTエンドポイントです。 Runtimeのエンドポイントについて 9 開発者 ソースコード 開発端末 開発 AI エージェント開発 AgentCore Runtime バージョン1 バージョン2 バージョン3 デプロイ インクリメント 最新 DEFAULTエンドポイント :https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{E ncodedAgentARN}/invocations 紐づいている

Slide 10

Slide 10 text

© 2025 Classmethod, Inc. 名前付きエンドポイントも作成可能で、特定のバージョンを指定することが可能です。 名前付きエンドポイント 10 AgentCore Runtime バージョン1 バージョン2 バージョン3 最新 DEFAULTエンドポイント :https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{E ncodedAgentARN}/invocations 紐付け prodエンドポイント :https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{E ncodedAgentARN}/invocations?qualifier=prod 紐付け qualifierを指定しなければ DEFAULTが呼ばれるよ! PROD

Slide 11

Slide 11 text

© 2025 Classmethod, Inc. ここで本番稼働向けアーキテクチャを考えてみます。デフォルトのエンドポイントを使 用するとインクリメントされるので、検証して然るべきタイミングでアップデートする ようにします。 Runtime Endpointの活用方法 11 バージョン2 バージョン3 PRODエンドポイント DEFAULT 開発者 入念にテスト ユーザー 安定バージョンを利用 テストOK!! PRODエンドポイントをバー ジョン3のするぞ!!! バージョン3 PROD,DEFAULT ユーザー 最新バージョンを利用 PRODをバージョン3 に紐付け おお、エージェントの返事がよ くなっているぞ!!!!

Slide 12

Slide 12 text

© 2025 Classmethod, Inc. CloudFront / Lambda Proxyパターン 12

Slide 13

Slide 13 text

© 2025 Classmethod, Inc. 通常デプロイすると下記URLになりますが、リクエストを送るのにARN部分をエンコー ドしたり、アカウントIDが見えるの嫌ですよね。 Runtime標準のURLの課題 13 AgentCore Runtime リクエスト送信時のエンドポイント :https://bedrock-agentcore.ap-northeast-1.amazonaws.com/runtimes/arn%3Aaws%3Abedrock-agentcore%3Aap-northeast-1% 3A123456789012%3Aagent-runtime%2Fabcd1234/invocations AIエージェント 私 うーん・・・フロントエンドからリクエスト送る時にURLにア カウントIDが入っていたり、ARNをエンコードしないといけな いの気になるな・・・カスタムドメインも使いたいな。

Slide 14

Slide 14 text

© 2025 Classmethod, Inc. AgentCore Runtimeの前段にCloudFrontをラップしてリクエストを受けることも可能で す。CloudFrontをラップすることで、カスタムドメイン・WAFの利用なども可能になる のは嬉しいポイントです。 CloudFrontとの連携 14 AgentCore Runtime AIエージェント エンドポイント :https://bedrock-agentcore.ap-northeast -1.amazonaws.com/runtimes/arn%3Aaws% 3Abedrock-agentcore%3Aap-northeast-1% 3A123456789012%3Aagent-runtime%2Fab cd1234/invocations CloudFront エンドポイント :https://d1234abcd5678e.cloudfront.net/ カスタムドメインも可能 https://myagent-jinno.com (オプションで) アタッチ WAF フロントエンド リクエスト リクエスト

Slide 15

Slide 15 text

© 2025 Classmethod, Inc. LambdaをAgentCoreの前段にラップしてリクエストを送ることも可能です。Lambdaは Functions URLを活用してリクエストを送れるようにします。Cognitoとの連携や独自の リクエスト・レスポンスを介したい場合はいいですよね。 Lambdaとの連携 15 AgentCore Runtime AIエージェント CloudFront Lambda フロントエンド リクエスト リクエスト IAMの権限でのみ AgentCoreのリクエ スト可能な状態へ Functions URL OACでCloudFront経 由でのみアクセス可能 に Cognito オプションで設定 WAF オプションで設定 SHA256計算 Lambda@Edge

Slide 16

Slide 16 text

© 2025 Classmethod, Inc. 直近のアップデートでAPI Gatewayがストリーミング応答に対応したので、CloudFront の代わりにAPI Gatewayをラップするのも選択肢としてあると思います。 API Gateway + Lambdaとの連携 16 AgentCore Runtime AIエージェント API Gateway Lambda フロントエンド リクエスト リクエスト IAMの権限でのみ AgentCoreのリクエ スト可能な状態へ 実行 API Gateway経由で のみ実行可能に Cognito WAF オプションで設定

Slide 17

Slide 17 text

© 2025 Classmethod, Inc. 何か推奨をする訳ではなく、要件や用途に応じて検討いただくのが良いかと思います。 選択肢について 17

Slide 18

Slide 18 text

© 2025 Classmethod, Inc. フロントエンドとの連携 18

Slide 19

Slide 19 text

© 2025 Classmethod, Inc. せっかくマネージドなAgentCoreがあるのでフロントエンドもできるだけマネージド サービスを活用したいところです。どういった選択肢があるのでしょうか。ざっと下記 のようなサービスを使用することが考えられるかと思います。 フロントエンドとの連携 19 Lambda Amplify App Runner ECS

Slide 20

Slide 20 text

© 2025 Classmethod, Inc. App RunnerやAmplifyはマネージドサービスで使い勝手もいいのですが、AIアプリケー ションを作成する上で相性が悪い制約があるので注意したいです。 App RunnerやAmplifyの注意点 20 Amplify App Runner ● Next.js API routesのストリーミングが動作しな い(バッファリングされる) ○ AI SDKなどをNext.js バックエンドで使用し ようとすると使えなくて絶望する ● 120秒のリクエストタイムアウト ○ エージェントとのやり取りが長時間に及ぶとタ イムアウトになる可能性 ● WebSocketサポートなし(roadmapで最多要望) ○ StreamlitはWebSocketを使用するためApp Runnerでホストするのは難しい

Slide 21

Slide 21 text

© 2025 Classmethod, Inc. Next.jsのバックエンドではストリーミング非対応のため、クライアント側から直接 AgentCoreに対してリクエストを送信する必要があります。 Amplifyのアーキテクチャ例 21 AgentCore Runtime AIエージェント Amplify フロントエンド ユーザー リクエスト リクエスト Next.jsのバックエンドではストリーミン グ非対応のため、クライアント側から直接 AgentCoreに対してリクエストを送信する エンドポイント :https://bedrock-agentcore.ap-northeast -1.amazonaws.com/runtimes/arn%3Aaws% 3Abedrock-agentcore%3Aap-northeast-1% 3A123456789012%3Aagent-runtime%2Fab cd1234/invocations

Slide 22

Slide 22 text

© 2025 Classmethod, Inc. Lambda関数にLambda Web Adapterを使ってNext.jsをホストするのが安上がりかつ手 軽でいいと思います。下記のようなアーキテクチャです。 Lambdaのアーキテクチャ例 22 AgentCore Runtime AIエージェント CloudFront Lambda フロントエンド リクエスト Functions URL Cognito SHA256計算 Lambda@Edge ユーザー リクエスト SPAから直接呼出し JWT Bearer Token (Cognito Token使用) ServerSide(Lambda)経由 IAM認証

Slide 23

Slide 23 text

© 2025 Classmethod, Inc. 本番環境で手堅く実装したいならECS + ALBの組み合わせになるかと思います。ECS Express Modeが誕生したことによりECS + ALBの敷居が下がった印象もあります。ECS を使った最小コストはAppRunnerなどの最小コストよりは高いイメージでもありトレー ドオフですね。 ALB + ECSのアーキテクチャの例 23 AgentCore Runtime AIエージェント リクエスト Cognito ユーザー リクエスト ALB ECS フロントエンド リクエスト SPAから直接呼出し JWT Bearer Token (Cognito Token使用) ServerSide(Lambda)経由 IAM認証

Slide 24

Slide 24 text

© 2025 Classmethod, Inc. GenUからも作成したエージェントは呼び出せて挙動が確認できます。すでにGenUを 使っていて、フロントエンドを作るモチベーションがない場合はお手軽でいいかもしれ ませんね。ただ現時点では実験的な機能になります。 Appendix:GenUとの連携 24

Slide 25

Slide 25 text

© 2025 Classmethod, Inc. Tips:Runtime lifecycle settings 25

Slide 26

Slide 26 text

© 2025 Classmethod, Inc. Runtime には idleRuntimeSessionTimeout(アイドル時のタイムアウト)と maxLifetime(最大稼働時間)パラメータが存在し、セッションの自動終了タイミング を制御できます。 Tips:Runtime lifecycle settings 26 しばらくリクエスト ないから寝るか zzz・・・ セッション idleRuntimeSessionTimeout アイドル状態が900秒経過 お話しし続けたけ ど、8時間たったか ら寝るね・・・zzz セッション maxLifetime 8時間経過 おはよう!(セッ ション開始) おはよう!(セッ ション開始) 終了 開始 開始 終了

Slide 27

Slide 27 text

© 2025 Classmethod, Inc. 公式ドキュメントにベストプラクティスの記載があるので、ぜひ設定される際は参考に することをお勧めします。 Tips:Runtime lifecycle settings 27 まずはデフォルト値(idle: 15分、max: 8時間)で運用 を開始し、実際の利用パターンを見ながら調整するのがベ ストプラクティスです。開発・デモ環境では短め(idle: 2-5分)に設定してコストを抑え、本番環境ではユーザー 体験を優先して長め(idle: 10-15分)に設定することを 推奨します。

Slide 28

Slide 28 text

© 2025 Classmethod, Inc. Gatewayの利用イメージ/Semantic Searchを活用する 28

Slide 29

Slide 29 text

© 2025 Classmethod, Inc. 既存のAPI、Lambda関数、MCP Server、各種サービスをMCP(Model Context Protocol)互換のツールに変換して、AIエージェントから簡単に呼び出せるようにして くれるサービスです。 Amazon Bedrock AgentCore Gateway 29 Runtime Gateway Smithyモデル Lambda関数 OpenAPI仕様のAPI /mcp ツールとして 呼び出し MCPに変換して実行 /MCP Toolsを 中央集約的に管理 Remote MCP Server

Slide 30

Slide 30 text

© 2025 Classmethod, Inc. GatewayはMCP Server自体をホストするものではないです。あくまで既存のLambda 関数をツール化したり他のMCP Serverを中央集約的に管理するのが役目となります。 MCP Server自体をホストしたいならRuntimeを使うことになるかと思います。 Gatewayの役割について 30 Gateway MCP Server ✖ Runtime MCP Server Gateway AIエージェント /mcp Runtime MCP Server MCP Server Lambda関数 RuntimeにMCP Server をホスト Gatewayで中央集約

Slide 31

Slide 31 text

© 2025 Classmethod, Inc. 何に使うんだろう・・・??と思ったりしませんか?? だってRuntime自体でTool利用できるしMCP Serverをホストできる のに・・・ 31

Slide 32

Slide 32 text

© 2025 Classmethod, Inc. 下記のようにAgentCore Runtimeからツール利用する場合を比較してみます。左のよう にそのままツール利用もできるので一見Gatewayを挟むことで複雑な気がします。 Gateway有無の比較 32 AgentCore Runtime Lambda関数 Remote MCP Server ツール利用 ツール利用 AgentCore Runtime Gateway Lambda関数 Remote MCP Server ツール情報 取得 ツール利用 Gatewayを使わない場合 Gatewayを使う場合

Slide 33

Slide 33 text

© 2025 Classmethod, Inc. ですがこれが100個以上ツールがある場合はどうでしょうか・・・???毎回MCPツー ルの定義を書くコードを書いたり、はたまた適切なツールを連携できるのでしょうか? Gatewayを使わない場合 33 AIエージェント Lambda関数 Remote MCP Server ツール利用 Gatewayを使わない場合 たくさんのツール 私 AIエージェントの処理コードに毎回、 新しいツールのコードを書くのか ・・・ またこんな連携して適切なツールを選 択できるのかしら?? どのツールが正しいん だ??

Slide 34

Slide 34 text

© 2025 Classmethod, Inc. この疑問に対してAgentCore Gatewayが役立ちます。Gateway側に登録することで、 AIエージェント自体の処理は毎回変えずにツールの情報を同期取ることが可能かつ、適 切なツールを探すのにはSemantic Search機能が使えます。 Gatewayを使う場合 34 Gateway Lambda関数 Remote MCP Server ツール情報取得 ツール利用 Gatewayを使う場合 たくさんのツール AIエージェント with Semantic Search Gatewayに登録されたツー ル情報同期できる Semantic Searchで適切な ツールを見つけることがで きる

Slide 35

Slide 35 text

© 2025 Classmethod, Inc. Strands Agentsではtool_call_syncメソッドが存在し、Gatewayに紐づいているツール 情報を取得することができます。 具体的なツール同期の処理 35 AIエージェント Gateway ユーザー XXXをやって Gatewayに紐づいた ツール情報取得 たくさんのツール ターゲット

Slide 36

Slide 36 text

© 2025 Classmethod, Inc. MCP Serverがツールとして大量に使える状態にあるとコンテキストを圧迫および不適切 なツールを使用する可能性があります。そういった時にSemantic Search機能を使って 適切なツールを見つけてAIエージェントに使わせましょう。 Semantic Search 36 引⽤:https://catalog.us-east-1.prod.workshops.aws/workshops/015a2de4-9522-4532-b2eb-639280dc31d8/en-US/30-agentcore-gateway/34-gateway-search-tools

Slide 37

Slide 37 text

© 2025 Classmethod, Inc. GatewayでSemantic Searchを有効にすると、ツール名 x_amz_bedrock_agentcore_searchを呼び出せます。 Semantic Searchのリクエスト・レスポンス例 37 リクエスト レスポンス

Slide 38

Slide 38 text

© 2025 Classmethod, Inc. Strands Agentsで実装する場合はcall_tool_syncで検索しつつ、適切なツールをAIエー ジェントと同期することが可能です。 Semantic Searchを活用してツール同期をする 38 AIエージェント Gateway ユーザー XXXをやって Gatewayに紐づいた ツール情報を検索し て取得 たくさんのツール ターゲット XXXに関連する ツール探すで

Slide 39

Slide 39 text

© 2025 Classmethod, Inc. Semantic Searchを使用することでコンテキスト汚染を回避することにつながります。 ANTHROPICの記事もMCP Serverをツールとして登録しすぎると、ツールの定義や結果 に過剰なトークンが消費され、エージェントの効率が低下する可能性があるといってい ます。 Appendix:MCP Serverをツールとして過剰に登録することによるコンテキストの汚染 39 Code execution with MCP: Building more efficient agentsより引 用 :https://www.anthropic.com/engineering/code-execution-with-mc p

Slide 40

Slide 40 text

© 2025 Classmethod, Inc. これは人間でも同じことが言えると思います。いきなり、新しい職場に行って全ての情 報を詰め込まれても適切な行動はできず自分がやりたいことに対してアドバイスしてく れる人が欲しいですよね。AIエージェントも同じで、最適に実行できるようSemantic Searchで適切なツールを教えてあげるイメージを持つとわかりやすいです。 Appendix:現実での例 40 私 SaaS Slack Google Workspace XXXをしたいけど何を使っ たらいいんだ??? 私 SaaS Slack GoogleWorkspace XXXをしたいけど何を使っ たらいいんですか?? 先輩 XXXならこのSaaSツールを 使ったらいいよ。 ※ざっくりとした例えです、例えは正確ではない箇所もあります

Slide 41

Slide 41 text

© 2025 Classmethod, Inc. 組織に既存のLambda関数やMCP Serverがたくさんあって、組み合わせる場合は Gatewayに軍配が上がる気がします。あくまでオプションの選択肢で上記以外の用途な ら無理に使う必要はない気もします。シンプルにLambda関数やRuntimeにMCP Servre をホストして使う方が早いと思います。 Gatewayの使い所所感 41 MCP Serverを新規でホス トしたい。多くの数を展開 する訳ではない。サクッと 展開したい ユーザー Runtime MCP Server MCP Server Lambda Gatewayを使用しない ケース Gatewayを使用する ケース 接続するMCP Serverは既 存のLambda関数を多数活 用するし、MCP Serverは 中央集約したい ユーザー Gateway たくさんのツール RuntimeやLambdaなどにホスティング Gatewayで中央集約

Slide 42

Slide 42 text

© 2025 Classmethod, Inc. CDKになりますが、直近だとGatewayもL2 Constuctでサポートされました。Gateway でMCP Toolを集約したいかつ、Lambda関数やAPIと連携したいケースがあれば便利で す。 Appendix:CDKでの実装例 42

Slide 43

Slide 43 text

© 2025 Classmethod, Inc. Runtime、Gatewayを介してMCP ServerをホストするにしてもVSCodeやCursorなどの エディターだとDCRのような動的なトークン認証が難しく、Barer Tokenを取得せざるを 得ません。MCPの拡張で認証できるようになることを期待したいですね。 Appendix:エディタなどのMCP Clinetによるトークン認証の課題 43 ユーザー MCP Client Cognito アクセストークン 取得 アクセストークンを記 載してMCP Serverを 設定 Runtime アクセストークンを検証 リクエスト with アクセストークン 現状 理想(まだ実現できません) ※大半のクライアントでは ユーザー MCP Client Cognito アクセストークン 取得 MCP Serverを設定 Runtime アクセストークンを検証 リクエスト ブラウザにリダイレクトして アクセストークンを取得 ※わかりやすさのため簡易的に書いていて、正確なフローとしては表現しきれていません トークン発行は面倒だな

Slide 44

Slide 44 text

© 2025 Classmethod, Inc. 44 Identityと連携してユーザーの権限を絞り自分の記憶しかアクセスで きないようにする

Slide 45

Slide 45 text

© 2025 Classmethod, Inc. AIエージェントに「記憶」を持たせることで、より賢く、よりパーソナライズされた対 応が可能になります。AgentCore Memory機能は、短期記憶(会話履歴)と長期記憶 (重要な情報の抽出)の両方をマネージドで提供します。開発者は複雑な記憶管理の実 装に悩むことなく、エージェントに学習能力と文脈理解能力を付与できます。 Amazon Bedrock AgentCore Memory 45 Amazon Bedrock AgentCore ユーザー Strands Agents Bedrock LLM エージェントに質問 AIエージェント Bedrockを使用 Memory ● 会話履歴 ● サマリー ● 客観的事実

Slide 46

Slide 46 text

© 2025 Classmethod, Inc. 前提としてMemoryのデータ構造をおさえます。ユーザー毎にactor_id、セッション毎 にsession_idがビルトインの属性で存在するので簡単にユーザー毎の会話履歴を保持可 能となります。 記憶のデータ構造 46 memory_id:memory-001 actor_id:user-001 session_001 Q:xxxにつ いて教えて A:YYY actor_id:user-002 session_002 Q:zzzにつ いて教えて A:TTT session_001 Q:DDDにつ いて教えて A:EEE session_002 Q:FFFにつ いて教えて A:XXX

Slide 47

Slide 47 text

© 2025 Classmethod, Inc. 短期記憶の単位はChatGPTやClaudeなどの会話履歴タブがイメージしやすいです。 データ構造のイメージ 47 actor_id:ユーザーの識別の単位 session_id:一連の会話履歴の単位

Slide 48

Slide 48 text

© 2025 Classmethod, Inc. それぞれのユーザーに対する記憶の取り出し方法 48 ユーザーの質問はactor_idでどのユーザーか識別されるので、リクエストでユーザーを 識別する値を入れて、AIエージェント側でその値をactor_idとみなす形になるかと思い ます。 Amazon Bedrock AgentCore ユーザーA Strands Agents AIエージェント Memory ユーザーB ユーザーAの記憶 actor_id=user_ aで保存 ユーザーBの記憶 actor_id=user_ aで保存 質問 質問 ユーザーに応じた 記憶を参照 ユーザーがわかる識別子(ID など)をリクエストに含める リクエストの値からactor_idと して各ユーザごとの記憶を取得 する

Slide 49

Slide 49 text

© 2025 Classmethod, Inc. actor_idをJWTのsubクレームと紐付け 49 JWTをデコードしてactor_idに、デコードしたユーザー識別子をactor_idに入れて設定 することも可能です。ユーザーごとのMemoryはIdentityと連携してこのように分離する ことが可能です。 Amazon Bedrock AgentCore ユーザーA Strands Agents AIエージェント Memory ユーザーB ユーザーAの記憶 actor_id = abc123-456-789 Cognito アクセス トークン リクエスト with アクセストークン & IDトークン JWTをデコードして ユーザー情報を取得 デコードしたユーザー情報に 応じたユーザー情報を参照 sub: "abc123-456-789" email: "[email protected]" name: "Yamada Taro" actor_id = "abc123-456-789" として抽出して参照 ユーザーBの記憶 actor_id = def123-456-789

Slide 50

Slide 50 text

© 2025 Classmethod, Inc. IAMでの制御 50 Memoryの権限制御ですがアプリケーションだけではなく、インフラ側でも制御可能で す。アプリケーションの設定ミスなどによる他者の記憶アクセスを回避することが可能 です。JWTのIDTokenを活用して、Strands Agentsの処理で動的にIAMの権限を取得し て権限分離を実現できます。 sub: "abc123-456-789" email: "[email protected]" name: "Yamada Taro" JWTの中身が上記とすると、 actorIdが abc123-456-789の記憶しかアクセスできな い権限に

Slide 51

Slide 51 text

© 2025 Classmethod, Inc. IAMでの制御イメージ 51 ユーザーAさんが保持している権限ではユーザーBさんの記憶にアクセスできません。ア プリケーション側で誤ってユーザーBの記憶にアクセスしようとしてもIAMの権限で拒否 されます。 ユーザーA ユーザーB Memory ユーザーAの記憶 actorId=abc123 -456-789 ユーザーBの記憶 actorId=def123 -456-789 sub:abc123-456-789 sub:def123-456-789 誤ってアクセス アクセス不可 Memoryのアクセス権限は自分のsubクレーム と同名のactorIdしかアクセスできない条件を 指定しているため "bedrock-agentcore:actorId": "${cognito-identity.amazonaws.com:sub}

Slide 52

Slide 52 text

© 2025 Classmethod, Inc. 52 IaC/デプロイ手法

Slide 53

Slide 53 text

© 2025 Classmethod, Inc. 今デプロイするやり方だと下記方法などがあるかと思います。Starter Toolkit、コン ソール上から実施、IaC(CDK、Terraform、CloudFormation)などありますがそれぞ れの立ち位置はどうでしょうか。 IaC/デプロイ手法 53 CDK Terraform CloudFormation IaCツール Starter Toolkit AWSコンソール /CLI configure/ launch/ invoke コマンド 実行

Slide 54

Slide 54 text

© 2025 Classmethod, Inc. IaCでのデプロイ 54 IaCも対応しています。インフラ環境としてAgentCoreを使用する場合は、ぜひIaCでの 管理も検討ください。Terraform、CDK、CloudFormationが対応しています。一部対応 しきれていないものもございます。 AgentCore CDK Terraform CloudFormation IaCツール 実装 デプロイ

Slide 55

Slide 55 text

© 2025 Classmethod, Inc. Appendix:L2 Constructの実装イメージ 55 StarterToolkitと似たような実装で実現できます。使い勝手が良くて個人的に使用して います。

Slide 56

Slide 56 text

© 2025 Classmethod, Inc. Zipアップロードは250MB以下のパッケージをZIP形式で素早くデプロイでき、更新も高 速です。一方、コンテナベースは1GBまでの大規模パッケージや特殊な依存関係に対応 し、既存のCI/CDパイプラインも活用できます。開発フェーズでは直接コードで素早く プロトタイピングし、本番環境ではコンテナへ移行するハイブリッドアプローチも有効 です。 直接ファイルアップロードかコンテナイメージか 56 直接アップロード コンテナイメージ AgentCore zip化してアップロード ● 250MBまでのパッケージに対応 ● 更新も高速 AgentCore ビルドしてイメージを アップロード ECR PULL ● 1GBまでの大規模パッケージや依存 関係に対応

Slide 57

Slide 57 text

© 2025 Classmethod, Inc. こちらも公式ドキュメントに直接アップロードかコンテナイメージかなどの比較情報な どあるので見ておくと参考になると思います。 直接ファイルアップロードかコンテナイメージか 57

Slide 58

Slide 58 text

© 2025 Classmethod, Inc. 今日はAgentCoreを本番利用する際に注意するポイントをいくつかご紹介させていただ きました。何か1つでも皆様にとって新しい発見であったり、「AgentCoreをもっと使 いこなしてみよう!」、「もっとAgentCoreを知りたい!」と思うきっかけになれば幸 いです。(次はIdentityじっくり解説したいですね) まとめ 58

Slide 59

Slide 59 text

© 2025 Classmethod, Inc. ご清聴ありがとうございました!!! もっとこういったやり方があるよとか、この辺の工夫はどうしたいいのかなどあればぜ ひお気軽に教えてください!!皆さんでAgentCoreを使って知見を広めていきましょ う!! ありがとうございましたー!! ありがとうございました 59

Slide 60

Slide 60 text

© 2025 Classmethod, Inc. Thank you!