[小ネタ] Claude Opus 4 の利用費を CloudWatch Metrics で可視化してみた

[小ネタ] Claude Opus 4 の利用費を CloudWatch Metrics で可視化してみた

Clock Icon2025.05.31

こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。

Claude Code を Amazon Bedrock 経由で使っていると、どうしても気になるのはコストではないでしょうか。

自分が 1時間、1日、1週間と、どれほどのスピード感で利用費が上がっているのか、可視化したいところです。

Claude Code では Opentelemetry や Prometheus で、利用費のメトリクスを取得できます。

https://dev.classmethod.jp/articles/claude-code-metrics-grafana-local-dashboard/

これをどこかのダッシュボードで用意するとなると、Grafana サーバーや Prometheus サーバーが必要だったりします。

それだけの用途で Grafana は Too Much な気がしたため、今回はサクッと CloudWatch メトリクスから、コスト計算をしてみたいと思います。

利用するメトリクス

今回は InputTokenCount, OutputTokenCount, CacheWriteInputTokenCount, CacheReadInputTokenCount の 4 つのメトリクスを利用して、コストの計算を行いたいと思います。また、Claude Opus 4 の利用費を可視化してみたいと思います。

参考までに Claude Opus 4 の料金は、執筆時点で以下のとおりです。

Anthropic models Price per 1,000 input tokens Price per 1,000 output tokens Price per 1,000 input tokens (batch) Price per 1,000 output tokens (batch) Price per 1,000 input tokens (cache write) Price per 1,000 input tokens (cache read)
Claude Opus 4 $0.015 $0.075 NA NA $0.01875 $0.0015

https://aws.amazon.com/bedrock/pricing/?nc1=h_ls

たとえば InputTokenCount が 2,400 トークンあったとすれば、概算レベルですが 2400 / 1000 * 0.15 の 0.36 USD であることがわかります。

メトリクスの計算

メトリクスの計算には計算式および、発信元機能を利用し求めていきます。

まずは、CloudWatch のコンソールに遷移し、発信元 をクリックします。

2025-05-26 at 21.45.34-メトリクス  CloudWatch  ap-northeast-1.png

開けたら以下の JSON を流し込みます。

regionモデル ID 部分には Bedrock で利用している、リージョンとモデル ID を入力してください。

{
    "sparkline": true,
    "metrics": [
        [ { "expression": "(m3 / 1000) * 0.015", "label": "InputToken USD", "id": "e1", "period": 300, "yAxis": "left", "stat": "Sum" } ],
        [ { "expression": "(m4 / 1000) * 0.075", "label": "OutputToken USD", "id": "e2", "period": 300, "stat": "Sum" } ],
        [ { "expression": "(m1 / 1000) * 0.01875", "label": "CacheWriteInputToken USD", "id": "e3", "period": 300, "stat": "Sum" } ],
        [ { "expression": "(m2 / 1000) * 0.0015", "label": "CacheReadInputToken USD", "id": "e4", "period": 300, "stat": "Sum" } ],
        [ "AWS/Bedrock", "CacheWriteInputTokenCount", "ModelId", "モデルID", { "id": "m1", "visible": false } ],
        [ ".", "CacheReadInputTokenCount", ".", ".", { "id": "m2", "visible": false } ],
        [ ".", "InputTokenCount", ".", ".", { "id": "m3", "visible": false } ],
        [ ".", "OutputTokenCount", ".", ".", { "id": "m4", "visible": false } ],
        [ ".", "Invocations", ".", ".", { "id": "m5", "visible": false } ]
    ],
    "view": "singleValue",
    "stacked": true,
    "region": "us-east-1",
    "stat": "Sum",
    "period": 300,
    "setPeriodToTimeRange": true,
    "yAxis": {
        "left": {
            "min": 0,
            "max": 100
        }
    }
}

貼り付けて 更新 をクリックすると、次のように各トークンの利用コストが表示されます。(※ あまりにも低い場合は、 0 で丸められる可能性があります)

期間を選択すると、やりたかった 1時間、1日、1週間と、どれほどのスピード感で利用費が上がっているのか、可視化できます。

このワークロードだと、Output Token Count が目立ちますね。

2025-05-31 at 00.02.36-メトリクス  CloudWatch  us-east-1.png

計算式

ご覧の通り、e1 から e4 に関して、各メトリクスを 1000 で割ったのちに、コストを掛け算してみました。

たとえば InputToken USD (e1) であれば、InputTokenCount (m3) / 1000 * 0.015 で計算し、グラフに表示しています。

{
    "sparkline": true,
    "metrics": [
+        [ { "expression": "(m3 / 1000) * 0.015", "label": "InputToken USD", "id": "e1", "period": 300, "yAxis": "left", "stat": "Sum" } ],
        [ { "expression": "(m4 / 1000) * 0.075", "label": "OutputToken USD", "id": "e2", "period": 300, "stat": "Sum" } ],
        [ { "expression": "(m1 / 1000) * 0.01875", "label": "CacheWriteInputToken USD", "id": "e3", "period": 300, "stat": "Sum" } ],
        [ { "expression": "(m2 / 1000) * 0.0015", "label": "CacheReadInputToken USD", "id": "e4", "period": 300, "stat": "Sum" } ],
        [ "AWS/Bedrock", "CacheWriteInputTokenCount", "ModelId", "モデルID", { "id": "m1", "visible": false } ],
        [ ".", "CacheReadInputTokenCount", ".", ".", { "id": "m2", "visible": false } ],
+        [ ".", "InputTokenCount", ".", ".", { "id": "m3", "visible": false } ],
        [ ".", "OutputTokenCount", ".", ".", { "id": "m4", "visible": false } ],
        [ ".", "Invocations", ".", ".", { "id": "m5", "visible": false } ]
    ],
    "view": "singleValue",
    "stacked": true,
    "region": "us-east-1",
    "stat": "Sum",
    "period": 300,
    "setPeriodToTimeRange": true,
    "yAxis": {
        "left": {
            "min": 0,
            "max": 100
        }
    }
}

参考

https://aws.amazon.com/jp/blogs/news/effectively-use-prompt-caching-on-amazon-bedrock/

まとめ

以上、「[小ネタ]Claude Opus 4 の利用費を CloudWatch Metrics で可視化してみた」でした。

今回は Claude Opus 4 に焦点を当てましたが、別のモデルでも流用できるため、ぜひコストが気になる方はお試しください。

このブログがどなたかの参考になれば幸いです。

クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.