Bedrock Inference Profiles
LibreChatでAWS Bedrockのカスタム推論プロファイルを設定および使用して、リージョン間負荷分散、コスト配分、およびコンプライアンス管理を行う方法。
このガイドでは、LibreChatでAWS Bedrockのカスタム推論プロファイルを設定および使用する方法を説明します。これにより、カスタムアプリケーション推論プロファイルを通じてモデルリクエストをルーティングし、より詳細な制御、コスト配分、およびリージョン間での負荷分散が可能になります。
概要
AWS Bedrockの推論プロファイルを使用すると、基盤モデルのカスタムルーティング設定を作成できます。カスタム(アプリケーション)推論プロファイルを作成すると、AWSはモデル名情報を含まない一意のARNを生成します:
arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123def456LibreChatの推論プロファイルマッピング機能を使用すると、以下のことが可能になります:
- わかりやすいモデルIDをカスタム推論プロファイルARNにマッピングする
- モデルの機能検出を維持しながら、カスタムプロファイルを通じてリクエストをルーティングします
- 安全なARN管理のために環境変数を使用してください
カスタム推論プロファイルを使用する理由
| メリット | 説明 |
|---|---|
| クロスリージョン負荷分散 | AWSの複数リージョン間でリクエストを自動的に分散します |
| コスト配分 | アプリケーションやチームごとにコストをタグ付けして追跡します |
| スループット管理 | アプリケーション専用のスループットを設定します |
| コンプライアンス | データレジデンシーのために特定のリージョン経由でリクエストをルーティングします |
| モニタリング | CloudWatchで推論プロファイルごとの使用状況を追跡します |
前提条件
始める前に、以下が準備されていることを確認してください:
- AWS Account (Bedrockへのアクセスが有効なもの)
- AWS CLI がインストールおよび設定されていること
- IAM 権限:
bedrock:CreateInferenceProfilebedrock:ListInferenceProfilesbedrock:GetInferenceProfilebedrock:InvokeModel/bedrock:InvokeModelWithResponseStream
- Bedrock endpointが設定された LibreChat(AWS Bedrock Setup を参照)
カスタム推論プロファイルの作成
重要: カスタム推論プロファイルはAPI(AWS CLI、SDKなど)経由でのみ作成可能であり、AWSコンソールからは作成できません。
方法 1: AWS CLI (推奨)
ステップ 1: 利用可能なシステム推論プロファイルの一覧を表示する
# List all inference profiles
aws bedrock list-inference-profiles --region us-east-1
# Filter for Claude models
aws bedrock list-inference-profiles --region us-east-1 \
--query "inferenceProfileSummaries[?contains(inferenceProfileId, 'claude')]"Step 2: カスタム推論プロファイルを作成する
# Get the system inference profile ARN to copy from
export SOURCE_PROFILE_ARN=$(aws bedrock list-inference-profiles --region us-east-1 \
--query "inferenceProfileSummaries[?inferenceProfileId=='us.anthropic.claude-3-7-sonnet-20250219-v1:0'].inferenceProfileArn" \
--output text)
# Create your custom inference profile
aws bedrock create-inference-profile \
--inference-profile-name "MyApp-Claude-3-7-Sonnet" \
--description "Custom inference profile for my application" \
--model-source copyFrom="$SOURCE_PROFILE_ARN" \
--region us-east-1ステップ 3: 作成の確認
# List your custom profiles
aws bedrock list-inference-profiles --type-equals APPLICATION --region us-east-1
# Get details of a specific profile
aws bedrock get-inference-profile \
--inference-profile-identifier "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123" \
--region us-east-1方法 2: Python スクリプト
import boto3
AWS_REGION = 'us-east-1'
def create_inference_profile(profile_name: str, source_model_id: str):
"""
Create a custom inference profile for LibreChat.
Args:
profile_name: Name for your custom profile
source_model_id: The system inference profile ID to copy from
(e.g., 'us.anthropic.claude-3-7-sonnet-20250219-v1:0')
"""
bedrock = boto3.client('bedrock', region_name=AWS_REGION)
profiles = bedrock.list_inference_profiles()
source_arn = None
for profile in profiles['inferenceProfileSummaries']:
if profile['inferenceProfileId'] == source_model_id:
source_arn = profile['inferenceProfileArn']
break
if not source_arn:
raise ValueError(f"Source profile {source_model_id} not found")
response = bedrock.create_inference_profile(
inferenceProfileName=profile_name,
description=f'Custom inference profile for {profile_name}',
modelSource={'copyFrom': source_arn},
tags=[
{'key': 'Application', 'value': 'LibreChat'},
{'key': 'Environment', 'value': 'Production'}
]
)
print(f"Created profile: {response['inferenceProfileArn']}")
return response['inferenceProfileArn']
if __name__ == "__main__":
create_inference_profile(
"LibreChat-Claude-3-7-Sonnet",
"us.anthropic.claude-3-7-sonnet-20250219-v1:0"
)
create_inference_profile(
"LibreChat-Claude-Sonnet-4-5",
"us.anthropic.claude-sonnet-4-5-20250929-v1:0"
)LibreChatの設定
librechat.yaml の設定
librechat.yaml に bedrock エンドポイントの設定を追加します。フィールドの完全なリファレンスについては、AWS Bedrock Object Structure を参照してください。
endpoints:
bedrock:
# List the models you want available in the UI
models:
- 'us.anthropic.claude-3-7-sonnet-20250219-v1:0'
- 'us.anthropic.claude-sonnet-4-5-20250929-v1:0'
- 'global.anthropic.claude-opus-4-5-20251101-v1:0'
# Map model IDs to their custom inference profile ARNs
inferenceProfiles:
# Using environment variable (recommended for security)
'us.anthropic.claude-3-7-sonnet-20250219-v1:0': '${BEDROCK_CLAUDE_37_PROFILE}'
# Using direct ARN
'us.anthropic.claude-sonnet-4-5-20250929-v1:0': 'arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123'
# Another env variable example
'global.anthropic.claude-opus-4-5-20251101-v1:0': '${BEDROCK_OPUS_45_PROFILE}'
# Optional: Configure available regions for cross-region inference
availableRegions:
- 'us-east-1'
- 'us-west-2'環境変数
.env ファイルに Bedrock のリージョン、AWS 認証設定、および推論プロファイル ARN を追加します:
#===================================#
# AWS Bedrock Configuration #
#===================================#
BEDROCK_AWS_DEFAULT_REGION=us-east-1
# Option 1: Use an AWS profile
BEDROCK_AWS_PROFILE=your-profile-name
# Option 2: Omit BEDROCK_AWS_PROFILE and Bedrock-specific static credentials
# to use the AWS SDK default credential provider chain.
# Option 3: Static Bedrock credentials, if profiles or IAM roles are not suitable
# BEDROCK_AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
# BEDROCK_AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
# BEDROCK_AWS_SESSION_TOKEN=your-session-token
# Option 4: Bedrock API key (bearer auth)
# BEDROCK_AWS_BEARER_TOKEN=your-bedrock-api-key
# Inference Profile ARNs
BEDROCK_CLAUDE_37_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123
BEDROCK_OPUS_45_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/def456ログの設定
推論プロファイルが正しく使用されていることを確認するには、AWS Bedrock モデル呼び出しログを有効にしてください。
1. CloudWatch ロググループを作成する
aws logs create-log-group \
--log-group-name /aws/bedrock/model-invocations \
--region us-east-12. Bedrock ロギング用の IAM ロールを作成する
信頼ポリシーファイル (bedrock-logging-trust.json) を作成します:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "bedrock.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "YOUR_ACCOUNT_ID"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:bedrock:us-east-1:YOUR_ACCOUNT_ID:*"
}
}
}
]
}ロールを作成する:
aws iam create-role \
--role-name BedrockLoggingRole \
--assume-role-policy-document file://bedrock-logging-trust.jsonCloudWatch Logsの権限をアタッチする:
aws iam put-role-policy \
--role-name BedrockLoggingRole \
--policy-name BedrockLoggingPolicy \
--policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:us-east-1:YOUR_ACCOUNT_ID:log-group:/aws/bedrock/model-invocations:*"
}
]
}'大規模データ用のS3バケットを作成する(必須):
aws s3 mb s3://bedrock-logs-YOUR_ACCOUNT_ID --region us-east-1
aws iam put-role-policy \
--role-name BedrockLoggingRole \
--policy-name BedrockS3Policy \
--policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:PutObject"],
"Resource": "arn:aws:s3:::bedrock-logs-YOUR_ACCOUNT_ID/*"
}
]
}'3. Model Invocation Logging を有効にする
aws bedrock put-model-invocation-logging-configuration \
--logging-config '{
"cloudWatchConfig": {
"logGroupName": "/aws/bedrock/model-invocations",
"roleArn": "arn:aws:iam::YOUR_ACCOUNT_ID:role/BedrockLoggingRole",
"largeDataDeliveryS3Config": {
"bucketName": "bedrock-logs-YOUR_ACCOUNT_ID",
"keyPrefix": "large-data"
}
},
"textDataDeliveryEnabled": true,
"imageDataDeliveryEnabled": true,
"embeddingDataDeliveryEnabled": true
}' \
--region us-east-1ログが有効になっていることを確認します:
aws bedrock get-model-invocation-logging-configuration --region us-east-1設定の確認
CLI経由でログを表示する
LibreChatを通じてリクエストを行った後、ログを確認してください:
# Tail logs in real-time
aws logs tail /aws/bedrock/model-invocations --follow --region us-east-1
# View recent logs
aws logs tail /aws/bedrock/model-invocations --since 5m --region us-east-1確認すべきこと
ログ出力内で、modelId フィールドを探してください:
{
"timestamp": "2026-01-16T16:56:15Z",
"accountId": "123456789012",
"region": "us-east-1",
"requestId": "a8b9d8c9-87b3-41ea-8a02-e8bfdba7782f",
"operation": "ConverseStream",
"modelId": "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123",
"inferenceRegion": "us-west-2"
}成功の指標:
modelIdは、カスタム推論プロファイル ARN(application-inference-profileを含む)を表示します。inferenceRegionは異なる場合があります(クロスリージョンルーティングが機能していることを示します)
マッピングが機能しない場合:
modelIdは ARN ではなく生のモデル ID を表示します
AWSコンソールでログを表示する
- AWSコンソールで CloudWatch を開きます
- Logs > Log groups に移動します。
/aws/bedrock/model-invocationsを選択します- 最新のログストリームをクリックしてください
- 推論プロファイルIDを検索する
使用状況の監視
CloudWatch メトリクス
CloudWatchでBedrockのメトリクスを表示する:
aws cloudwatch list-metrics --namespace AWS/Bedrock --region us-east-1AWS Console
- Bedrock Console > Inference profiles > Application タブ
- カスタムプロフィールをクリックしてください
- 呼び出しメトリクスと使用統計を表示する
トラブルシューティング
よくある問題
| 問題 | 原因 | 解決策 |
|---|---|---|
| モデルが認識されない | models 配列にモデルが不足している | librechat.yaml の models にモデルIDを追加してください |
| ARNが使用されない | モデルIDが一致していない | inferenceProfiles 内のモデルIDが models 内のものと完全に一致していることを確認してください |
| 環境変数が解決されない | 誤字または未設定 | .env ファイルを確認し、変数名が ${VAR_NAME} と一致していることを確認してください |
| アクセス拒否 | IAM権限の不足 | 推論プロファイルARNに対して bedrock:InvokeModel* 権限を追加してください |
| モデルアクセス拒否 | モデル利用規約への同意漏れまたは反映待ち | Bedrockのモデル利用規約に同意し、利用可能になるまで反映を待ってください |
| プロファイルが見つからない | リージョンが誤っている | プロファイルが同じリージョンで作成・使用されていることを確認してください |
モデルアクセス同意の伝播
アプリケーション推論プロファイルを作成しても、AWSアカウント内の基盤モデルが自動的に有効になるわけではありません。モデルへのアクセスを有効にしたばかりの場合、推論プロファイルを通じたリクエストが成功するまでに、AWS側で短い伝播時間が必要となることがあります。
これは、推論プロファイルが存在し、IAMロールに bedrock:InvokeModel 権限がある場合でも、AccessDeniedException として表示されることがあります。エラーメッセージには aws-marketplace:ViewSubscriptions や aws-marketplace:Subscribe が含まれているか、数分後に再試行するように求められる場合があります。
LibreChatのマッピングをデバッグする前に、基盤となるモデルの可用性を確認してください:
aws bedrock get-foundation-model-availability \
--region us-east-1 \
--model-id us.anthropic.claude-sonnet-4-5-20250929-v1:0以下を探す:
agreementAvailability.statusをAVAILABLEに設定しますauthorizationStatusがAUTHORIZEDに設定されていますentitlementAvailabilityをAVAILABLEに設定regionAvailabilityをAVAILABLEに設定
同意が不足している場合は、Bedrockコンソール、またはBedrockモデルの同意およびMarketplaceサブスクリプションを管理できるAWSプリンシパルを使用して、モデルの同意に同意してください。ステータスが AVAILABLE に変わった後、数分待ってから、アプリケーション推論プロファイルの呼び出しを再試行してください。
デバッグチェックリスト
- Model ID は
models配列内にあります inferenceProfiles内の Model ID は(大文字と小文字を区別して)完全に一致する必要があります- 環境変数が設定されています(
${VAR}構文を使用している場合) - AWS認証情報には、推論プロファイルを呼び出すための権限が必要です。
- 基盤となる基盤モデルの契約は、Bedrockで
AVAILABLEです。 - 設定変更後にLibreChatが再起動されました
設定の読み込みを確認する
LibreChatの起動時にサーバーログを確認し、設定が正しく読み込まれているかチェックしてください。
完全な例
librechat.yaml
version: 1.3.5
endpoints:
bedrock:
models:
- 'us.anthropic.claude-3-7-sonnet-20250219-v1:0'
- 'us.anthropic.claude-sonnet-4-5-20250929-v1:0'
- 'global.anthropic.claude-opus-4-5-20251101-v1:0'
- 'us.amazon.nova-pro-v1:0'
inferenceProfiles:
'us.anthropic.claude-3-7-sonnet-20250219-v1:0': '${BEDROCK_CLAUDE_37_PROFILE}'
'us.anthropic.claude-sonnet-4-5-20250929-v1:0': '${BEDROCK_SONNET_45_PROFILE}'
'global.anthropic.claude-opus-4-5-20251101-v1:0': '${BEDROCK_OPUS_45_PROFILE}'
availableRegions:
- 'us-east-1'
- 'us-west-2'.env
# AWS Bedrock
BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_PROFILE=your-profile-name
# Or use a Bedrock API key instead:
# BEDROCK_AWS_BEARER_TOKEN=your-bedrock-api-key
# Inference Profiles
BEDROCK_CLAUDE_37_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123
BEDROCK_SONNET_45_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/def456
BEDROCK_OPUS_45_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/ghi789クイックセットアップスクリプト
#!/bin/bash
REGION="us-east-1"
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
# Create inference profiles
for MODEL in "us.anthropic.claude-3-7-sonnet-20250219-v1:0" "us.anthropic.claude-sonnet-4-5-20250929-v1:0"; do
PROFILE_NAME="LibreChat-${MODEL//[.:]/-}"
SOURCE_ARN=$(aws bedrock list-inference-profiles --region $REGION \
--query "inferenceProfileSummaries[?inferenceProfileId=='$MODEL'].inferenceProfileArn" \
--output text)
if [ -n "$SOURCE_ARN" ]; then
echo "Creating profile for $MODEL..."
aws bedrock create-inference-profile \
--inference-profile-name "$PROFILE_NAME" \
--model-source copyFrom="$SOURCE_ARN" \
--region $REGION
fi
done
# List created profiles
echo ""
echo "Your custom inference profiles:"
aws bedrock list-inference-profiles --type-equals APPLICATION --region $REGION \
--query "inferenceProfileSummaries[].{Name:inferenceProfileName,ARN:inferenceProfileArn}" \
--output table関連リソース
- AWS Bedrock Inference Profiles ドキュメント
- AWS Bedrock モデルアクセスのドキュメント
- AWS Bedrock Object Structure - YAML設定フィールドリファレンス
- AWS Bedrock Setup - 基本的な Bedrock の設定
- AWS Bedrock モデル呼び出しログ
このガイドはいかがでしたか?