Amazon Bedrockの詳細なコスト帰属機能の導入
本文の状態
日本語全文を表示中
詳細モードで約11分の本文を読めます。
同じ出来事の情報源
4媒体で確認
CyberAgent Developers Blog · Amazon Science · AWS Machine Learning Blog · InfoQ
各社の報じ方を比較 ↓AWSがAmazon Bedrockの推論コストをIAMプリンシパルごとに自動的に帰属する機能を発表した。これにより、コストの内訳把握、コスト最適化、財務計画が容易になる。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
AI の推論がクラウド支出の大きな割合を占めるようになる中、コストを誰が・何が駆動しているかを理解することは、請求配分、コスト最適化、および財務計画において不可欠です。本日、Amazon Bedrock 推論に対する詳細なコスト帰属を発表します。
Amazon Bedrock は現在、呼び出しを行った IAM プリンシパルに対して推論コストを自動的に帰属します。IAM プリンシパルには、IAM ユーザー、アプリケーションが引き受けるロール、Okta や Entra ID などのプロバイダーからのフェデレーテッドアイデンティティが含まれます。帰属は AWS の請求書に流れ、モデル全体で機能し、管理すべきリソースも既存のワークフローの変更も不要です。オプションのコストアロケーションタグを使用することで、AWS Cost Explorer および AWS コストと使用状況レポート (CUR 2.0) でチーム、プロジェクト、またはカスタム次元ごとにコストを集計できます。
本稿では、Amazon Bedrock の詳細なコスト帰属の仕組みについて解説し、例示されるコスト追跡シナリオを順を追って説明します。
詳細なコスト帰属の仕組み
CUR 2.0において、データエクスポート設定で IAM プリンシパルデータを有効にすると、Amazon Bedrock を呼び出している AWS Identity and Access Management (IAM) プリンシパルと、それぞれが支出している金額を確認できます。以下はその例です:
line_item_iam_principal
line_item_usage_type
line_item_unblended_cost
arn:aws:iam::123456789012:user/alice
USE1-Claude4.6Sonnet-input-tokens(入力トークン)
$0.069
arn:aws:iam::123456789012:user/alice
USE1-Claude4.6Sonnet-output-tokens(出力トークン)
$0.214
arn:aws:iam::123456789012:user/bob
USE1-Claude4.6Opus-input-tokens(入力トークン)
$0.198
arn:aws:iam::123456789012:user/bob
USE1-Claude4.6Opus-output-tokens(出力トークン)
$0.990
Here, you can see that Alice is using Claude 4.6 Sonnet and Bob is using Claude 4.6 Opus, and what each is spending in input and output tokens. The following table shows what the line_item_iam_principal column contains for each identity type:
How you call Amazon Bedrock Inference
line_item_iam_principal
AWS IAM User(AWS IAM ユーザー)
…user/alice
Bedrock key (maps to IAM User)(Bedrock キー:IAM ユーザーにマッピング)
…user/BedrockAPIKey-234s
AWS IAM Role (e.g. AWS Lambda function)(AWS IAM ロール:例として AWS Lambda 関数)
…assumed-role/AppRole/session
Federated User (e.g. from an identity provider)(フェデレーションユーザー:例として ID プロバイダーからのもの)
…assumed-role/Role/user@acme.org
Adding tags for aggregation and Cost Explorer
To aggregate costs by team, project, or cost center, add tags to your IAM principals. Tags flow to your billing data in two ways:
- プリンシパルタグは、IAM ユーザーまたはロールに直接付与されます。一度設定すると、そのプリンシパルからのすべてのリクエストに適用されます。
- セッションタグは、ユーザーまたはアプリケーションが IAM ロールを想定して一時的な認証情報を取得する際や、ID プロバイダーの主張(アサーション)に埋め込まれる際に動的に渡されます。詳細については、「AWS STS でのセッションタグの転送」をご覧ください。
AWS Billing で コスト配分タグ として有効化された後、両方のタグタイプは CUR 2.0 の tags カラムに iamPrincipal/ プレフィックス付きで表示されます。以下に例を示します:
| Bedrock の呼び出し元 | line_item_iam_principal | tags |
|---|---|---|
| AWS IAM User | …user/alice | {"iamPrincipal/team":"ds"} |
| AWS IAM Role | …assumed-role/AppRole/session | {"iamPrincipal/project":"chatbot"} |
| Federated User | …assumed-role/Role/user@acme.org | {"iamPrincipal/team":"eng"} |
コスト配分戦略の構築に関する詳細なガイダンスについては、AWS リソースのタグ付けに関するベストプラクティス をご覧ください。
シナリオ別クイックスタート
ユーザーやアプリケーションが Amazon Bedrock を呼び出す方法によって、セットアップは異なります。以下の表では、各アクセスパターンで CUR 2.0 で利用可能な帰属情報と、タグベースの集計のために設定すべき内容を要約しています:
あなたのセットアップ
CUR 2.0 のアトリビューション
集約と Cost Explorer 用のタグ追加方法
シナリオ
IAM ユーザーまたは API キーを持つ開発者
CUR 2.0 には各ユーザーの ARN が表示されます
IAM ユーザーにタグを付与する
1
IAM ロールを持つアプリケーション
CUR 2.0 には各ロールの ARN が表示されます
IAM ロールにタグを付与する
2
IdP を介して認証を行うユーザー
ARN のセッション名でユーザーが識別される
セッション名とタグを IdP から渡す
3
Bedrock にプロキシする LLM ゲートウェイ
すべてのユーザーに対してゲートウェイのロール(1 つのアイデンティティ)のみが表示される
ユーザーごとの AssumeRole をセッション名とタグ付きで追加する
4
注: シナリオ 1~3 では、CUR 2.0 の line_item_iam_principal カラムにより、呼び出し元ごとのアイデンティティアトリビューションが得られます。カスタム次元(チーム、コストセンター、テナント)での集約や、Cost Explorer を用いた視覚的分析・アラート設定を希望する場合にのみタグが必要です。シナリオ 4 では、ユーザーレベルのアトリビューションを得るためにユーザーごとのセッション管理が必須です。これがないと、トラフィックはゲートウェイの単一ロールに対してアトリビュートされます。
タグを追加した後、AWS Billing コンソールまたは UpdateCostAllocationTagsStatus API を使用して コスト配分タグを有効化 してください。タグは Cost Explorer および CUR 2.0 に 24~48 時間以内に反映されます。
以下のセクションでは、いくつかの一般的なシナリオについて詳しく解説します。
シナリオ 1: IAM ユーザーと API キーを使用したユーザーごとの追跡
ユースケース: 個別の開発者が IAM ユーザー資格情報または Amazon Bedrock API キーを使用する小規模チーム、開発環境、あるいは迅速なプロトタイピング。
仕組み:
各チームメンバーには、長期有効期限を持つ専用 IAM ユーザーが割り当てられています。例えば user-1 または user-2 が Amazon Bedrock を呼び出すと、Amazon Bedrock は認証時にその IAM ユーザーの Amazon Resource Name (ARN) を自動的にキャプチャします。CUR 2.0 では、誰がどの程度の費用を支出しているかが確認できます。
チーム、コストセンター、あるいは他の次元(例えばデータサイエンスチームメンバー全体の総支出など)でコストを集計したい場合は、IAM ユーザーにタグを付与してください。タグは IAM コンソール、AWS Command Line Interface (AWS CLI)、または AWS API を使用して追加できます。以下の例では AWS CLI を使用しています:
データサイエンスチームのユーザーにタグを付与
aws iam tag-user \
--user-name user-1 \
--tags Key=team,Value="BedrockDataScience" Key=cost-center,Value="12345"
aws iam tag-user \
--user-name user-2 \
--tags Key=team,Value="BedrockDataScience" Key=cost-center,Value="12345"
CUR 2.0 に表示される内容:
Cost and Usage Report は、個別のユーザーIDとそのタグの両方をキャプチャするため、以下に示す例のように分析のための 2 つの次元を提供します:
line_item_iam_principal
line_item_usage_type
line_item_unblended_cost
tags
arn:aws:iam::123456789012:user/user-1
USE1-Claude4.6Sonnet-input-tokens
$0.0693
{"iamPrincipal/team":"BedrockDataScience","iamPrincipal/cost-center":"12345"}
arn:aws:iam::123456789012:user/user-1
USE1-Claude4.6Sonnet-output-tokens
$0.2145
{"iamPrincipal/team":"BedrockDataScience","iamPrincipal/cost-center":"12345"}
arn:aws:iam::123456789012:user/user-2
USE1-Claude4.6Opus-input-tokens
$0.1980
{"iamPrincipal/team":"BedrockDataScience","iamPrincipal/cost-center":"12345"}
arn:aws:iam::123456789012:user/user-2
USE1-Claude4.6Opus-output-tokens
$0.9900
{"iamPrincipal/team":"BedrockDataScience","iamPrincipal/cost-center":"12345"}
line_item_usage_type カラムには、リージョン、モデル、トークンの方向(入力 vs 出力)がエンコードされているため、「ユーザー 1 は Sonnet の入力トークンと出力トークンでそれぞれいくら使ったか?」や「Opus と Sonnet を誰が利用しているか?」といった質問に回答できます。
このデータから、コストを複数の観点で分析することができます:
- ユーザー別:line_item_iam_principal でフィルタリングして、各人が実際にいくら支出したかを確認できます。これは、リソースを大量に使用するユーザーの特定や、個人の実験にかかるコストを追跡する際に役立ちます。
- モデル別:line_item_usage_type でフィルタリングして、モデルごとの支出を比較できます。例えば、Opus のコストを主導しているのは誰で、Sonnet のコストは誰が負担しているかを確認できます。
- チーム別:iamPrincipal/team でグループ化して、データサイエンスチームメンバー全体の総支出を確認できます。これは部署間の費用配分(チャージバック)に有用です。
このアプローチは、ユーザー数が管理可能な範囲であり、最もシンプルなセットアップを望む場合に最適です。各ユーザーの認証情報は、請求書上で直接その個人を識別するために使用され、タグを用いることでコストをより上位の次元に集約できます。
Amazon Bedrock API キーの使用: Amazon Bedrock は、他の AI プロバイダーと同様に、簡素な認証体験を提供する API キー もサポートしています。API キーは IAM プリンシパルに関連付けられており、API キーを使用して行われたリクエストは対応する IAM アイデンティティに帰属します。そのため、line_item_iam_principal やタグベースの帰属処理がそのまま適用されます。つまり、開発者に API キーを配布したりアプリケーションに埋め込んだりする組織であっても、コストを発生源である IAM ユーザーまたはロールまで遡って追跡することが可能です。
シナリオ 2: IAM ロールによるアプリケーションごとの追跡
ユースケース: アプリケーション(人間ではなく)が Amazon Bedrock を呼び出す本番環境ワークロードで、プロジェクトやサービスごとにコストを追跡したい場合。
仕組み:
ドキュメント処理サービス (app-1) やチャットサービス (app-2) などの 2 つのバックエンドアプリケーションがあるとします。各アプリケーションは、Amazon EC2、AWS Lambda、Amazon Elastic Container Service (Amazon ECS) などのコンピューティングインフラストラクチャ上で実行され、Amazon Bedrock を呼び出すために専用の IAM ロールを仮定します。いずれかのアプリケーションが Amazon Bedrock を呼び出すと、仮定されたロールの ARN が自動的にキャプチャーされます。この帰属情報は CUR 2.0 レポートに流れ込み、アプリケーションごとのコスト可視化を提供します。
line_item_iam_principal(ロール名を含む)でフィルタリングして各アプリケーションの総支出を確認するか、line_item_usage_type でフィルタリングしてサービス間のモデル使用状況を比較することもできます。タグはオプションです。アプリケーションがリクエストまたはバッチジョブごとに一意のセッション名を生成する場合は、より細かなレベルの詳細でコストを追跡できます。
プロジェクト、コストセンター、または別の次元(例えば、DocFlow と ChatBackend 間の総支出を比較するなど)でコストを集計したい場合は、IAM ロールにタグを付与します:
ドキュメント処理ロールへのタグ付け
aws iam tag-role \
--role-name Role-1 \
--tags Key=project,Value="DocFlow" Key=cost-center,Value="12345"
チャットサービスロールへのタグ付け
aws iam tag-role \
--role-name Role-2 \
--tags Key=project,Value="ChatBackend" Key=cost-center,Value="12345"
app-1 が Role-1 を仮定して Amazon Bedrock を呼び出すと、リクエストは仮定されたロールのセッションに帰属されます。ロールのタグは自動的に請求情報にも反映されます。
CUR 2.0 に表示される内容:
line_item_iam_principal フィールドには、セッション名を含む仮定ロールの完全な ARN が表示されます。以下に例を示します:
line_item_iam_principal
line_item_usage_type
line_item_unblended_cost
tags
arn:aws:sts::123456789012:assumed-role/Role-1/session-123
USE1-Claude4.6Sonnet-input-tokens
$0.0330
{"iamPrincipal/project":"DocFlow","iamPrincipal/cost-center":"12345"}
arn:aws:sts::123456789012:assumed-role/Role-1/session-123
USE1-Claude4.6Opus-output-tokens
$0.1650
{"iamPrincipal/project":"DocFlow","iamPrincipal/cost-center":"12345"}
arn:aws:sts::123456789012:assumed-role/Role-2/session-456
USE1-NovaLite-input-tokens
$0.0810
{{"iamPrincipal/project":"ChatBackend","iamPrincipal/cost-center":"12345"}
arn:aws:sts::123456789012:assumed-role/Role-2/session-456
USE1-NovaLite-output-tokens
$0.0500
{"iamPrincipal/project":"ChatBackend","iamPrincipal/cost-center":"12345"}
これにより、複数の分析オプションが利用可能になります:
- ロールでフィルタリング:ARN のロール名部分を使用して、各アプリケーションの総支出額を確認できます。
- セッションでフィルタリング:セッション名を使用して、リクエストごとまたはバッチジョブごとのコストを追跡できます。
プロジェクトごとに集計: G
同じ出来事を4媒体で確認
同じ出来事を扱う別媒体の記事です。見出しと公開時刻を比較できます。
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み