Bedrockとは
Amazon Bedrock
AWSが提供する、複数のAIプロバイダの基盤モデルを単一APIで呼び出せるフルマネージドサービス
ひとことで言うと
AWSが提供する、複数の会社のAIモデルをまとめて使えるサービス。
概要
Amazon Bedrock(Bedrock)とは、AWSが提供する、複数のAIプロバイダの基盤モデル(Foundation Model)を単一のAPIを通じて呼び出せるフルマネージドサービス。 Anthropic Claude・Meta Llama・Mistral・Amazon Nova・Cohere・AI21 Labs等、複数ベンダーのモデルを、モデルごとに異なるSDKやインフラを構築せず統一されたインターフェースから利用できる。 モデルの呼び出しだけでなく、自社データを使ったファインチューニング、社内文書を検索対象に加えるKnowledge Bases(RAGの実装)、有害な入力・出力を検知・遮断するGuardrails、AIエージェントを構築するAgentsといった周辺機能も提供する。 AWSの他サービス(IAM・VPC・CloudWatch等)とシームレスに統合できる点が、既存のAWS環境で生成AI機能を組み込む際の主な採用理由の1つになっている。
背景
複数のAIプロバイダのモデルを併用するには、本来プロバイダごとに異なるAPI仕様・認証方式・SDKへ個別に対応する必要がある。Bedrockは、この差異を単一のAPIの背後に隠蔽することで、モデルの切り替えや比較検証を容易にする狙いを持つ。
歴史
Amazon Bedrockは2023年4月にプレビューとして発表され、同年9月に一般提供(GA)を開始した。
ワークフロー
IAMで実行ロール・権限を設定 → 利用したい基盤モデルを選択し有効化 → boto3等のSDKからBedrock RuntimeのAPIを呼び出しモデルを実行 → Knowledge Bases(RAG)やGuardrails等の周辺機能を組み合わせて利用する。
コード例
boto3でBedrockのモデルを呼び出す
import boto3
import json
client = boto3.client("bedrock-runtime", region_name="us-east-1")
response = client.invoke_model(
modelId="anthropic.claude-3-5-sonnet-20240620-v1:0",
body=json.dumps({
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 256,
"messages": [{"role": "user", "content": "こんにちは"}],
}),
)
print(json.loads(response["body"].read()))利点
- モデルプロバイダごとに異なるAPIを個別に実装する必要がなく、統一されたインターフェースで複数モデルを比較・切り替えられる
- IAMによるアクセス制御やVPC経由の接続等、既存のAWSインフラのセキュリティ・ガバナンス体系をそのまま生成AI機能に適用できる
- Knowledge Bases(RAG)やGuardrails等、モデル呼び出し以外の周辺機能もあわせて利用できる
欠点
- 利用できるモデルはBedrock対応のプロバイダ・モデルに限られ、対応していないモデルは別途自前で用意する必要がある
- AWS特有のサービス構成やIAM権限設計の理解が求められ、AWSに不慣れなチームには学習コストがかかる
- モデルの新機能が各社のネイティブAPIより遅れてBedrockへ提供される場合がある
比較
関連用語
よくある質問
BedrockでClaudeを使うのと、Anthropic APIを直接使うのとの違いは?
モデル自体は同じだが、Bedrock経由ではAWSの請求・IAM権限管理・VPC接続等、既存のAWSインフラとの統合を活かせる点が異なる。Anthropic APIを直接利用する場合は、AWS環境に依存せず最新機能へいち早くアクセスしたい場合に向く。
Bedrockで使えるモデルはどう決まる?
AWSが個別のモデルプロバイダと提携し、Bedrock上で提供するモデルとして追加する形をとる。 利用可能なモデルの一覧やリージョンごとの対応状況は、AWSの公式ドキュメントで随時更新される。
参考文献
- Official WebsiteAmazon Bedrock
- DocumentationAmazon Bedrock ユーザーガイド