目次

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 を通じてアクセス、カスタマイズ、デプロイでき、セキュアで拡張可能なエンタープライズアプリケーションを構築できるサービス”


目次

  1. 概要
  2. Bedrock が解決する課題
  3. 主な特徴
  4. アーキテクチャ
  5. 提供 Foundation Model
  6. API と呼び出しパターン
  7. 主要ユースケース
  8. Knowledge Bases for Bedrock
  9. Bedrock Agents
  10. Bedrock AgentCore
  11. Guardrails for Bedrock
  12. Model Customization
  13. Provisioned Throughput
  14. Bedrock Studio
  15. Cross-region Inference
  16. Prompt Management
  17. Bedrock Data Automation
  18. セキュリティとコンプライアンス
  19. モニタリングとロギング
  20. コスト構造
  21. SageMaker AI との比較
  22. 他の類似サービスとの比較
  23. クライアント・SDK・エコシステム
  24. ベストプラクティス
  25. トラブルシューティング
  26. 2025-2026 最新動向
  27. 学習リソース
  28. 実装例・活用シーン
  29. 導入ロードマップ
  30. 実装チェックリスト
  31. まとめ
  32. 参考文献

概要

初心者向けメモ: 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 で実行できます。

機能

  1. Prompt Builder

    • プロンプト作成・テスト
    • 複数モデルでの比較
    • テンプレート保存
  2. Knowledge Bases Builder

    • S3 ドキュメント追加
    • プレビュー検索
    • インデックス管理
  3. Agents Builder

    • ツール(Lambda・API)を UI で登録
    • テスト実行
    • ロギング確認
  4. 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 を統合。

ユースケース

  1. 請求書処理

    • 企業名、金額、支払期限を自動抽出
    • JSON で構造化
    • 会計システムに自動連携
  2. 契約書分析

    • 重要条項の抽出
    • リスク判定
    • 契約タイプの自動分類
  3. 医療記録処理

    • 診断、処方箋、検査結果を抽出
    • 患者情報を匿名化
    • 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 週間)

  1. AWS アカウント準備

    • IAM ロール・ポリシー作成
    • CloudWatch ログ設定
  2. モデル動作確認

    • Bedrock Studio で各モデル試用
    • API 呼び出し確認
  3. コスト試算

    • 想定使用量を入力
    • 月額コスト推定
# コスト計算例
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 週間)

  1. 簡単なユースケース選択

    • チャットボット
    • ドキュメント要約
  2. 最小限の機能で実装

    • Converse API + Knowledge Bases
    • Guardrails は基本設定
  3. パフォーマンス測定

    • レイテンシー
    • 精度
    • コスト

フェーズ 3: 本運用移行(4-8 週間)

  1. セキュリティ強化

    • VPC Endpoint 設定
    • IAM ポリシー最小権限化
    • CloudTrail 監査
  2. スケーリング準備

    • Provisioned Throughput 検討
    • Multi-region 設定
  3. 本番運用開始

    • ダッシュボード構築
    • アラート設定
    • チーム教育

実装チェックリスト

セキュリティ

  • [ ] IAM ロール・ポリシー設定済み
  • [ ] VPC Endpoint(必要に応じて)設定済み
  • [ ] KMS 暗号化有効化
  • [ ] CloudTrail ログ有効化
  • [ ] Guardrails 設定済み

パフォーマンス

  • [ ] モデルの選択(品質 vs 速度)完了
  • [ ] Provisioned Throughput 要件判定済み
  • [ ] プロンプト最適化完了
  • [ ] キャッシング検討済み

コスト管理

  • [ ] 予算アラート設定済み
  • [ ] Cost Explorer で監視中
  • [ ] Batch API 活用計画済み

運用

  • [ ] CloudWatch ダッシュボード作成済み
  • [ ] ログ保持期間設定済み
  • [ ] インシデント対応計画立案済み
  • [ ] チーム教育実施済み

ビジネス

  • [ ] ROI 算出済み
  • [ ] ステークホルダー合意取得
  • [ ] 導入スケジュール作成済み

まとめ

Amazon Bedrock は 「複数の Foundation Model をサーバーレス API で統一的に利用できる生成 AI プラットフォーム」。以下の強みを持ちます:

主な価値提案

  1. ベンダーロックイン回避

    • Claude・Nova・Llama・Mistral など複数モデルから選択
    • モデル切り替えは modelId パラメータ変更のみ
  2. エンタープライズセキュリティ

    • データはモデル学習に使用されない
    • VPC・KMS・CloudTrail で完全監査
    • FedRAMP・HIPAA・PCI-DSS 対応
  3. 統合ソリューション

    • Knowledge Bases で RAG 自動構築
    • Agents で複数ツール自動呼び出し
    • Guardrails で出力制御
  4. コスト効率

    • トークンベース課金でシンプル
    • Provisioned Throughput で大量処理を安く
    • Batch API で非同期処理割引
  5. スケーラビリティ

    • サーバー管理不要
    • Multi-region 対応
    • CloudWatch で監視可能

採用判定フロー

AWS 環境を既に使用している?
  ├─ YES: Bedrock 推奨
  │       複数モデルが必要?
  │       ├─ YES: Bedrock
  │       └─ NO: Anthropic API
  └─ NO: 他クラウドプロバイダー検討
         Azure: Azure OpenAI
         Google: Vertex AI

次のステップ

  1. AWS アカウント準備 → Bedrock コンソール開く
  2. モデル試用 → Bedrock Studio で Claude/Nova 試す
  3. 簡単なユースケース → チャットボット実装
  4. 段階的スケーリング → Knowledge Bases → Agents へ

参考文献

公式ドキュメント(AWS)

  1. Amazon Bedrock User Guide
  2. Bedrock API Reference
  3. Bedrock Pricing
  4. Bedrock Knowledge Bases
  5. Bedrock Agents Documentation
  6. Bedrock Guardrails
  7. AWS Bedrock Blog
  8. Bedrock with LangChain
  9. Bedrock with LlamaIndex
  10. AWS SDK for Python (Boto3)

関連 AWS サービス

Bedrock AgentCore & 2026 新機能

  1. Amazon Bedrock AgentCore - New Features (April 2026)
  2. AWS Blog - Bedrock AgentCore with Claude
  3. GitHub - Sample Agentic AI with Claude Agent SDK
  4. AWS Weekly Roundup - Bedrock Updates (April 2026)

Foundation Model & LLM ドキュメント

  1. Anthropic Claude Documentation
  2. Meta Llama GitHub Repository
  3. Mistral AI Official
  4. Stability AI Official

RAG & Agent フレームワーク

  1. LangChain Official Docs
  2. LangChain Bedrock Integration
  3. LlamaIndex Official Docs
  4. LlamaIndex Bedrock Integration
  5. CrewAI GitHub - Multi-Agent Framework
  6. AutoGen GitHub - Microsoft Multi-Agent Framework

外部リソース


最終更新:2026-04-26


最終更新日: 2026 年 4 月 26 日
バージョン: 2.0(Bedrock 2025-2026 最新対応)
対象リージョン: ap-northeast-1(東京)、us-east-1 他複数