本記事で学べること
みなさんこんにちは。ソリューションアーキテクト 中島 佑樹と丁 亜峰です。本記事では AI が得意な中島とネットワークが得意な丁と一緒に Amazon VPC の プライベートサブネット にある API を呼び出す Amazon Bedrock エージェント を プライベート接続で呼び出す方法について学んでいきましょう。
お客様業務を効率化するテーマで Amazon Bedrock エージェントを利用する際に、プライベートサブネットに配置された既存の生成 AI チャットアプリからエージェントを呼び出したり、プライベートサブネットに配置された既存の業務 API をエージェントから呼び出したいという要望がありました。
これを実現するために、以下 2 点について解説することが本記事の目標です。
Q1 : Amazon Bedrock エージェントをプライベートサブネット内のリソースから呼び出す方法は ?
Q2 : プライベートサブネットに配置した API を Amazon Bedrock エージェントから呼び出す方法は ?
builders.flash メールメンバー登録
先に結論
まず、本記事共通で使用する用語を解説します。
Agents Client はエージェントを呼び出すアプリケーションです。例えば Python や TypeScript で実装されて、AWS Lambda や AWS Fargate、Amazon EC2 上で稼働します。エージェントは Amazon Bedrock エージェントを使うことでマネージドに開発・運用可能です。Amazon Bedrock エージェントはパブリック接続で呼び出すか、AWS PrivateLink を使用してプライベート接続 (例 : セキュリティ要件上パブリック接続ができない場合) で呼び出すことができます。
生成 AI がツールとして API を呼び出すために Amazon Bedrock エージェントでは アクショングループ を使用します。アクショングループには AWS Lambda か リターンコントロール (Return of Control とも表記されますが AWS マネージドコンソール上の表記を採用しています) が設定できます。
最後に連携先 API は 生成 AI がツールとして使用したい API です。本記事では AWS Lambda かプライベートサブネット内のリソースを想定しています。

Q1 の回答 :
Q1 の回答 : Amazon Bedrock エージェントを NAT Gateway へのルーティングがないプライベートサブネットのリソースから呼び出す場合には AWS PrivateLink を使用してプライベート接続します。

Q2 の回答 :
プライベートサブネットに配置した API を Amazon Bedrock エージェントから呼び出す場合には以下の 2 つの方法があります。
方法 1. Amazon VPC 内のリソースへのアクセスを許可した AWS Lambda を アクショングループ に設定し、その AWS Lambda からプライベートサブネットに配置した API を呼び出す。

方法 2.
アクショングループに リターンコントロール を指定し、Amazon Bedrock エージェントを呼び出した Agents Client から直接プライベートサブネットに配置した API を呼び出す。
「そこが分かれば開発できる !」という方は是非チャレンジしてみてください。「もうちょっと詳しく知りたい !」という方は本編をお読みいただければ嬉しいです。

前提知識
概要
パターン 1. パブリック接続で Amazon Bedrock エージェントを利用したい
パターン 2. プライベートサブネットに配置された API を Amazon Bedrock エージェントから呼びたい
パターン 3. Amazon Bedrock エージェントをプライベート接続で呼びたい
[応用編] プライベートサブネットに配置された API を AWS Lambda を使わずに Amazon Bedrock エージェントから呼びたい
まとめ
いかがでしたか ? アーキテクチャはパターン 1 のようにシンプルであることに越したことはありません。しかし、お客様の要件によりプライベート接続が必要になったり、リターンコントロールが必要になったりします。この記事がプライベート接続が必要な Amazon Bedrock エージェントを開発する時の一助になれば嬉しいです。
また、Well-Architected フレームワークのパフォーマンス効率の柱、つまり、実務で効果を上げるエージェントにたどり着くまでの試行錯誤スピードを高めるため、この記事のように複数のステップを導入して、未だ見ぬエージェントに対する知見を獲得しながら素敵なエージェント開発ライフをお送りいただければ幸いです。
最後にパターンごとの設定ポイントを再掲して終わります。ここまでお読みいただきありがとうございました !
パターン |
エージェントの呼び出し |
アクショングループ |
連携先 API |
設定のポイント |
1 |
パブリック |
AWS Lambda |
AWS Lambda |
アクショングループで AWS Lambda を選択する。 |
2 |
パブリック |
AWS Lambda |
プライベートサブネットに配置されたリソース |
VPC リソースへのアクセス許可をした AWS Lambda をアクショングループに指定する。その AWS Lambda から連携先 API を呼び出す。 |
3 |
AWS PrivateLink |
AWS Lambda |
プライベートサブネットに配置されたリソース |
パターン 2 に加え、Amazon Bedrock エージェントを PrivateLink 経由で呼び出す。 |
応用編 |
AWS PrivateLink |
リターンコントロール |
プライベートサブネットに配置されたリソース |
パターン 3 をベースにアクショングループで AWS Lambda ではなくリターンコントロールを選択し、Agents Client からプライベート接続で連携先 API を呼び出す。 |
筆者プロフィール

中島 佑樹
アマゾン ウェブ サービス ジャパン合同会社
エンタープライズ技術本部 小売・消費財 第一ソリューション部
ソリューションアーキテクト
いつもは西日本の小売・消費財のお客様のアーキテクティング支援をしながら、これまで 40 社以上のお客様と生成 AI に関する議論をしてきた経験を活かし、Public Speaking や AWS Black Belt、Blog 執筆で生成 AI の情報を発信している。AWS Japan においては Agents の情報ハブとなり日本の Agents 推進を陰から支える存在になりたく日夜活動している。

丁 亜峰
アマゾン ウェブ サービス ジャパン合同会社
エンタープライズ技術本部 小売・消費財 第一ソリューション部
ソリューションアーキテクト
ネットワーク、セキュリティがフォーカスの技術領域で、日頃西日本の小売・消費財のお客様のアーキテクティング支援をしている。
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages