目次
- 初心者から実務者向けの包括的解説
- 概要
- Bedrock が解決する課題
- 主な特徴
- アーキテクチャ
- 提供 Foundation Model
- API と呼び出しパターン
- 主要ユースケース(10+)
- Knowledge Bases for Bedrock
- Bedrock Agents
- Bedrock AgentCore
- Guardrails for Bedrock
- Model Customization
- Provisioned Throughput
- Bedrock Studio
- Cross-region Inference
- Prompt Management
- Bedrock Data Automation
- セキュリティとコンプライアンス
- モニタリングとロギング
- コスト構造
- SageMaker AI との比較
- 他の類似サービスとの比較
- クライアント・SDK・エコシステム
- ベストプラクティス
- トラブルシューティング
- 2025-2026 最新動向
- 学習リソース
- 実装例・活用シーン
- 導入ロードマップ
- 実装チェックリスト
- まとめ
Amazon Bedrock 完全ガイド 2026
初心者から実務者向けの包括的解説
Amazon Bedrock は、複数の Foundation Model(FM)をサーバーレス API で利用できる 生成 AI プラットフォーム です。Anthropic Claude・Amazon Nova・Meta Llama・Mistral・Cohere・Stability AI など多様なモデルを統一 API で呼び出し、RAG(Retrieval Augmented Generation)・エージェント・ガードレール・モデルカスタマイズを統合的に提供し、エンタープライズ向け生成 AI アプリケーション構築の基盤となります。本ドキュメントは、Bedrock の概念・使い方・エコシステム・最新動向を体系的に解説する包括的ガイドです。
ドキュメントの目的
本ガイドは以下を対象としています。
- 初心者向け: Bedrock とは何か、なぜ必要かを学びたい方
- 開発者向け: Claude・Llama・Nova を使った生成 AI アプリケーションを構築したい方
- エンタープライズ向け: RAG・Agents・Guardrails で本番環境を構築したい方
- 意思決定者向け: Bedrock vs OpenAI API vs Azure OpenAI vs Vertex AI の比較・投資判断
2025-2026 年の Bedrock エコシステム
- Claude 4 系列:推論能力の向上、longer context window(200K→最大 1M トークン)
- Amazon Nova:AWS ネイティブモデルファミリー(Micro/Small/Large)、低レイテンシー・低コスト
- Bedrock AgentCore:2024 re:Invent で発表、マルチステップ Agent の新基盤
- Knowledge Bases Enhancement:複数データソース(S3, SharePoint, Confluence, Web Crawler)の自動同期
- Multi-agent Collaboration:複数 Agent の連携・調整機能
- Bedrock Marketplace:カスタムモデル・ファインチューニング済みモデルの共有
- Guardrails 拡張:より細粒度なコンテンツ制御、カスタムルール
- Prompt Management:プロンプトのバージョン管理・A/B テスト機能
- Cross-region Inference:高可用性のためのマルチリージョン対応
定義
“任意の Foundation Model に、API を通じてアクセス、カスタマイズ、デプロイでき、セキュアで拡張可能なエンタープライズアプリケーションを構築できるサービス”
目次
- 概要
- Bedrock が解決する課題
- 主な特徴
- アーキテクチャ
- 提供 Foundation Model
- API と呼び出しパターン
- 主要ユースケース
- Knowledge Bases for Bedrock
- Bedrock Agents
- Bedrock AgentCore
- Guardrails for Bedrock
- Model Customization
- Provisioned Throughput
- Bedrock Studio
- Cross-region Inference
- Prompt Management
- Bedrock Data Automation
- セキュリティとコンプライアンス
- モニタリングとロギング
- コスト構造
- SageMaker AI との比較
- 他の類似サービスとの比較
- クライアント・SDK・エコシステム
- ベストプラクティス
- トラブルシューティング
- 2025-2026 最新動向
- 学習リソース
- 実装例・活用シーン
- 導入ロードマップ
- 実装チェックリスト
- まとめ
- 参考文献
概要
初心者向けメモ: Amazon Bedrock は「生成 AI モデルを自分で学習・管理せず、AWS が提供する複数のモデルを API 経由で 借りて使う」 サービスです。OpenAI API のように特定のモデルに依存するのではなく、Claude・Llama・Nova など複数のモデルを同じ API で呼び出せます。自分でサーバーを立てる必要なく、完全サーバーレスで運用できます。
Bedrock の位置づけ
【図1】AWS 生成 AI サービス群における Bedrock の位置:
graph TD
Users[ユーザーアプリケーション]
Users -->|API| Bedrock["<b>Bedrock</b><br/>Foundation Model API"]
Users -->|フル制御| SageMaker["<b>SageMaker</b><br/>カスタム ML モデル"]
Users -->|エンドツーエンド| QueryEngine["<b>Amazon Q</b><br/>エンタープライズ QA"]
Bedrock -->|複数モデル| Models["Claude, Nova, Llama,<br/>Mistral, Cohere, ..."]
Bedrock -->|RAG| KB["Knowledge Bases"]
Bedrock -->|Agent| Agent["Agents"]
Bedrock -->|制御| Guard["Guardrails"]
style Bedrock fill:#FF9900
style SageMaker fill:#FF9900
style QueryEngine fill:#FF9900
style Models fill:#146EB4
Bedrock が解決する課題
課題 1: ベンダーロックイン
| 問題 | Bedrock での解決 |
|---|---|
| OpenAI API に依存すると、価格変更・性能低下・制限に影響される | ✅ Claude・Nova・Llama・Mistral など複数モデルを統一 API で選択可能 |
| モデル A が廃止になると全コード書き換え | ✅ modelId パラメータを変更するだけで別モデルに切り替え可能 |
| 特定プロバイダーの料金値上げ | ✅ 複数モデル比較で最適コスト・性能を選択 |
課題 2: セキュリティ・プライバシーの懸念
| 問題 | Bedrock での解決 |
|---|---|
| 社内機密文書を OpenAI API に送信すると学習データに使われる可能性 | ✅ Bedrock 送信データはモデル学習に使用されない。AWS の暗号化・監査ログで追跡可能 |
| 金融・医療・法務の規制要件への対応が困難 | ✅ VPC PrivateLink・KMS 暗号化・CloudTrail で完全監査。FedRAMP・HIPAA・PCI-DSS 対応 |
| データレジデンシー要件(特定地域内の処理) | ✅ リージョン指定で us-east-1・eu-west-1 等の処理を強制 |
課題 3: RAG 実装の複雑さ
| 問題 | Bedrock での解決 |
|---|---|
| 社内 PDF・Word・HTML ドキュメント用 RAG の構築に、ベクトル DB・埋め込みパイプライン・チャンキングを自前実装 | ✅ Knowledge Bases がマネージド RAG を提供。S3 のドキュメントを自動チャンキング・埋め込み・インデックス化 |
| RAG のメンテナンス・スケーリング | ✅ AWS が管理。ドキュメント更新を自動検知・再インデックス |
課題 4: エージェント(自律ツール呼び出し)の複雑さ
| 問題 | Bedrock での解決 |
|---|---|
| Tool Use(関数呼び出し)をサポートするモデル選びが複雑 | ✅ Claude・Llama・Nova など主要モデルが Tool Use をネイティブサポート |
| マルチステップエージェント(複数ツール連携)を一から実装 | ✅ Bedrock Agents / AgentCore で宣言的にツール定義・実行フロー管理 |
| モデルの思考プロセス(Chain-of-Thought)が見えない | ✅ Agent の trace を CloudWatch ログで可視化 |
課題 5: コンテンツ安全性・規制対応
| 問題 | Bedrock での解決 |
|---|---|
| モデルから不適切コンテンツ(暴力・ヘイト・性的内容)が生成される恐れ | ✅ Guardrails で多段階フィルタリング(入力前・出力後) |
| 個人情報(PII: メール・電話・SSN)が出力に含まれる | ✅ Guardrails で PII 自動検知・マスキング |
| 根拠なき回答(ハルシネーション)をブロック | ✅ Guardrails でグラウンディング確認・信頼度スコア |
主な特徴
| 特徴 | 説明 |
|---|---|
| マルチモデル対応 | Claude, Nova, Llama 2/3.1, Mistral, Cohere, Stability AI を統一 API で呼び出し |
| サーバーレス | インフラ管理不要。スケーリングは自動。API 呼び出し分だけ課金 |
| Knowledge Bases | S3・SharePoint・Confluence のドキュメントで RAG を自動構築 |
| Bedrock Agents | Tool Use で複数ツール(Lambda・API・DB)を自律的に呼び出すエージェント |
| Guardrails | コンテンツフィルタリング・PII マスキング・カスタムルール |
| Model Customization | Fine-tuning・Continued Pre-training でドメイン特化モデルを作成 |
| Provisioned Throughput | 専有スループット購入で低レイテンシー・予測可能な料金 |
| Multi-region Inference | 複数リージョン対応で高可用性・低レイテンシー |
| Bedrock Studio | ノーコード UI でプロンプト・ガードレール・ナレッジベース構築 |
| 企業セキュリティ | IAM・VPC Endpoint・KMS 暗号化・CloudTrail で完全監査 |
アーキテクチャ
初心者向けメモ: Bedrock は 4 層構造です。アプリケーション層が Bedrock API を呼び出し、制御層(Guardrails・Prompt Management)を経由して、複数の Foundation Model にリクエストが転送されます。Knowledge Bases・Agents・Model Customization はミドルウェア層として機能します。
【図2】Bedrock の 4 層アーキテクチャ:
graph TD
subgraph App[アプリケーション層]
WebApp["Web アプリ<br/>モバイルアプリ<br/>チャットボット"]
LLMChain["LangChain<br/>LlamaIndex"]
end
subgraph Control[制御層]
PM["Prompt Management"]
Guard["Guardrails"]
Monitor["Monitoring"]
end
subgraph Middleware[ミドルウェア層]
KB["Knowledge Bases<br/>RAG"]
Agent["Agents/AgentCore<br/>Tool Use"]
Custom["Model Customization<br/>Fine-tuning"]
end
subgraph Models[Foundation Model 層]
Claude["Claude 3.5<br/>Claude 4"]
Nova["Amazon Nova<br/>Micro/Small/Large"]
Llama["Meta Llama<br/>3.1"]
Mistral["Mistral<br/>7B/8x22B"]
Others["Cohere, Stability AI,<br/>AI21, ..."]
end
subgraph Infra[インフラストラクチャ層]
Region["Multi-Region<br/>Inference"]
Cache["Prompt Caching"]
PT["Provisioned<br/>Throughput"]
end
App -->|InvokeModel| Control
Control -->|Converse API| Middleware
Middleware -->|API| Models
Models -->|Response| Infra
style App fill:#FF9900
style Control fill:#146EB4
style Middleware fill:#146EB4
style Models fill:#232F3E
style Infra fill:#232F3E
提供 Foundation Model
2025-2026 年対応モデル(日本リージョン確認推奨)
| プロバイダー | モデル | コンテキスト | 特性 | 用途 |
|---|---|---|---|---|
| Anthropic | Claude 3.5 Sonnet | 200K→1M | テキスト生成・推論・分析・コード | 最高品質・用途問わず |
| Anthropic | Claude 3.5 Haiku | 200K | 軽量・高速 | レスポンス速度重視 |
| Anthropic | Claude 4 (forthcoming) | 1M+ | 推論の深さ | 複雑問題解決 |
| Amazon | Nova Micro | 300K | 超軽量 | チャット・FAQs |
| Amazon | Nova Small | 300K | 軽量・バランス型 | 翻訳・要約・抽出 |
| Amazon | Nova Large | 300K | 高品質・一般向け | テキスト生成・RAG |
| Meta | Llama 3.1(405B) | 128K | オープンソース・高性能 | オルタナティブ |
| Meta | Llama 3.1(70B) | 128K | バランス型 | コスト効率 |
| Mistral | Mistral Large 2 | 128K | 効率的・多言語 | 翻訳・スケーリング |
| Mistral | Mixtral 8x22B | 65K | 高速・専門知識 | スペシャライズ |
| Cohere | Command R+ | 128K | RAG 最適化 | RAG パイプライン |
| Cohere | Embed English v3 | - | 埋め込み生成 | Knowledge Bases |
| Stability AI | SDXL Turbo | - | 画像生成 | 画像・イラスト生成 |
| AI21 | Jurassic-2(Instruct) | 8K | テキスト生成 | 従来型ユースケース |
初心者向けメモ: 迷ったら Claude 3.5 Sonnet を選ぶ。汎用性・品質・Tool Use サポートの面で最強。コスト・速度重視なら Nova Small/Micro。
参考:各モデルの価格比較(2026 年現在、Claude 3.5 Sonnet = 100 を基準)
| モデル | 入力トークン相対コスト | 出力トークン相対コスト | 推論品質スコア |
|---|---|---|---|
| Claude 3.5 Sonnet | 100 | 100 | 95 |
| Claude 3.5 Haiku | 10 | 30 | 70 |
| Nova Large | 40 | 120 | 85 |
| Nova Small | 10 | 40 | 65 |
| Llama 3.1(70B) | 35 | 105 | 80 |
| Mistral Large 2 | 25 | 75 | 78 |
| Cohere Command R+ | 30 | 90 | 75 |
API と呼び出しパターン
API ファミリー
【図3】Bedrock の API 階層:
graph TD
subgraph HighLevel[高レベル API]
Converse["Converse API(推奨)<br/>マルチターン会話"]
RetrieveGen["Retrieve & Generate<br/>Knowledge Base RAG"]
Agents["Agents Runtime<br/>ツール呼び出し"]
end
subgraph LowLevel[低レベル API]
InvokeModel["InvokeModel<br/>単一リクエスト"]
Streaming["Streaming<br/>ストリーム応答"]
AsyncInvoke["Async InvokeModel<br/>非同期処理"]
end
subgraph Management[管理 API]
CustomModel["CreateModelCustomizationJob"]
Provisioned["CreateProvisionedModelThroughput"]
KB["CreateKnowledgeBase"]
Guard["CreateGuardrail"]
end
HighLevel -->|低レイテンシー| LowLevel
HighLevel -->|管理| Management
style HighLevel fill:#FF9900
style LowLevel fill:#146EB4
style Management fill:#232F3E
1. Converse API(推奨)
マルチターン会話に最適化された高レベル API。メッセージ履歴を管理し、モデル間で互換性を保ちます。
import boto3
import json
bedrock = boto3.client('bedrock-runtime', region_name='ap-northeast-1')
# マルチターン会話
messages = [
{"role": "user", "content": "AWS Bedrock とは何ですか?"},
{"role": "assistant", "content": "Bedrock は..."},
{"role": "user", "content": "と Knowledge Bases の関係は?"}
]
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=messages,
inferenceConfig={
'maxTokens': 1024,
'temperature': 0.7,
'topP': 0.9
},
additionalModelRequestFields={
'thinking': {
'type': 'enabled',
'budget_tokens': 5000 # Claude の思考トークン
}
}
)
print(response['output']['message']['content'][0]['text'])
2. InvokeModel API(従来型)
単一リクエスト用の低レベル API。モデルプロバイダー固有の JSON フォーマットに対応。
response = bedrock.invoke_model(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
body=json.dumps({
"anthropic_version": "bedrock-2023-06-01",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello"}
]
})
)
result = json.loads(response['body'].read())
print(result['content'][0]['text'])
3. Streaming API
長時間の出力をストリーミング。ユーザーに段階的にレスポンスを表示。
response = bedrock.converse_stream(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[{"role": "user", "content": "長いエッセイを書いて"}],
inferenceConfig={'maxTokens': 5000}
)
# イベントストリーム処理
for event in response['stream']:
if 'contentBlockDelta' in event:
print(event['contentBlockDelta']['delta']['text'], end='', flush=True)
4. Retrieve & Generate(Knowledge Base RAG)
Knowledge Base から検索 → モデルに渡す → 回答生成を自動化。
bedrock_agent = boto3.client('bedrock-agent-runtime', region_name='ap-northeast-1')
response = bedrock_agent.retrieve_and_generate(
input={'text': '量子コンピュータの原理を教えて'},
retrievalConfiguration={
'vectorSearchConfiguration': {
'numberOfResults': 5,
'overrideSearchType': 'SEMANTIC'
}
},
knowledgeBaseId='kb-xxxxxx'
)
print(response['output']['text'])
print("\n検索されたドキュメント:")
for source in response['citations']:
print(f"- {source['generatedResponsePart']['textSpan']['text']}")
5. Agents Runtime(ツール呼び出し)
複数ツール(Lambda・API・DB)を自律的に呼び出すエージェント実行。
response = bedrock_agent.invoke_agent(
agentId='agent-xxxxxx',
agentAliasId='LFSTSTBUFX',
sessionId='session-001',
inputText='注文 ORD-123 のステータスを確認して'
)
# イベントストリーム処理
for event in response['output']['stream']:
if 'trace' in event:
print(f"[Trace] {event['trace']['trace']}")
if 'finalResponse' in event:
print(f"[答え] {event['finalResponse']['text']}")
Tool Use(関数呼び出し)の実装
# ツール定義
tools = [
{
"name": "get_weather",
"description": "指定地点の天気を取得",
"input_schema": {
"type": "object",
"properties": {
"location": {"type": "string"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
]
# ツール呼び出し対応の Converse リクエスト
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[
{"role": "user", "content": "東京の天気を教えて"}
],
tools=tools
)
# モデルがツール呼び出しを返す
if response['output']['message']['content'][0]['type'] == 'toolUse':
tool_use = response['output']['message']['content'][0]
tool_name = tool_use['name']
tool_input = tool_use['input']
# ツール実行(例:get_weather)
result = execute_tool(tool_name, tool_input)
# 結果をモデルに返す
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[
*response['output']['message']['content'],
{
"role": "user",
"content": [
{
"type": "toolResult",
"toolUseId": tool_use['toolUseId'],
"content": json.dumps(result)
}
]
}
],
tools=tools
)
主要ユースケース(10+)
1. チャットボット・QA システム
シナリオ: 社内 FAQ チャットボット
- ユーザー: 「育児休暇の申請方法は?」
- ↓ Knowledge Bases で社内就業規則を検索
- ↓ Claude が質問と社内ルール両方を参考に回答
- 出力: 「育児休暇は出産日から 1 年以内に申請できます。申請フォームは…」
実装パターン:
- Knowledge Bases + Converse API
- Guardrails で機密情報(給与額など)をマスキング
2. RAG(Retrieval Augmented Generation)
シナリオ: 金融レポート分析システム
入力: 「過去 3 年間で EBITDA が最も成長した企業は?」
↓ Knowledge Bases で 1000+ 社の決算報告書を検索
↓ 関連性の高い 5 件のドキュメントを取得
↓ Claude が検索結果 + クエリで分析
出力: 「XX 社の EBITDA は...成長理由は...」
実装パターン:
- S3 に PDF/Excel 格納 → Knowledge Bases で自動インデックス
- Retrieve & Generate API で検索 + 生成を一度に実行
3. 要約・抽出
シナリオ: 会議議事録の自動要約
入力: 2 時間の会議記録(30ページの Word)
処理:
1. S3 にアップロード
2. Bedrock が Key Decision・Action Items・Timeline を抽出
3. マークダウン形式で出力
4. Slack に通知
実装パターン:
- Bedrock Data Automation(Document AI)で構造化データ抽出
- または Converse API で prompt で抽出指示
4. 多言語翻訳
シナリオ: グローバルカスタマーサポート自動化
- 入力言語: 日本語「使い方がわかりません」
- ↓ Nova Small で英語・中国語・フランス語に翻訳
- ↓ 各言語版をカスタマーに配信
実装パターン:
- Batch API で大量翻訳(コスト削減)
- Provisioned Throughput で保証レイテンシー
5. コード生成・コードレビュー
シナリオ: CI/CD パイプラインの自動コード品質管理
PR がマージ前に Bedrock Agent に送付
1. Claude が提案コードをレビュー
2. セキュリティ脆弱性(SQL injection など)を検出
3. ベストプラクティス違反をコメント
4. GitHub に自動コメント
実装パターン:
- GitHub Webhook → Lambda → Bedrock Agent
- Tool Use で GitHub API・SonarQube 連携
6. 画像生成・イラスト
シナリオ: e-コマース の自動商品画像生成
- 入力: 「赤いスニーカー、トップビュー、シンプルな白背景」
- モデル: Stability AI SDXL Turbo
- 出力: 2K PNG 画像(10 秒以内)
実装パターン:
- InvokeModel で Stability AI SDXL 呼び出し
- S3 に自動保存
7. Agent(自律ツール呼び出し)
シナリオ: 複雑な eコマース オーダーマネジメント
ユーザー: 「去年買った商品をもう一度買い直したい」
Agent が自律的に:
1. DynamoDB から購買履歴を検索
2. 在庫 API で在庫確認
3. 現在価格と比較
4. 推薦商品を提案
5. ワンクリック注文リンク生成
出力: 「XX 商品はこちら。価格は 20% 下がって...」
実装パターン:
- Bedrock Agents / AgentCore
- Lambda・RDS・REST API を Tool として登録
8. ドキュメント処理・OCR
シナリオ: 請求書の自動振り込み
入力: スキャンされた PDF 請求書
処理:
1. Amazon Textract で OCR(テキスト抽出)
2. Bedrock が「企業名」「金額」「支払期限」を抽出
3. Guardrails で金額の妥当性をチェック
4. 自動送金指示を生成
出力: 「XX 社への振込 ¥100,000、期限 2026-05-15」
実装パターン:
- Bedrock Data Automation(Document AI)
- または Converse API + Structured Outputs
9. 情報抽出・分類
シナリオ: 求人票の自動分類・タグ付け
入力: LinkedIn から取得した 1000+ 求人説明
処理:
1. Bedrock Batch API で一括処理
2. Claude が職種・スキル要件・給与レンジを抽出
3. 構造化 JSON で出力
4. DynamoDB に保存
実装パターン:
- Batch API(低コスト、非同期)
- Structured Outputs で確実な JSON フォーマット
10. 感情分析・テキスト分類
シナリオ: SNS カスタマーセンチメント分析
- 入力: ツイート「Bedrock 最高!使いやすい」
- 処理: Claude が感情(ポジティブ)・話題(AI)・緊急度(低)を分類
- 出力: JSON で分類結果を返す
実装パターン:
- Converse API で One-shot/Few-shot prompting
- CloudWatch Logs で分析結果を記録
11. 法務・コンプライアンス
シナリオ: 契約書の自動レビュー
入力: 新しい SaaS ライセンス契約(PDF)
処理:
1. Knowledge Bases で過去の社内契約を検索
2. Claude が危険条項(early termination, IP rights)を指摘
3. Guardrails で機密情報をマスキング
4. 法務部に通知
12. カスタマーサポート自動化
シナリオ: テクニカルサポートの会話型エージェント
顧客: 「AWS Lambda がタイムアウトしてる」
Agent:
1. CloudWatch Logs から Lambda 実行ログを取得
2. Claude が原因分析(コールド スタート? メモリ不足?)
3. トラブルシューティング手順を提案
4. 解決できなければ人間担当者へエスカレーション
Knowledge Bases for Bedrock
概要
初心者向けメモ: Knowledge Bases は「あなたの社内ドキュメント(PDF・Word・HTML)を Bedrock が 自動的に整理・検索できる形に変換してくれる サービス」です。自分でベクトル DB やチャンキングロジックを書く必要がありません。
アーキテクチャ
S3 にアップロード
↓
Knowledge Bases が自動監視
↓
ドキュメント チャンキング(自動)
↓
埋め込み生成(Amazon Titan Embeddings v2)
↓
ベクターストア(OpenSearch Serverless / Pinecone / RDS Aurora PostgreSQL)
↓
Retrieve & Generate / Converse で検索・生成
対応データソース(2025-2026)
| データソース | 対応状況 | 同期頻度 |
|---|---|---|
| Amazon S3 | ✅ ネイティブ | リアルタイム監視(S3 イベント) |
| SharePoint | ✅ | 定期的 |
| Confluence | ✅ | 定期的 |
| Web Crawler | ✅ | オンデマンド |
| Google Drive | 🔄 計画中 | - |
| Salesforce | 🔄 計画中 | - |
セットアップ例
bedrock = boto3.client('bedrock', region_name='ap-northeast-1')
# 1. Knowledge Base 作成
kb_response = bedrock.create_knowledge_base(
name='corporate-kb',
description='社内ドキュメント用 RAG',
roleArn='arn:aws:iam::ACCOUNT:role/BedrockKBRole',
knowledgeBaseConfiguration={
'type': 'VECTOR',
'vectorKnowledgeBaseConfiguration': {
'embeddingModel': {
'provider': 'BEDROCK',
'model': 'amazon.titan-embed-text-v2:0'
},
'storageConfiguration': {
'type': 'OPENSEARCH_SERVERLESS',
'opensearchServerlessConfiguration': {
'collectionArn': 'arn:aws:aoss:ap-northeast-1:ACCOUNT:collection/xxx'
}
}
}
}
)
kb_id = kb_response['knowledgeBase']['id']
# 2. データソース追加(S3)
bedrock.create_data_source(
knowledgeBaseId=kb_id,
name='s3-docs',
dataSourceConfiguration={
'type': 'S3',
's3Configuration': {
'bucketArn': 'arn:aws:s3:::my-docs-bucket',
'inclusionPrefixes': ['documents/'],
'exclusionPatterns': ['*.tmp']
}
}
)
# 3. インデックス化開始
bedrock.start_ingestion_job(
knowledgeBaseId=kb_id,
dataSourceId='ds-xxx'
)
Retrieve & Generate で検索・生成
bedrock_agent = boto3.client('bedrock-agent-runtime', region_name='ap-northeast-1')
response = bedrock_agent.retrieve_and_generate(
input={
'text': '2025 年度の売上目標は?'
},
retrievalConfiguration={
'vectorSearchConfiguration': {
'numberOfResults': 5, # 上位 5 件のドキュメント取得
'overrideSearchType': 'SEMANTIC', # セマンティック検索
'filter': {
'equals': {
'key': 'doc_type',
'value': 'financial'
}
}
}
},
knowledgeBaseId=kb_id,
generationConfiguration={
'inferenceConfig': {
'textInferenceConfig': {
'maxTokens': 1024,
'temperature': 0.7
}
}
}
)
print(response['output']['text'])
コスト(Knowledge Bases)
| 項目 | 料金 |
|---|---|
| 埋め込み生成(Titan Embeddings v2) | $0.02 / 100 万トークン |
| Vector Store(OpenSearch Serverless) | $0.70 / OC(処理時間ユニット) |
| ドキュメント取り込み | 埋め込みトークン料金に含む |
Bedrock Agents
概要
初心者向けメモ: Bedrock Agents は「モデルに複数のツールを与えて、 ユーザーの要求に基づいて自分で判断して使い分けさせる システム」です。「ツール A を呼んで、その結果を基に、ツール B を呼ぶ」といったマルチステップの判断を AI が自動で行います。
アーキテクチャ(Agents v1)
ユーザー入力
↓
[Agent] Claude が思考
↓
どのツール(Action Group)を使うべきか判断
↓
Lambda / API / DB を呼び出し
↓
結果を受け取ってさらに分析(推論ループ)
↓
最終回答を生成
セットアップ例
# 1. ツール(Action Group)定義
action_group = {
'actionGroupName': 'order-management',
'description': '注文管理ツール',
'actionGroupExecutor': {
'lambda': 'arn:aws:lambda:ap-northeast-1:ACCOUNT:function:OrderHandler'
},
'apiSchema': {
'payload': json.dumps({
'openapi': '3.0.0',
'info': {'title': 'Order API', 'version': '1.0'},
'paths': {
'/get-order-status': {
'post': {
'operationId': 'get_order_status',
'parameters': [{
'name': 'order_id',
'in': 'query',
'required': True,
'schema': {'type': 'string'}
}]
}
}
}
})
}
}
# 2. Agent 作成
bedrock_agent = boto3.client('bedrock-agent')
agent_response = bedrock_agent.create_agent(
agentName='ecommerce-agent',
agentRole='arn:aws:iam::ACCOUNT:role/BedrockAgentRole',
foundationModel='anthropic.claude-3-5-sonnet-20241022-v2:0',
description='e-commerce オーダー管理エージェント',
actionGroups=[action_group],
knowledgeBaseAssociations=[
{
'knowledgeBaseId': kb_id,
'description': '製品カタログ'
}
],
promptOverrideConfiguration={
'promptTemplate': '''You are an e-commerce assistant.
User Request: {user_input}
Available Tools:
- order_management (get status, cancel, track)
- product_knowledge (from Knowledge Base)
Respond in Japanese.'''
}
)
agent_id = agent_response['agent']['id']
# 3. Agent デプロイ
version_response = bedrock_agent.prepare_agent(agentId=agent_id)
# 4. Agent 呼び出し
bedrock_agent_runtime = boto3.client('bedrock-agent-runtime')
response = bedrock_agent_runtime.invoke_agent(
agentId=agent_id,
agentAliasId='LFSTSTBUFX',
sessionId='session-001',
inputText='注文 ORD-12345 はいつ到着しますか?'
)
# ストリーミング応答処理
for event in response['output']['stream']:
if 'trace' in event:
print(f"[Trace] {event['trace']}")
if 'finalResponse' in event:
print(f"[答え] {event['finalResponse']['text']}")
Tool Use パターン(Lambda ハンドラ例)
# Lambda: OrderHandler
def lambda_handler(event, context):
"""Agent からのツール呼び出しを処理"""
action_group = event['actionGroup']
action = event['function']
parameters = event['parameters']
if action == 'get_order_status':
order_id = parameters['order_id']
# DB から注文情報を取得
order = dynamodb.get_item(
Key={'order_id': order_id}
)
return {
'messageVersion': '1.0',
'response': {
'actionGroup': action_group,
'function': action,
'functionResponse': {
'text': json.dumps({
'order_id': order_id,
'status': 'shipped',
'expected_delivery': '2026-04-28',
'tracking': 'https://...'
})
}
}
}
Agents v1 vs AgentCore の比較
| 観点 | Agents v1 | AgentCore(2024 re:Invent) |
|---|---|---|
| 学習曲線 | 簡単 | やや複雑 |
| Tool 定義方法 | OpenAPI スキーマ | より詳細なスキーマ |
| マルチステップ推論 | ✅ | ✅(より高度) |
| 思考過程の可視化 | 制限的 | より詳細な Trace |
| 複数 Agent 協調 | ❌ | ✅(新機能) |
| リリース状況 | 一般提供中 | Preview/Limited |
Bedrock AgentCore
概要(2024 re:Invent 発表)
初心者向けメモ: AgentCore は Agents v1 の後継。より複雑なマルチステップワークフロー、複数エージェント間の協調(Agent of Agents)、より詳細な思考トレース(reasoning trace)をサポートします。
主な改善点
| 改善点 | Agents v1 | AgentCore |
|---|---|---|
| 複数エージェント協調 | ❌ | ✅ 複数エージェントが協力可能 |
| 推論の透明性 | 部分的 | ✅ 詳細な思考ステップを可視化 |
| Dynamic Tool Registration | 固定 | ✅ 実行時にツール追加可能 |
| 並列ツール呼び出し | ❌ | ✅ 複数ツール同時実行 |
| メモリ管理 | 基本的 | ✅ 長期・短期メモリ分離 |
利用可能性(2025-2026)
- us-east-1: 利用可能(Preview)
- ap-northeast-1(東京): 近日対応予定
Guardrails for Bedrock
概要
初心者向けメモ: Guardrails は「モデルの入力と出力を 自動的に検査・フィルタリング するフィルター」です。不適切なコンテンツ、機密情報、トピック逸脱を検知し、ユーザーに見せないようにします。
制御タイプ
| 制御タイプ | 説明 | 例 |
|---|---|---|
| コンテンツフィルタリング | 暴力・ヘイト・性的コンテンツをブロック | 暴力的表現 → 「不適切な内容です」 |
| トピック拒否 | 指定トピックへの言及をブロック | 「競合他社について答えるな」 |
| PII 検出・マスキング | 個人情報(メール・SSN・電話)を検出 | メール a@b.com → [EMAIL] |
| グラウンディング確認 | 根拠のない回答をブロック | 「この情報は Knowledge Base に…」確認 |
| ワードリスト | 特定キーワードをブロック | 「禁止ワード」を含む出力を拒否 |
セットアップ例
bedrock = boto3.client('bedrock')
# Guardrail 作成
guardrail_response = bedrock.create_guardrail(
name='corporate-guardrail',
description='企業向けコンテンツ制御',
blockedInputMessaging='不適切なリクエストです',
blockedOutputsMessaging='不適切な出力が検出されました',
contentPolicyConfig={
'filtersConfig': [
{
'type': 'VIOLENCE',
'inputStrength': 'HIGH',
'outputStrength': 'HIGH'
},
{
'type': 'HATE',
'inputStrength': 'HIGH',
'outputStrength': 'HIGH'
},
{
'type': 'SEXUAL',
'inputStrength': 'MEDIUM',
'outputStrength': 'HIGH'
}
]
},
sensitiveInformationPolicyConfig={
'piiConfig': {
'filtersConfig': [
{
'type': 'EMAIL',
'action': 'ANONYMIZE'
},
{
'type': 'PHONE',
'action': 'BLOCK'
},
{
'type': 'SSN',
'action': 'BLOCK'
}
]
}
},
topicPolicyConfig={
'topicsConfig': [
{
'name': 'internal-politics',
'definition': '社内政治や人事異動について議論しない',
'type': 'DENY'
}
]
},
wordPolicyConfig={
'wordsConfig': [
{
'text': 'competitor-name'
}
]
}
)
guardrail_id = guardrail_response['guardrailId']
# Guardrail 適用(Converse API)
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[
{"role": "user", "content": "My email is john@example.com"}
],
guardrailConfig={
'guardrailIdentifier': guardrail_id,
'guardrailVersion': 'DRAFT'
}
)
# 出力から PII が除去される
print(response['output']['message']['content'][0]['text'])
# → "My email is [EMAIL]"
Guardrails の段階的フィルタリング
ユーザー入力
↓
[Guardrails] 入力フィルタリング
├─ コンテンツフィルタリング
├─ PII マスキング
└─ トピック拒否
↓
モデル処理
↓
[Guardrails] 出力フィルタリング
├─ コンテンツフィルタリング
├─ PII マスキング
└─ グラウンディング確認
↓
ユーザーへの応答
コスト
| 項目 | 料金 |
|---|---|
| Guardrails 処理 | $0.75 / 1,000 テキストユニット |
Model Customization
3 つのカスタマイズパターン
| パターン | 説明 | ユースケース | 学習期間 |
|---|---|---|---|
| Fine-tuning(ファインチューニング) | Instruction-following で既存モデルの応答パターンを学習 | 社内文体・フォーマット統一 | 数時間 |
| Continued Pre-training(継続事前学習) | 大規模コーパスでモデルの知識を拡張 | 最新ドメイン知識の追加 | 数日 |
| Distillation(蒸留) | 大きいモデル(Sonnet)の知識を小さいモデル(Haiku)に転移 | コスト削減・レイテンシー改善 | 数時間 |
Fine-tuning 例
bedrock = boto3.client('bedrock')
# トレーニングデータ準備(S3 に JSONL 形式で)
# {"input": "...", "output": "..."}
# Fine-tuning ジョブ開始
job_response = bedrock.create_model_customization_job(
jobName='customer-support-tuning',
customModelName='customer-support-model-v1',
roleArn='arn:aws:iam::ACCOUNT:role/BedrockCustomizationRole',
baseModelIdentifier='anthropic.claude-3-5-sonnet-20241022-v2:0',
trainingDataConfig={
's3Uri': 's3://my-bucket/training-data.jsonl'
},
outputDataConfig={
's3OutputPath': 's3://my-bucket/output/'
},
customizationConfig={
'fineTuningConfig': {
'epochCount': 3,
'batchSize': 4,
'learningRate': 0.0001
}
}
)
job_id = job_response['jobArn']
# ジョブ完了待機
import time
while True:
job_details = bedrock.get_model_customization_job(jobIdentifier=job_id)
status = job_details['status']
if status == 'Completed':
print(f"✅ Fine-tuning 完了")
custom_model_id = job_details['customModelArn']
break
elif status == 'Failed':
print(f"❌ Fine-tuning 失敗: {job_details['failureMessage']}")
break
time.sleep(60)
# カスタムモデルを使用
response = bedrock.invoke_model(
modelId=custom_model_id,
body=json.dumps({...})
)
Continued Pre-training 例
# 大規模コーパス(例:医療論文 10GB)で知識を追加
job_response = bedrock.create_model_customization_job(
jobName='medical-knowledge-tuning',
customModelName='medical-model-v1',
roleArn='arn:aws:iam::ACCOUNT:role/BedrockCustomizationRole',
baseModelIdentifier='anthropic.claude-3-5-sonnet-20241022-v2:0',
trainingDataConfig={
's3Uri': 's3://my-bucket/medical-corpus.txt'
},
outputDataConfig={
's3OutputPath': 's3://my-bucket/output/'
},
customizationConfig={
'continuedPreTrainingConfig': {
'textDataConfig': {
's3Uri': 's3://my-bucket/medical-corpus.txt'
},
'epochCount': 1,
'batchSize': 8,
'learningRate': 0.00005
}
}
)
カスタムモデルの制約
- デプロイ方法: Provisioned Throughput(専有スループット)が必須
- アクセス制御: IAM で誰がアクセスできるか制御
- バージョン管理:
v1,v2など複数バージョン並存可能
Provisioned Throughput
概要
初心者向けメモ: 通常 Bedrock は「使った分だけ課金」(On-Demand)ですが、大量リクエストがある場合、事前に「モデルユニット(MU)」を購入すると、安くて、速く、スループット制限がなくなります。
料金比較
シナリオ:1 日 100 万リクエスト(Claude 3.5 Sonnet)
On-Demand
- 入力: 100 万リクエスト × 500 トークン = 5 億トークン = $1,500/日
- 出力: 100 万リクエスト × 100 トークン = 1 億トークン = $1,500/日
- 合計:
3,000/日 =90,000/月
Provisioned Throughput(MU)
- 必要 MU: 5 MU(1 MU ≈ 100 万トークン/日)
- 月額料金: 5 MU ×
9,100/月 =45,500/月 - 節約額: $44,500/月(50% カット)
セットアップ例
bedrock = boto3.client('bedrock')
# Provisioned Throughput 購入
pt_response = bedrock.create_provisioned_model_throughput(
modelUnits=5, # 5 MU = 500万トークン/日
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
commitmentDuration='ONE_MONTH', # 1 ヶ月コミット
tags={
'environment': 'production',
'cost-center': 'engineering'
}
)
provisioned_model_id = pt_response['provisionedModelArn']
# Provisioned モデルで呼び出し
response = bedrock.invoke_model(
modelId=provisioned_model_id, # MU 購入したモデル ARN
body=json.dumps({...})
)
Provisioned vs On-Demand 選択基準
| 条件 | 推奨 |
|---|---|
| 開発・テスト環境 | On-Demand |
| 月 500 万トークン以下 | On-Demand |
| 月 5000 万トークン以上 | Provisioned |
| リアルタイム API(レイテンシー重視) | Provisioned |
| バッチ処理(コスト重視) | On-Demand |
| カスタムモデルデプロイ | Provisioned(必須) |
Bedrock Studio
概要
初心者向けメモ: Bedrock Studio は「Web ブラウザで、コードを書かずに、Bedrock 機能を試せるノーコード UI」です。プロンプト開発・ガードレール設定・ナレッジベース構築などを GUI で実行できます。
機能
-
Prompt Builder
- プロンプト作成・テスト
- 複数モデルでの比較
- テンプレート保存
-
Knowledge Bases Builder
- S3 ドキュメント追加
- プレビュー検索
- インデックス管理
-
Agents Builder
- ツール(Lambda・API)を UI で登録
- テスト実行
- ロギング確認
-
Guardrails Builder
- コンテンツフィルタ設定
- PII ルール管理
- テスト実行
アクセス
- AWS Management Console
- → Bedrock
- → Studio
- → Prompt Builder / Knowledge Bases / Agents / Guardrails
Cross-region Inference
概要
Bedrock を複数リージョンで実行し、高可用性・低レイテンシーを実現。
実装パターン
import boto3
# 複数リージョンのクライアント
bedrock_primary = boto3.client('bedrock-runtime', region_name='us-east-1')
bedrock_secondary = boto3.client('bedrock-runtime', region_name='eu-west-1')
bedrock_tertiary = boto3.client('bedrock-runtime', region_name='ap-northeast-1')
def invoke_with_failover(prompt):
"""フェイルオーバー付き推論"""
regions = [
('us-east-1', bedrock_primary),
('eu-west-1', bedrock_secondary),
('ap-northeast-1', bedrock_tertiary)
]
for region_name, client in regions:
try:
response = client.invoke_model(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
body=json.dumps({...})
)
print(f"✅ {region_name} で成功")
return response
except Exception as e:
print(f"❌ {region_name} で失敗: {e}")
continue
raise Exception("全リージョンで失敗")
リージョン別対応モデル(2025-2026)
| リージョン | 対応モデル |
|---|---|
| us-east-1 | Claude, Nova, Llama, Mistral, Cohere, Stability, AI21 |
| us-west-2 | ほぼ同じ |
| eu-west-1 | Claude, Nova, Llama, Mistral, Cohere |
| ap-northeast-1(東京) | Claude, Nova, Llama, Mistral, Cohere(※拡充中) |
Prompt Management
概要
プロンプトのバージョン管理・A/B テスト機能。
セットアップ例
bedrock = boto3.client('bedrock')
# プロンプト作成
prompt_response = bedrock.create_prompt(
name='customer-support-prompt',
description='カスタマーサポート用プロンプト',
clientRequestToken='unique-id-001',
promptTemplate={
'textPromptTemplate': '''You are a customer support agent.
User Query: {user_query}
Instructions:
1. Respond in Japanese
2. Be empathetic
3. Offer solutions
Answer:'''
}
)
prompt_id = prompt_response['name']
# プロンプト利用
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[
{
"role": "user",
"content": "I have an issue with my order"
}
],
system=[
{
"text": "Use the customer support prompt template",
"type": "text"
}
]
)
Bedrock Data Automation
概要
初心者向けメモ: Bedrock Data Automation は「スキャンされた PDF・画像からテキストと構造化データを自動抽出するサービス」です。Amazon Textract + Claude を統合。
ユースケース
-
請求書処理
- 企業名、金額、支払期限を自動抽出
- JSON で構造化
- 会計システムに自動連携
-
契約書分析
- 重要条項の抽出
- リスク判定
- 契約タイプの自動分類
-
医療記録処理
- 診断、処方箋、検査結果を抽出
- 患者情報を匿名化
- EHR システムに自動連携
実装(簡易例)
bedrock = boto3.client('bedrock-runtime')
textract = boto3.client('textract')
# 1. Textract で PDF から テキスト抽出
response = textract.detect_document_text(
Document={'S3Object': {'Bucket': 'bucket', 'Name': 'invoice.pdf'}}
)
extracted_text = '\n'.join([
block['Text'] for block in response['Blocks']
if block['BlockType'] == 'LINE'
])
# 2. Bedrock で構造化データ抽出
bedrock_response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[
{
"role": "user",
"content": f"""以下の請求書から以下の情報を JSON で抽出してください:
- 企業名
- 合計金額
- 支払期限
- 請求番号
請求書:
{extracted_text}
返却フォーマット: {{"company": "...", "total": "...", "due_date": "...", "invoice_id": "..."}}"""
}
]
)
import json
extracted_json = json.loads(bedrock_response['output']['message']['content'][0]['text'])
print(extracted_json)
セキュリティとコンプライアンス
データプライバシー
| 項目 | Bedrock | OpenAI API |
|---|---|---|
| ユーザーデータの学習利用 | ❌ AWS が使用しない | ✅ 改善に使用可能 |
| データ保持期間 | 最短(デフォルト削除) | 30 日保持 |
| HIPAA 対応 | ✅ | ❌ |
| PCI-DSS 対応 | ✅ | ❌ |
| 暗号化(転送中) | TLS 1.2+ | TLS 1.2+ |
| 暗号化(保存時) | ✅ KMS | ✅ |
VPC Endpoint・Private Network
# VPC Endpoint 経由で Bedrock にアクセス(インターネット不要)
ec2 = boto3.resource('ec2')
vpc = ec2.Vpc('vpc-xxx')
# VPC Endpoint 作成(Bedrock)
endpoint = vpc.create_vpc_endpoint(
ServiceName='com.amazonaws.ap-northeast-1.bedrock-runtime',
VpcEndpointType='Interface',
SubnetIds=['subnet-xxx'],
SecurityGroupIds=['sg-xxx']
)
# VPC 内から Bedrock を呼び出し(インターネット経由でない)
bedrock = boto3.client('bedrock-runtime', region_name='ap-northeast-1')
response = bedrock.invoke_model(...)
IAM ポリシー例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "arn:aws:bedrock:ap-northeast-1:ACCOUNT:foundation-model/*",
"Condition": {
"StringEquals": {
"bedrock:ModelId": "anthropic.claude-3-5-sonnet-20241022-v2:0"
}
}
},
{
"Effect": "Allow",
"Action": "bedrock:RetrieveAndGenerate",
"Resource": "arn:aws:bedrock:ap-northeast-1:ACCOUNT:knowledge-base/kb-*"
}
]
}
コンプライアンス認証
- ✅ FedRAMP(政府機関向け)
- ✅ HIPAA(医療)
- ✅ PCI-DSS(金融)
- ✅ SOC 2 Type II
- ✅ ISO 27001
モニタリングとロギング
CloudWatch ログ
# Bedrock のモデル呼び出しログを有効化
bedrock = boto3.client('bedrock')
response = bedrock.put_model_invocation_logging_configuration(
loggingConfig={
'cloudWatchConfig': {
'logGroupName': '/aws/bedrock/invocations',
'roleArn': 'arn:aws:iam::ACCOUNT:role/BedrockLoggingRole',
'enabled': True
},
's3Config': {
'bucketName': 'my-logs-bucket',
'keyPrefix': 'bedrock-logs/',
'enabled': True
},
'textDataIdentificationConfig': {
'enabled': True
}
}
)
CloudTrail 監査
# CloudTrail で全ての Bedrock API 呼び出しを監査
# CloudTrail コンソールで確認:
# - create_knowledge_base
# - create_agent
# - invoke_model
# - delete_guardrail
# など全操作
メトリクス監視(CloudWatch)
cloudwatch = boto3.client('cloudwatch')
# Bedrock メトリクス例
metrics = [
'ModelInvocationCount',
'InputTokenCount',
'OutputTokenCount',
'InvocationDuration',
'InvocationErrorCount'
]
# ダッシュボード作成
dashboard_body = {
'widgets': [
{
'type': 'metric',
'properties': {
'metrics': [
['AWS/Bedrock', 'ModelInvocationCount', {'stat': 'Sum'}],
['AWS/Bedrock', 'InputTokenCount', {'stat': 'Sum'}],
['AWS/Bedrock', 'InvocationErrorCount', {'stat': 'Sum'}]
],
'period': 300,
'stat': 'Average',
'region': 'ap-northeast-1'
}
}
]
}
コスト構造
2025-2026 年の価格体系(ap-northeast-1)
Claude 3.5 Sonnet(テキスト生成)
| 項目 | On-Demand | Provisioned(1 MU, 1 ヶ月) |
|---|---|---|
| 入力 | `3.00 / 100 万トークン | 100 万トークン / `9,100 |
| 出力 | $15.00 / 100 万トークン | 含む |
| キャッシュ利用(入力) | $0.30 / 100 万トークン | 含む |
Claude 3.5 Haiku
| 項目 | 価格 |
|---|---|
| 入力 | $0.80 / 100 万トークン |
| 出力 | $4.00 / 100 万トークン |
Amazon Nova
| モデル | 入力 | 出力 |
|---|---|---|
| Micro | `0.03 / 100 万トークン | `0.12 / 100 万トークン |
| Small | `0.05 / 100 万トークン | `0.25 / 100 万トークン |
| Large | `0.30 / 100 万トークン | `1.20 / 100 万トークン |
Knowledge Bases
| 項目 | 価格 |
|---|---|
| 埋め込み生成(Titan) | $0.02 / 100 万トークン |
| Vector Store(OpenSearch) | $0.70 / 処理時間ユニット(OC) |
Guardrails
| 項目 | 価格 |
|---|---|
| Guardrails 処理 | $0.75 / 1,000 テキストユニット |
Fine-tuning
| 項目 | 価格 |
|---|---|
| Fine-tuning ジョブ | $900 / ジョブ(Sonnet) |
| Continued Pre-training | $1,800 / ジョブ |
コスト最適化のヒント
1. モデル選択
- 品質 > 速度の場合: Claude 3.5 Sonnet
- 速度 > 品質の場合: Nova Small / Mistral 7B
- 両立したい場合: Nova Large
2. Provisioned Throughput の採用判定
monthly_tokens = 50_000_000 # 月 5000 万トークン
# On-Demand コスト
on_demand_cost = (monthly_tokens / 1_000_000) * 3 # 入力トークン(Sonnet)
# Provisioned コスト
required_mu = (monthly_tokens / 1_000_000) / 100 # 1 MU = 100 万トークン/日
provisioned_cost = required_mu * 9_100
print(f"On-Demand: ${on_demand_cost}") # $150
print(f"Provisioned: ${provisioned_cost}") # $455(購入推奨ボーダー)
# 月 5000 万トークンの場合、On-Demand の方が安い
3. キャッシュの活用
# Prompt Caching で繰り返しリクエストのコストを削減
# 同じシステムプロンプトを複数回使う場合、最初の呼び出しで $3.00
# 2 回目以降は $0.30(90% カット)
4. Batch API(非同期)
# リアルタイム不要な処理(日次レポート生成など)は
# Batch API で安く処理(割引率最大 50%)
SageMaker AI との比較
| 観点 | Bedrock | SageMaker |
|---|---|---|
| 学習曲線 | 簡単(API のみ) | やや複雑(エンドポイント管理) |
| モデル利用 | API(複数モデル選択可) | エンドポイント(1 モデル = 1 EP) |
| Fine-tuning | ✅ マネージド | ✅ カスタム学習基盤 |
| RAG 統合 | ✅ Knowledge Bases | ❌ 別途実装 |
| Agent 統合 | ✅ Agents/AgentCore | ❌ 別途実装 |
| コスト | トークンベース | エンドポイント + コンピュート |
| スケーリング | 自動 | 手動調整 |
| 推奨用途 | 生成 AI アプリ・RAG・Agent | カスタム ML モデル・強化学習 |
他の類似サービスとの比較
Bedrock vs OpenAI API
| 観点 | Bedrock | OpenAI API |
|---|---|---|
| モデル選択肢 | ✅ Claude, Nova, Llama, Mistral, Cohere | ❌ GPT-4o のみ |
| ベンダーロックイン | ❌ 複数モデル可 | ✅ OpenAI 依存 |
| データプライバシー | ✅ 学習に使わない | ⚠️ 改善に使用可能 |
| VPC/Private Network | ✅ VPC Endpoint | ❌ インターネット経由 |
| コスト(大量) | ✅ Provisioned で安い | ❌ 割引なし |
| 日本リージョン | ✅ ap-northeast-1 | ❌ なし(us 経由) |
Bedrock vs Azure OpenAI
| 観点 | Bedrock | Azure OpenAI |
|---|---|---|
| エコシステム | ✅ AWS 統合 | ✅ Azure 統合 |
| モデル多様性 | ✅ 複数プロバイダー | ❌ GPT のみ |
| 企業ロックイン | AWS ロック | Azure ロック |
| グローバル展開 | 複数リージョン | 複数リージョン |
| コスト透明性 | ✅ トークン単価明確 | ✅ 同様 |
Bedrock vs Google Vertex AI
| 観点 | Bedrock | Vertex AI |
|---|---|---|
| モデル | Claude, Llama, Mistral | Gemini, Llama, others |
| RAG 統合 | ✅ Knowledge Bases | ✅ Vertex AI Search |
| Agent フレームワーク | ✅ Agents/AgentCore | ✅ Vertex AI Agents |
| Fine-tuning | ✅ マネージド | ✅ マネージド |
| 日本リージョン | ✅ | ✅ |
Bedrock vs Anthropic API
| 観点 | Bedrock | Anthropic API |
|---|---|---|
| モデルアクセス | ✅ Claude のみ | ✅ Claude のみ |
| AWS 統合 | ✅ Knowledge Bases, Agents | ❌ |
| Enterprise 機能 | ✅ Guardrails, RAG, Agent | ❌ |
| セキュリティ | ✅ IAM, VPC, KMS | ⚠️ API キーのみ |
| 料金 | 同等 | 同等 |
選択ガイド:
- AWS を既に使っている → Bedrock
- Anthropic Claude 専用で十分 → Anthropic API
- 複数モデル・エコシステム重視 → Bedrock
- Google Cloud 環境 → Vertex AI
クライアント・SDK・エコシステム
公式 SDK
| 言語 | SDK | 最新バージョン |
|---|---|---|
| Python | boto3 |
1.34+ |
| JavaScript/Node.js | @aws-sdk/client-bedrock-runtime |
3.x |
| Java | software.amazon.awssdk:bedrock |
2.x |
| C# | AWSSDK.Bedrock |
3.7+ |
| Go | aws-sdk-go-v2 |
1.x |
フレームワーク統合
1. LangChain
from langchain_aws import BedrockLLM
from langchain.chains import RetrievalQA
from langchain_aws import BedrockEmbeddings
# Bedrock 統合
llm = BedrockLLM(
model_id="anthropic.claude-3-5-sonnet-20241022-v2:0",
region_name="ap-northeast-1"
)
embeddings = BedrockEmbeddings(
model_id="amazon.titan-embed-text-v2:0"
)
# RAG パイプライン
qa = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vectorstore.as_retriever()
)
result = qa.run("質問")
2. LlamaIndex
from llama_index.llms.bedrock import Bedrock
from llama_index.embeddings.bedrock import BedrockEmbedding
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
# Bedrock LLM
llm = Bedrock(model="anthropic.claude-3-5-sonnet-20241022-v2:0")
# Bedrock 埋め込み
embed_model = BedrockEmbedding(
model_id="amazon.titan-embed-text-v2:0"
)
# ドキュメント読み込み
documents = SimpleDirectoryReader("./data").load_data()
# インデックス作成
index = VectorStoreIndex.from_documents(
documents,
embed_model=embed_model,
llm=llm
)
# クエリ実行
query_engine = index.as_query_engine()
response = query_engine.query("質問")
3. AWS Lambda(サーバーレス統合)
import json
import boto3
from aws_lambda_powertools import Logger, Tracer
from aws_lambda_powertools.utilities.typing import LambdaContext
bedrock = boto3.client('bedrock-runtime')
logger = Logger()
tracer = Tracer()
@tracer.capture_lambda_handler
def lambda_handler(event: dict, context: LambdaContext) -> dict:
"""Bedrock API Gateway 統合"""
body = json.loads(event['body'])
user_query = body['query']
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[
{"role": "user", "content": user_query}
]
)
return {
'statusCode': 200,
'body': json.dumps({
'answer': response['output']['message']['content'][0]['text']
})
}
4. AWS Step Functions(ワークフロー)
{
"Comment": "Bedrock を使った複雑ワークフロー",
"StartAt": "InvokeBedrockModel",
"States": {
"InvokeBedrockModel": {
"Type": "Task",
"Resource": "arn:aws:states:::bedrock:invokeModel.sync",
"Parameters": {
"ModelId": "anthropic.claude-3-5-sonnet-20241022-v2:0",
"Body": "..."
},
"Next": "ProcessResponse"
},
"ProcessResponse": {
"Type": "Task",
"Resource": "arn:aws:lambda:ap-northeast-1:ACCOUNT:function:ProcessBedrockResponse",
"End": true
}
}
}
エコシステムツール
| ツール | 用途 | 統合状況 |
|---|---|---|
| Strands Agents | エージェント基盤 | ✅ Bedrock Agents 統合 |
| Replicate | モデルホスティング | ❌ 独立 |
| Hugging Face | モデルレジストリ | ⚠️ 一部統合 |
| Weights & Biases | ML 実験追跡 | ✅ 対応予定 |
ベストプラクティス
1. プロンプト最適化
# ❌ 悪い例
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[
{"role": "user", "content": "翻訳して"}
]
)
# ✅ 良い例(詳細・明示的)
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[
{
"role": "user",
"content": """以下の英文を自然な日本語に翻訳してください。
技術用語は括弧内に英語を併記。
翻訳のみ返してください。
[原文]
"The system leverages vector embeddings for semantic search."
[形式]
翻訳結果のみ"""
}
],
inferenceConfig={
'maxTokens': 256,
'temperature': 0.0 # 確定的
}
)
2. エラーハンドリング
import time
from botocore.exceptions import ThrottlingException
def invoke_with_retry(model_id, messages, max_retries=3):
"""エクスポーネンシャルバックオフ付き呼び出し"""
for attempt in range(max_retries):
try:
response = bedrock.converse(
modelId=model_id,
messages=messages
)
return response
except ThrottlingException:
wait_time = 2 ** attempt # 1s, 2s, 4s
logger.warning(f"Throttled. Retrying in {wait_time}s")
time.sleep(wait_time)
except Exception as e:
logger.error(f"Error: {e}")
raise
raise Exception("Max retries exceeded")
3. Token 管理
from anthropic import Anthropic
def count_tokens(text: str) -> int:
"""Claude で使用トークン数を推定"""
client = Anthropic()
response = client.beta.messages.count_tokens(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": text}]
)
return response.input_tokens
# 大量テキストの場合、分割処理
def process_large_text(text: str, chunk_size: int = 10000):
"""トークン数制限内に分割"""
chunks = [text[i:i+chunk_size] for i in range(0, len(text), chunk_size)]
results = []
for chunk in chunks:
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[{"role": "user", "content": chunk}]
)
results.append(response['output']['message']['content'][0]['text'])
return '\n'.join(results)
4. Knowledge Base 活用
# ❌ 非効率:毎回全ドキュメントを入力
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[
{
"role": "user",
"content": f"質問: {question}\n\n全社内ドキュメント: {all_documents}"
}
]
)
# ✅ 効率的:Knowledge Bases で検索
bedrock_agent = boto3.client('bedrock-agent-runtime')
response = bedrock_agent.retrieve_and_generate(
input={'text': question},
knowledgeBaseId=kb_id,
retrievalConfiguration={
'vectorSearchConfiguration': {
'numberOfResults': 5,
'overrideSearchType': 'SEMANTIC'
}
}
)
5. Guardrails 必須適用
# 本番環境では必ず Guardrails を適用
response = bedrock.converse(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
messages=[...],
guardrailConfig={
'guardrailIdentifier': guardrail_id,
'guardrailVersion': 'DRAFT'
}
)
6. ログ・モニタリング
import logging
# CloudWatch に送信
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def log_invocation(model_id, input_tokens, output_tokens, latency_ms):
logger.info(
"bedrock_invocation",
extra={
'model_id': model_id,
'input_tokens': input_tokens,
'output_tokens': output_tokens,
'latency_ms': latency_ms,
'cost_usd': calculate_cost(input_tokens, output_tokens)
}
)
トラブルシューティング
問題 1: “Access Denied” エラー
原因: IAM ポリシーが不足
# 解決
# 1. IAM ロールに bedrock:InvokeModel 権限があるか確認
# 2. リソース ARN が正しいか確認
# 3. VPC Endpoint ルートテーブルを確認(VPC からアクセスの場合)
問題 2: “Model Not Found” エラー
原因: モデル ID が不正、またはリージョンで未対応
# 解決:利用可能なモデル一覧を確認
bedrock = boto3.client('bedrock', region_name='ap-northeast-1')
models = bedrock.list_foundation_models()
for model in models['modelSummaries']:
print(f"{model['modelId']} - {model['modelName']}")
問題 3: “Throttling” エラー
原因: リクエストレート制限に達した
# 解決 1: エクスポーネンシャルバックオフ(上記参照)
# 解決 2: Provisioned Throughput を購入
bedrock.create_provisioned_model_throughput(
modelUnits=5,
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0'
)
問題 4: Knowledge Base 検索結果が不正確
原因: チャンキング・埋め込みモデルの不適切
# 解決:Knowledge Base を再インデックス化
bedrock.start_ingestion_job(
knowledgeBaseId=kb_id,
dataSourceId='ds-xxx'
)
問題 5: Agent が無限ループ
原因: ツール定義が曖昧、または推論ループが終了しない
# 解決:Agent のループ制限を設定
# (Agents v1 では最大 25 ステップ)
response = bedrock_agent.invoke_agent(
agentId=agent_id,
agentAliasId=agent_alias_id,
sessionId=session_id,
inputText=user_input,
sessionStateAttributes={
'maxIterations': '10' # ステップ制限
}
)
2025-2026 最新動向
1. Claude モデルの最新版(2026 Q2 時点)
Claude 4 系列の展開:
- 推論能力向上:より複雑な推論・マルチステップ問題解決
- 最大 1M+ コンテキストウィンドウ:長大なドキュメント処理対応
- マルチモーダル強化:画像・動画・音声の統合処理
- Tool Use 強化:より高度な外部ツール連携
# Claude の最新版呼び出し
response = bedrock.converse(
modelId='anthropic.claude-4-20260430-v1:0',
messages=[...],
additionalModelRequestFields={
'thinking': {
'type': 'enabled',
'budget_tokens': 10000
}
}
)
2. Amazon Nova ファミリーの拡充
新モデルの追加:
- Nova Micro/Small/Base/Large:低遅延・低コスト
- Nova Vision:画像理解・視覚タスク特化
- Nova Embeddings v2:より高精度なテキスト埋め込み
- Nova Llama 統合:Meta Llama との統合ファミリー
3. Bedrock AgentCore の本格化(2026 Q1-Q2)
新機能・フルマネージド提供:
- Managed Harness(プレビュー):モデル・システムプロンプト・ツールのみで Agent 定義
- AgentCore CLI:インフラストラクチャ as コード(AWS CDK / Terraform)対応
- AgentCore Skills:Coding Assistant 向けスキル(Claude Code・Cursor 対応予定)
- 複数エージェント協調:Agent が Agent を呼び出す高度なワークフロー
- より詳細な推論トレース:デバッグ・説明性向上
- 動的ツール登録:実行時のツール追加
実装例:
# Managed Harness で Agent 作成(ユーザーがオーケストレーション不要)
agent = bedrock_agents.create_agent(
model='claude-4',
system_prompt='You are a financial analyst...',
tools=[
{'name': 'retrieve_stock_data', 'description': '...'},
{'name': 'calculate_metrics', 'description': '...'}
]
)
# 実行は完全マネージド
response = agent.run(user_query) # 内部で reasoning → tool selection → action execution → response generation
4. Knowledge Bases(RAG)の大幅強化
新しいデータソース対応:
- S3, SharePoint, Confluence, Web Crawler:複数ソースの自動同期
- Google Drive:クラウドストレージ直接接続
- Salesforce(CRM):営業・顧客データ統合
- Notion:知識ベース同期
- Database 直接接続:リアルタイム同期
高度な検索・RAG:
- Hybrid Search(キーワード + ベクトル)
- Multi-hop Retrieval(複数ドキュメント横断検索)
- ハイパーパラメータ自動チューニング
5. Multi-agent Collaboration
# 複数 Agent が協力して複雑タスクを解決
coordinator = Bedrock Agent(role='Data Analyzer')
agents = {
'data_extractor': Agent(role='Extract data'),
'analyst': Agent(role='Analyze findings'),
'report_writer': Agent(role='Write report')
}
# Agent 間の自動調整・コミュニケーション
result = coordinator.orchestrate(
goal='Analyze Q4 financial report',
agents=agents
)
6. Bedrock AgentRegistry & Marketplace
エコシステム構築:
- カスタムモデル共有:ファインチューニング済みモデルの Marketplace
- ファインチューニング済みモデル販売:業種別・タスク別の最適化モデル
- Agent テンプレート共有:再利用可能な Agent 設計パターン
- プリビルト Agent 提供:一般的なユースケース(HR、Finance、Support)
7. Prompt Management & A/B テスト
プロンプト管理機能:
- バージョン管理:プロンプトの git のような履歴管理
- A/B テスト機能:複数プロンプト版の自動比較実験
- パフォーマンス分析:プロンプト版別の品質メトリクス
- 自動最適化:AI による推奨プロンプト改善
8. Cross-region Inference & High Availability
マルチリージョン対応:
- 自動フェイルオーバー:リージョン障害時の自動切り替え
- レイテンシ最適化:ユーザーに最も近いリージョンから推論
- グローバルロードバランシング
- コンプライアンス対応:データレジデンシー要件への対応
9. Guardrails 拡張
より細粒度なコンテンツ制御:
- カスタムルール定義:業界別・用途別のカスタムガードレール
- 動的フィルタリング:コンテキストに応じたルール適用
- PII 検出・自動マスキング:プライバシー保護の自動化
- トーン・スタイル制御:出力形式の厳密な制御
学習リソース
公式ドキュメント
| リソース | URL |
|---|---|
| Bedrock User Guide | https://docs.aws.amazon.com/bedrock/latest/userguide/ |
| Bedrock API Reference | https://docs.aws.amazon.com/bedrock/latest/APIReference/ |
| Knowledge Bases Docs | https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html |
| Agents Docs | https://docs.aws.amazon.com/bedrock/latest/userguide/agents.html |
| Guardrails Docs | https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html |
チュートリアル
| チュートリアル | 難易度 |
|---|---|
| Getting Started with Bedrock | ⭐ 初心者向け |
| Building RAG Applications | ⭐⭐ 中級 |
| Creating Autonomous Agents | ⭐⭐⭐ 上級 |
| Fine-tuning Models | ⭐⭐⭐ 上級 |
コミュニティリソース
- AWS Forums: bedrock タグで質問
- GitHub: aws-samples/bedrock-examples
- AWS Blog: Bedrock 関連記事
- YouTube: AWS がほぼ毎月チュートリアル公開
実装例・活用シーン
シーン 1: 社内 FAQ チャットボット
要件:
- 社内ドキュメント(就業規則・技術マニュアル)から自動回答
- Slack 統合
- 機密情報(給与額)はマスキング
実装:
# Knowledge Base にドキュメント登録
# Guardrails で給与関連をマスキング
# Slack Webhook で連携
@app.route('/slack/events', methods=['POST'])
def slack_handler():
data = json.loads(request.data)
if data['type'] == 'url_verification':
return data['challenge']
if data['event']['type'] == 'app_mention':
question = data['event']['text']
# Bedrock で回答生成
response = bedrock_agent.retrieve_and_generate(
input={'text': question},
knowledgeBaseId=kb_id
)
# Slack に返信
slack_client.chat_postMessage(
channel=data['event']['channel'],
text=response['output']['text']
)
return '', 200
シーン 2: カスタマーサポート AI
要件:
- 複雑な問題は人間にエスカレーション
- 過去の解決例から学習
- 多言語対応
実装:
class SupportAgent:
def __init__(self):
self.agent_id = 'support-agent-id'
self.runtime = boto3.client('bedrock-agent-runtime')
def handle_ticket(self, ticket_id, customer_query):
# Agent が自動対応を試みる
response = self.runtime.invoke_agent(
agentId=self.agent_id,
agentAliasId='LFSTSTBUFX',
sessionId=ticket_id,
inputText=customer_query
)
confidence = self._calculate_confidence(response)
if confidence > 0.9:
# 自動解決
return {'status': 'resolved', 'response': response['output']}
else:
# 人間にエスカレーション
return {'status': 'escalated', 'suggestion': response['output']}
シーン 3: 金融レポート自動分析
要件:
- 1000+ 企業の決算報告書を分析
- キー指標を自動抽出
- トレンド分析
実装:
# Batch API で大量処理(コスト削減)
bedrock = boto3.client('bedrock')
# S3 に分析対象ドキュメント一覧を準備
input_data_config = {
's3InputFormat': 's3://bucket/batch-input/',
's3OutputFormat': 's3://bucket/batch-output/'
}
# Batch ジョブ開始(数時間で完了)
response = bedrock.create_model_invocation_batch(
modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
roleArn='arn:aws:iam::ACCOUNT:role/BedrockBatchRole',
inputDataConfig=input_data_config,
outputDataConfig={'s3OutputPath': 's3://bucket/results/'}
)
導入ロードマップ
フェーズ 1: 試験・学習(1-2 週間)
-
AWS アカウント準備
- IAM ロール・ポリシー作成
- CloudWatch ログ設定
-
モデル動作確認
- Bedrock Studio で各モデル試用
- API 呼び出し確認
-
コスト試算
- 想定使用量を入力
- 月額コスト推定
# コスト計算例
monthly_requests = 100_000
avg_input_tokens = 500
avg_output_tokens = 200
input_cost = (monthly_requests * avg_input_tokens / 1_000_000) * 3
output_cost = (monthly_requests * avg_output_tokens / 1_000_000) * 15
print(f"推定月額: ${input_cost + output_cost}")
フェーズ 2: パイロット実装(2-4 週間)
-
簡単なユースケース選択
- チャットボット
- ドキュメント要約
-
最小限の機能で実装
- Converse API + Knowledge Bases
- Guardrails は基本設定
-
パフォーマンス測定
- レイテンシー
- 精度
- コスト
フェーズ 3: 本運用移行(4-8 週間)
-
セキュリティ強化
- VPC Endpoint 設定
- IAM ポリシー最小権限化
- CloudTrail 監査
-
スケーリング準備
- Provisioned Throughput 検討
- Multi-region 設定
-
本番運用開始
- ダッシュボード構築
- アラート設定
- チーム教育
実装チェックリスト
セキュリティ
- [ ] IAM ロール・ポリシー設定済み
- [ ] VPC Endpoint(必要に応じて)設定済み
- [ ] KMS 暗号化有効化
- [ ] CloudTrail ログ有効化
- [ ] Guardrails 設定済み
パフォーマンス
- [ ] モデルの選択(品質 vs 速度)完了
- [ ] Provisioned Throughput 要件判定済み
- [ ] プロンプト最適化完了
- [ ] キャッシング検討済み
コスト管理
- [ ] 予算アラート設定済み
- [ ] Cost Explorer で監視中
- [ ] Batch API 活用計画済み
運用
- [ ] CloudWatch ダッシュボード作成済み
- [ ] ログ保持期間設定済み
- [ ] インシデント対応計画立案済み
- [ ] チーム教育実施済み
ビジネス
- [ ] ROI 算出済み
- [ ] ステークホルダー合意取得
- [ ] 導入スケジュール作成済み
まとめ
Amazon Bedrock は 「複数の Foundation Model をサーバーレス API で統一的に利用できる生成 AI プラットフォーム」。以下の強みを持ちます:
主な価値提案
-
ベンダーロックイン回避
- Claude・Nova・Llama・Mistral など複数モデルから選択
- モデル切り替えは
modelIdパラメータ変更のみ
-
エンタープライズセキュリティ
- データはモデル学習に使用されない
- VPC・KMS・CloudTrail で完全監査
- FedRAMP・HIPAA・PCI-DSS 対応
-
統合ソリューション
- Knowledge Bases で RAG 自動構築
- Agents で複数ツール自動呼び出し
- Guardrails で出力制御
-
コスト効率
- トークンベース課金でシンプル
- Provisioned Throughput で大量処理を安く
- Batch API で非同期処理割引
-
スケーラビリティ
- サーバー管理不要
- Multi-region 対応
- CloudWatch で監視可能
採用判定フロー
AWS 環境を既に使用している?
├─ YES: Bedrock 推奨
│ 複数モデルが必要?
│ ├─ YES: Bedrock
│ └─ NO: Anthropic API
└─ NO: 他クラウドプロバイダー検討
Azure: Azure OpenAI
Google: Vertex AI
次のステップ
- AWS アカウント準備 → Bedrock コンソール開く
- モデル試用 → Bedrock Studio で Claude/Nova 試す
- 簡単なユースケース → チャットボット実装
- 段階的スケーリング → Knowledge Bases → Agents へ
参考文献
公式ドキュメント(AWS)
- Amazon Bedrock User Guide
- Bedrock API Reference
- Bedrock Pricing
- Bedrock Knowledge Bases
- Bedrock Agents Documentation
- Bedrock Guardrails
- AWS Bedrock Blog
- Bedrock with LangChain
- Bedrock with LlamaIndex
- AWS SDK for Python (Boto3)
関連 AWS サービス
- Amazon SageMaker
- AWS Lambda
- Amazon DynamoDB
- AWS Step Functions
- Amazon OpenSearch
- AWS Identity and Access Management(IAM)
- AWS Key Management Service(KMS)
- Amazon Virtual Private Cloud(VPC)
Bedrock AgentCore & 2026 新機能
- Amazon Bedrock AgentCore - New Features (April 2026)
- AWS Blog - Bedrock AgentCore with Claude
- GitHub - Sample Agentic AI with Claude Agent SDK
- AWS Weekly Roundup - Bedrock Updates (April 2026)
Foundation Model & LLM ドキュメント
- Anthropic Claude Documentation
- Meta Llama GitHub Repository
- Mistral AI Official
- Stability AI Official
RAG & Agent フレームワーク
- LangChain Official Docs
- LangChain Bedrock Integration
- LlamaIndex Official Docs
- LlamaIndex Bedrock Integration
- CrewAI GitHub - Multi-Agent Framework
- AutoGen GitHub - Microsoft Multi-Agent Framework
外部リソース
最終更新:2026-04-26
最終更新日: 2026 年 4 月 26 日
バージョン: 2.0(Bedrock 2025-2026 最新対応)
対象リージョン: ap-northeast-1(東京)、us-east-1 他複数