ひとことで言うと
各言語向けのAPIクライアントライブラリ群(Boto3・Java・JavaScript・.NET等)と、共通の認証・設定の仕組みの総称です。Bedrockまわりだけ見ても、クライアントは1つではなく機能ごとに分かれています。
要するに、業務ごとに窓口が分かれた1つの役所です。「モデルを管理する窓口」「実際に呼び出す窓口」「エージェントを作る窓口」「エージェントを動かす窓口」が別々にあり、同じ「Bedrock」という建物の中でも行く窓口を間違えると欲しい手続きができません。
何に使うか
| クライアント(Boto3の例) | 主な役割 |
|---|---|
bedrock | 基盤モデル一覧・カスタムモデル管理・Guardrails管理・プロビジョンドスループット管理・推論プロファイル・評価ジョブなど、管理系API |
bedrock-runtime | invoke_model / converse / converse_stream によるモデル呼び出し、apply_guardrail、非同期呼び出し(start_async_invoke) |
bedrock-agent | エージェント・Knowledge Base・データソース・Prompt・Flowの作成・更新・削除といった構築系API |
bedrock-agent-runtime | invoke_agent / invoke_flow、Knowledge Baseに対する retrieve / retrieve_and_generate の実行系API |
試験でどう問われるか
D2の複数のスキル文にAWS SDKという言葉自体は出てきます(例: 「言語別のAWS SDKとAmazon SQSによる非同期処理」「AWS SDKによる指数バックオフ」)。ただし”boto3のどのクライアントを使うか”という細部までは書かれていません。それでも実装シナリオの選択肢は、この4クライアントのどれを呼ぶかで正誤が決まる作りになりがちです。
| 問われ方 | 正解に寄る条件 | 引っかけ |
|---|---|---|
| 「Bedrockで使えるモデル一覧をコードから取得したい」 | 管理系操作 → bedrock の list_foundation_models | bedrock-runtime(実行系であって一覧取得は無い) |
| 「Knowledge Baseをコードから新規作成したい」 | 構築系 → bedrock-agent の create_knowledge_base | bedrock-agent-runtime(検索・生成の実行専用で作成はできない) |
| 「Knowledge Baseに対して検索だけ実行したい」 | 実行系 → bedrock-agent-runtime の retrieve | bedrock-agent(構築・管理側であり、検索の実行操作は無い) |
命名が紛らわしいのは、bedrock-agent(作る)と bedrock-agent-runtime(動かす) の対、bedrock(管理する)と bedrock-runtime(呼び出す) の対という、ペア構造になっているからです。「-runtime」が付く方が常に実行系、付かない方が常に管理・構築系、というルールで覚えると崩れません。
取り違えやすいもの
| 迷う相手 | 切り分けの一言 |
|---|---|
| AWS CLI | CLIも内部的には同じAPIを叩くが、対話的・1回きりの実行向け。SDKはアプリケーションに組み込んで繰り返し呼ぶ |
| AWS CDK | CDKはインフラの構築・デプロイに使う。SDKはランタイムでのAPI呼び出しに使う。両方併用するのが普通(CDKでKnowledge Baseを作り、SDKでretrieveを呼ぶ) |
想起チェック
Q1. Knowledge Baseを新規作成するのに使うクライアントは?
bedrock-agent(構築系)です。実行専用の bedrock-agent-runtime では作成できません。
Q2. 「-runtime」が付くクライアント名の共通点は?
いずれも実行系(呼び出し・検索・生成といった、作った後に”動かす”操作)を担うことです。付かない方は一覧取得・作成・更新・削除といった管理・構築系を担います。