📊

Claude Code on Amazon Bedrock の利用状況の可視化とコスト管理

に公開

はじめに

前回のブログにて、「Amazon Bedrock を使用した Claude Code の始め方」をご紹介しました。
https://zenn.dev/aws_japan/articles/c8936e019a16d0
https://zenn.dev/aws_japan/articles/f92ba6fad38654

Amazon Bedrock は従量課金で気軽に使い始められるメリットがある一方で、管理の目的や安心して利用するために、以下のようなことを実現したいこともあると思います。

  • 誰がどれだけ利用したのかを可視化したい
  • 一定料金を超えたらアラートを出したい

この記事では、Bedrock のアプリケーション推論プロファイルと AWS Budgets を使用して、これらを実現する方法を解説します。

全体構成

この記事では、以下の手順で設定を進めていきます。

  1. アプリケーション推論プロファイルの作成: Claude Sonnet 4.5 と Haiku 4.5 用のプロファイルをタグ付きで作成
  2. Claude Code 設定の更新: 作成したプロファイルを使用するように settings.json を更新
  3. 利用状況の可視化: Billing Console でタグを有効化し、Cost Explorer で利用状況を可視化
  4. AWS Budgets の設定: 予算額とアラートしきい値(80%)を設定し、超過時にメール通知

今回は、利用者 1 人(EngineerName:yamary)分のみ設定をしていきます。

前提条件

この記事では、上記の記事で紹介した Claude Code と Amazon Bedrock の基本セットアップが完了していることを前提としております。
(おさらい)~/.claude/settings.json の設定状況

{
    "env": {
        "AWS_REGION": "us-west-2",
        "ANTHROPIC_MODEL": "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
        "ANTHROPIC_DEFAULT_HAIKU_MODEL": "global.anthropic.claude-haiku-4-5-20251001-v1:0",
        "CLAUDE_CODE_USE_BEDROCK": "1"
    }
}

1. アプリケーション推論プロファイルの作成

Claude Code では、モニタリングとして、OpenTelemetry の標準メトリクスプロトコルを介してエクスポートすることが可能ですが、今回はシンプルな方法として、 Amazon Bedrock のアプリケーション推論プロファイルを使った方法を解説します。アプリケーション推論プロファイルは、ユーザーごとのコストを追跡したいときなどに使用します。

現在、このプロファイルは AWS CLI または SDK を使用してのみ作成できます。

Claude Sonnet 4.5 用プロファイルの作成

まず、以下のコマンドで Claude Sonnet 4.5 用のプロファイルを作成します。<YOUR_AWS_ACCOUNT_ID><TAG_KEY><TAG_VALUE> は、ご自身の環境に合わせて置き換えてください。<TAG_KEY><TAG_VALUE> は任意のタグで、今回コスト可視化でフィルタリングするときに使用します。(例: <TAG_KEY>=EngineerName、<TAG_VALUE>=yamary)

aws bedrock create-inference-profile \
  --inference-profile-name "yamary-sonnet-4-5" \
  --model-source '{"copyFrom": "arn:aws:bedrock:us-west-2:<YOUR_AWS_ACCOUNT_ID>:inference-profile/global.anthropic.claude-sonnet-4-5-20250929-v1:0"}' \
  --tags key=<TAG_KEY>,value=<TAG_VALUE> \
  --region us-west-2

(参考)パラメーター:
--inference-profile-name はプロファイルの一意な名前
--model-source は使用するモデルの ARN(AWS アカウント ID を含む)
--tags はコスト配分用のタグ(キーと値を指定)
--region は AWS リージョンを指定

コマンドが成功すると、以下のような JSON レスポンスが返されます。

{
    "inferenceProfileArn": "arn:aws:bedrock:us-west-2:123456789012:application-inference-profile/abc123def456",
    "status": "ACTIVE"
}

Claude Haiku 4.5 用プロファイルの作成

同様に、Claude Haiku 4.5 用のプロファイルも作成します。<YOUR_AWS_ACCOUNT_ID><TAG_KEY><TAG_VALUE> は、ご自身の環境に合わせて置き換えてください。(例: <TAG_KEY>=EngineerName、<TAG_VALUE>=yamary)

aws bedrock create-inference-profile \
  --inference-profile-name "yamary-haiku-4-5" \
  --model-source '{"copyFrom": "arn:aws:bedrock:us-west-2:<YOUR_AWS_ACCOUNT_ID>:inference-profile/global.anthropic.claude-haiku-4-5-20251001-v1:0"}' \
  --tags key=<TAG_KEY>,value=<TAG_VALUE> \
  --region us-west-2

作成したプロファイルの確認

以下のコマンドで、作成したプロファイルの一覧を確認できます。

aws bedrock list-inference-profiles \
  --type-equals APPLICATION \
  --region us-west-2

重要: inferenceProfileArn の値をそれぞれコピーしておいてください。次のステップで Claude Code の設定に使用します。

