Amazon Bedrockを通してClaude CodeおよびClaude Code Actionsを使用する際のコスト管理の今
狙い
GMOペパボ、特に私の所属するminne事業部では、Amazon Bedrockを通してAIモデルを利用し、日々のプロダクト開発に係る業務でのAI活用を進めています。
なぜAmazon Bedrockを使うかについては、ガバナンス上のメリットがあるためです。本記事ではそのガバナンス上のメリットについて言及しつつ、Amazon Bedrockを使う場合のコスト管理の現状について説明します。
コスト管理の方法については、AWSの公開している公式のドキュメント(下の参考の「1」で示しているもの)がとても分かりやすく書いているのですが、どのように実践したのかについて本記事で説明することで、AI活用を進めている方々の参考になればと思います。
ガバナンス上のメリット
Amazon Bedrockにおいては、単一のAPIを通じてAmazonやAnthropic、DeepSeekといった各プロバイダーの提供するAIモデルを利用することができます。Amazon Bedrockを仲介することで、たとえば
- 上記の基盤モデルをカスタマイズして独自のモデルを構築できる
- やりとりするデータが、プロバイダーに直接送信されることなく、AWSのインフラ上で完結する
- Amazon CloudWatchを使用して利用状況のメトリクスを監視し、必要に応じたアラートを設定できる
- IAMを使用して、AIモデルの利用に関するアクセス制御を緻密に行うことができる
などのメリットがあります。
普段からAWSの各種サービスを活用し、コスト管理などを行なっている我々にとってはこれらのメリットはガバナンス上の大きな利点となります。
アプリケーション推論プロファイルについて
上記で述べたとおり、Amazon Bedrockでは単一のAPIを通じてAIモデルを活用できます。希望のプロバイダーの提供する任意のAIモデルについて利用をリクエストして許可されれば、そのAPIはすぐに利用可能です。
提供されるようになったAPIは、以下のようなARNをClaude Codeなどで指定してすぐに利用可能です。
arn:aws:bedrock:{{ region }}:{{ account id }}:inference-profile/xxx.anthropic.claude-sonnet-4-20250514-v1:0
$ cat ~/.claude/settings.json
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "true",
"AWS_REGION": "xxx",
"ANTHROPIC_MODEL": "arn:aws:bedrock:{{ region }}:{{ account id }}:inference-profile/xxx.anthropic.claude-sonnet-4-20250514-v1:0",
}
}
このARNを指定しさえすれば、他のメンバーでもすぐにClineやClaude Codeなどで本AIモデルを使って業務ができるのですが、これだとメンバー別の消費コストが管理できません。
そこで、メンバーごとにアプリケーション推論プロファイルを作成し、それぞれにタグをつけることでタグに紐づくプロファイルごとの消費コストが管理できるようになります。
メンバーごとのアプリケーション推論プロファイルの作成と、それぞれにタグの付与
data "aws_caller_identity" "current" {}
locals {
bedrock_claude_code_users = [
"a-san",
"b-san",
"c-san"
]
}
resource "aws_bedrock_inference_profile" "bedrock_claude_sonnet_for_human_use" {
for_each = toset(local.bedrock_claude_code_users)
name = "Claude Sonnet for ${each.value}"
model_source {
copy_from = "arn:aws:bedrock:{{ region }}:${data.aws_caller_identity.current.account_id}:inference-profile/xxx.anthropic.claude-sonnet-4-20250514-v1:0"
}
tags = {
Name = "Claude Sonnet for ${each.value}"
}
}
作成されたアプリケーション推論プロファイルの確認
以下のコマンドで確認できるそれぞれのARNを、ClineやClaude Codeで設定しておけば、メンバーごとの消費コストが確認できます。
$ aws bedrock list-inference-profiles --type-equals="APPLICATION"
{
"inferenceProfileSummaries": [
{
"inferenceProfileName": "Claude Sonnet for a-san",
"createdAt": "2025-06-16T08:22:00.471343+00:00",
"updatedAt": "2025-06-16T08:22:00.471343+00:00",
"inferenceProfileArn": "arn:aws:bedrock:xxxx:xxxx:application-inference-profile/xxxx",
...
"inferenceProfileId": "xxxx",
"status": "ACTIVE",
"type": "APPLICATION"
},
{
"inferenceProfileName": "Claude Sonnet for b-san",
"createdAt": "2025-06-17T01:13:50.378977+00:00",
"updatedAt": "2025-06-17T01:13:50.378977+00:00",
"inferenceProfileArn": "arn:aws:bedrock:xxxx:xxxx:application-inference-profile/xxxx"
$ cat ~/.claude/settings.json
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "true",
"AWS_REGION": "xxx",
"ANTHROPIC_MODEL": "arn:aws:bedrock:xxxx:xxxx:application-inference-profile/xxxx",
}
}
また、GMOペパボでは、Claude Code Actionsを使っていますので、そこで使うAIモデルについても、上で払い出したARNを使って、上の図でも分かる通りコスト管理できるようにしています。
Discussion