🐈
Amazon Bedrockのコストがざっくり日本円でいくらなのかCloudWatch Logsで確認する
この記事は
Bedrockのコスト計算をCloudWatchでできるようにまとめてみました。
事前準備
まず公式ドキュメントを参考にBedrockのログをCloudWatch Logsに出力する設定をします。
モデルの料金の確認
今回はClaude Sonnet 4を使っています。
CloudWatch Logs でログを確認
以下のようなフォーマットでログが出力されます。
{
"timestamp": "2025-07-23T09:24:39Z",
"accountId": "123456789012",
"identity": {
"arn": "arn:aws:iam::123456789012:user/sample-user"
},
"region": "ap-northeast-1",
"requestId": "1ce30898-6835-4e22-a740-db3fb446e015",
"operation": "InvokeModel",
"modelId": "arn:aws:bedrock:ap-northeast-1:123456789012:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0",
"input": {
"inputContentType": "application/json",
"inputBodyJson": {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 4096,
"messages": [
{
"role": "user",
"content": "以下の商品データから価格が1000円以上のものを抽出してJSONで返してください。\n\n商品A: 800円\n商品B: 1200円\n商品C: 500円\n商品D: 1500円"
}
]
},
"inputTokenCount": 504
},
"output": {
"outputContentType": "application/json",
"outputBodyJson": {
"id": "msg_bdrk_01C9hM9t4tgJ7tLHS3JPN7hD",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-20250514",
"content": [
{
"type": "text",
"text": "{\n \"products\": [\n {\"name\": \"商品B\", \"price\": 1200},\n {\"name\": \"商品D\", \"price\": 1500}\n ]\n}"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 504,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"output_tokens": 95
}
},
"outputTokenCount": 95
},
"inferenceRegion": "ap-northeast-1",
"schemaType": "ModelInvocationLog",
"schemaVersion": "1.0"
}
CloudWatch Logs Insights を使ってコストを出す
ロググループを選択し、以下のクエリをCloudWatch Logs Insights で実行します。
今回はモデル単位で集計させたいのでby modelId
としています。
filter
をうまく使えば、operationやmodelIdでの絞り込みなども行えます。
fields
@timestamp,
modelId,
operation,
input.inputTokenCount as inputTokenCount,
output.outputTokenCount as outputTokenCount,
output.outputBodyJson.usage.cache_creation_input_tokens as cacheCreationInputTokens,
output.outputBodyJson.usage.cache_read_input_tokens as cacheReadInputTokens
| filter inputTokenCount >= 1
| filter operation = 'InvokeModel'
| stats
sum(inputTokenCount) / 1000 * 0.003 * 150 as inputTokenCost,
sum(outputTokenCount) / 1000 * 0.015 * 150 as outputTokenCost,
sum(cacheCreationInputTokens) / 1000 * 0.00375 * 150 as cacheCreationInputTokenCost,
sum(cacheReadInputTokens) / 1000 * 0.0003 * 150 as cacheReadInputTokenCost
by modelId
日本円での大体のコストが確認できます。
inputTokenCount を例とすると計算式は以下の通りになっています。
トークン数 / 1000トークン(料金表参照) * 0.003USD(料金表参照) * 150円(ざっくり1ドル)
Discussion