2. Claude Code 設定の更新

アプリケーション推論プロファイルを作成したら、Claude Code がそのプロファイルを使用するように設定を更新します。

~/.claude/settings.json ファイルを以下のように更新します。ANTHROPIC_MODELANTHROPIC_DEFAULT_HAIKU_MODEL の値を、前のステップで取得した inferenceProfileArn に置き換えます。

<SONNET_PROFILE_ARN><HAIKU_PROFILE_ARN> は、ご自身の環境で取得した値に置き換えてください。

{
    "env": {
        "AWS_REGION": "us-west-2",
        "ANTHROPIC_MODEL": "<SONNET_PROFILE_ARN>",
        "ANTHROPIC_DEFAULT_HAIKU_MODEL": "<HAIKU_PROFILE_ARN>",
        "CLAUDE_CODE_USE_BEDROCK": "1"
    }
}

設定の確認

Claude Code を起動して、正しく動作することを確認します。

# Claude Code を起動
claude

# 簡単な質問でテスト
> こんにちは

正常に応答が返ってくれば、プロファイルが正しく設定されています。

3. 利用状況の可視化

アプリケーション推論プロファイルに設定したタグを AWS Cost Explorer で利用できるようにするため、Billing Console でタグを有効化します。

タグの有効化

Billing and Cost Management Console を開きます。
左側のナビゲーションメニューから「コスト配分タグ」を選択します。先程作成したタグのチェックボックスを選択後、「有効化」ボタンをクリックします。

重要: タグの有効化後、Cost Explorer にタグが表示されるまで 最大 24 時間かかります。

Cost Explorer での確認(24時間後)

タグが有効化されてから 24 時間後、以下の手順で Cost Explorer でタグが使用可能になっていることを確認できます。

左側のメニューから「Cost Explorer」を選択し、日付範囲を指定します。グループ化の条件で、ディメンションを「Tag」に選択し、ドロップダウンメニューで「EngineerName」タグを選択することで、利用者ごとの利用料を確認できます。

4. AWS Budgets の設定

次に、AWS Budgets を使用して、予算を設定し、予算を超えそうなときのアラートを設定します。

AWS Budgets は、一定料金を超えたらアラートを出すことができる AWS のコスト管理サービスです。カスタムの予算を設定し、実際のコストや予測コストがしきい値に達したときに自動的に通知を受け取ることができます。具体的には、以下のことが実現できます。

  • エンジニアごとの予算設定: タグでフィルタリングして、個人ごとに予算を設定
  • 段階的なアラート: 80%、100% など、複数のしきい値で警告を受信
  • メール通知: Amazon SNS 経由でアラートをメール配信

Budgets ページへのアクセス

Billing and Cost Management Console を開きます。

左側のメニューから「予算」を選択し、「予算の作成」ボタンをクリックします。

Budget タイプの選択

予算の設定は、「カスタマイズ (アドバンスト)」を選択し、「次へ」をクリックします。

予算の基本設定

予算名には任意の名前(例:claude-budget)を設定します。今回、月の予算額を 250.00 ドルで設定します。

予算の範囲

予算を Bedrock に限定するため、「特定の AWS コストディメンションをフィルタリングする」を選択後、「フィルターを追加」をクリックします。

ディメンションで「サービス」を選択し、値は「Bedrock」を選択後、「フィルターを適用」をクリックします。

フィルターが設定されたことを確認し、「次へ」をクリックします。

【参考】さらにフィルターを追加し、以下のようにタグキーを使用することで、ユーザごとに予算管理や閾値を設定することも可能です。

アラートしきい値の設定

予算超過時の通知を設定します。「アラートのしきい値を追加」を選択します。

今回、実際のコストが予算の 80% 超過したら、指定したメールアドレスに通知が飛ぶように設定します。

アラートは複数指定することも可能です。

予算の確認と作成

アクションをアタッチの設定はそのまま「次へ」を選択します。

最後に、「予算を作成」をクリックします。

作成完了

予算が正常に作成されると、Budgets ダッシュボードに表示されます。

(参考)メールの内容

閾値を超えると、指定したメールアドレスに確認メールが届きます。

まとめ

この記事では、Amazon Bedrock のアプリケーション推論プロファイルと AWS Budgets を組み合わせて、以下の2つの課題を解決する方法を解説しました。

  1. 誰がどれだけ利用したのかを可視化

    • アプリケーション推論プロファイルにタグ(EngineerName)を付与
    • Cost Explorer でタグごとにフィルタリングして利用状況を確認
  2. 一定料金を超えたらアラートを出す

    • AWS Budgets でタグをフィルターとした予算を設定
    • しきい値(80%)に達したら SNS 経由でメール通知

これらの仕組みを導入することで、利用状況の把握や予期しない請求を防ぎ、安心して Claude Code on Bedrock を活用できる環境を構築できます。

アマゾン ウェブ サービス ジャパン (有志)

Discussion