継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Amazon Bedrock のコストを呼び出し元 IAM プリンシパル単位で配分できるようになったメモ✍

タダです.

Amazon Bedrock のコストを呼び出し元の IAM プリンシパル (ユーザー / ロール) 単位で配分できるアップデートが発表されました. 「どのチーム / アプリ / ユーザーが Bedrock のコストを押し上げているか」を CloudTrail と請求データの突き合わせなしで分解できるようになったのでメモします.

aws.amazon.com

何が変わったか

これまでは Bedrock の API コール元を特定するために CloudTrail のログと CUR を JOIN するような分析が必要でした. 今回のアップデートで, Bedrock API を呼び出した IAM プリンシパル ARN が AWS Cost and Usage Report 2.0 (CUR 2.0) と Cost Explorer に自動で記録されるようになります. さらに IAM プリンシパルに付けたタグを「コスト配分タグ」として有効化すれば, タグ単位 (部門 / コストセンター / プロジェクト等) でのコスト分解が可能になります.

  • CUR 2.0 に新カラム line_item_iam_principal が追加 (例: arn:aws:iam::123456789012:role/application-role)
  • IAM プリンシパルに付与したタグは iamPrincipal/ プレフィックスで CUR / Cost Explorer に出力される

docs.aws.amazon.com

前回メモした「アプリケーション推論プロファイルのコスト配分タグ」がリソース側にタグを付ける方式だったのに対し, 今回は呼び出し元 IAM 側にタグを付ける方式で, アプローチが対になっている点が特徴です.

sadayoshi-tada.hatenablog.com

有効化の手順

設定は管理アカウント (Payer) で行う必要があります. メンバーアカウント単独では有効化できません. 大まかな流れは以下の 3 ステップです.

  1. IAM ユーザー / ロールにタグを付与する (ex. department, costCenter, team, project)
  2. Billing コンソールの Cost Allocation Tags で該当タグを Activate する
  3. Billing コンソールの Data Exports で CUR 2.0 を作成 (or 編集) し, "Include caller identity (IAM principal) allocation data" を有効化する

タグは API コールが少なくとも 1 回行われた後に Cost Allocation Tags の一覧に出てきて, 有効化してから CUR / Cost Explorer に反映されるまで最大 24 時間かかる点に注意です.現時点でまだ反映ができていないため確認できたらこの記事を更新します.

まとめ

Amazon Bedrock のコストを呼び出し元 IAM プリンシパル単位で配分できるアップデートをまとめました.