Kiro ユーザーアクティビティレポートを使ってユーザーごとのクレジット使用量を集計してみた

Kiro ユーザーアクティビティレポートを使ってユーザーごとのクレジット使用量を集計してみた

2026.02.23

いわさです。

Kiro を IAM Identity Center と統合すると組織ユーザーのライセンスを割り当てることが出来ます。
Kiro はクレジットベースでの料金プランとなっており Pro プラン($20/月)では 1,000 クレジットまで、Power プラン($200/月)で 10,000 クレジットまでを含んでいます。

https://kiro.dev/pricing/

このクレジットを超える場合は $0.04/クレジットで超過料金を支払うことで使用し続けることが出来るのですが、少し割高です。
そのため、Kiro を運用するにあたってコスト最適化を行うためには、ユーザーごとに初期クレジットをどの程度消費できているのか、超過クレジットがどの程度発生しているのかを適切に把握することがポイントになります。

Kiro にはマネジメントコンソールから利用できるダッシュボードが提供されているのですが、本日時点ではその内容は限定的で組織全体の集計データくらいしか確認することが出来ず、ユーザー棚卸しには適していません。
ただし、より詳細なデータをエクスポートできる「ユーザーアクティビティレポート」という管理者機能を有効化することができそれを集計することで詳細な分析を行うことが出来ます。

今回そちらを使って Athena で集計してみたので紹介します。

デフォルト提供のダッシュボード

組織管理者権限でマネジメントコンソールで「Kiro」にアクセスし、ダッシュボードを表示します。

59416A6C-DD41-476D-B1EB-7D38E59C6E32_1_105_c.jpeg

以下のダッシュボードを確認できると思います。

  • クライアントタイプ別のクレジット使用量
  • プランタイプ別のクレジット使用量
  • クライアントタイプ別のアクティブユーザー
  • プランタイプ別のアクティブユーザー
  • クライアントあたりの使用状況

このうちクレジット使用量に関するものは最初の2つですが、これらはユーザー別には集計されず組織全体でグルーピングされています。

ABF73CC9-67E6-4D96-BDFA-E4C9B1DD8049.png

そのためユーザーごとに使用量を把握してこのユーザーは使いすぎているのでプランをアップグレードしたほうが良さそうとか、このユーザーはほとんど使っていないのでライセンスを返却させようとか、そういった意思決定には使えません。

ユーザーアクティビティレポートの仕様

管理者向けに、Kiro では S3 バケットに詳細なレポートデータを出力する機能が提供されています。
セッティングメニューの「Kiro ユーザーアクティビティレポート」を ON にして出力先 S3 バケットを指定することで利用ができます。

E39F5877-C7A1-4046-A2C5-BA921E8D6AA2_1_105_c.jpeg

そうすると次のような感じで S3 バケットに CSV 形式のレポートデータを出力してくれるようになります。

image.png

ユーザーアクティビティレポートの仕様は以下のドキュメントに記載されています。
毎日 UTC 0 時にレポートを出力する仕様となっており、その日に Kiro を利用したユーザーIDごと、クライアントタイプごとに合計メッセージ数や1日で使用したクレジットなどの情報が出力されます。

https://kiro.dev/docs/enterprise/monitor-and-track/user-activity/

Athena で集計してみる

S3 バケットに出力されるので、あとは Athena でテーブルを作成すれば簡単にクエリで分析することが出来そうです。
次のようなテーブル作成クエリを用意しました。

CREATE EXTERNAL TABLE IF NOT EXISTS kiro_user_report (
  date STRING,
  userid STRING,
  client_type STRING,
  chat_conversations INT,
  credits_used DOUBLE,
  overage_cap DOUBLE,
  overage_credits_used DOUBLE,
  overage_enabled BOOLEAN,
  profileid STRING,
  subscription_tier STRING,
  total_messages INT
)
PARTITIONED BY (
  region STRING,
  year STRING,
  month STRING,
  day STRING,
  hour STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
  'separatorChar' = ',',
  'quoteChar' = '"',
  'escapeChar' = '\\'
)
LOCATION 's3://hoge-bucket-name/AWSLogs/123456789012/KiroLogs/user_report/'
TBLPROPERTIES (
  'skip.header.line.count'='1',
  'projection.enabled'='true',
  'projection.region.type'='enum',
  'projection.region.values'='us-east-1',
  'projection.year.type'='integer',
  'projection.year.range'='2026,2026',
  'projection.month.type'='integer',
  'projection.month.range'='1,12',
  'projection.month.digits'='2',
  'projection.day.type'='integer',
  'projection.day.range'='1,31',
  'projection.day.digits'='2',
  'projection.hour.type'='integer',
  'projection.hour.range'='0,23',
  'projection.hour.digits'='2',
  'storage.location.template'='s3://hoge-bucket-name/AWSLogs/123456789012/KiroLogs/user_report/${region}/${year}/${month}/${day}/${hour}'
);

バケット名や AWS アカウント ID はダミーのものとなっていますので必要に応じて修正してください。
あと、適当にprojection.year.range2026にしているので気をつけてください。
上記でテーブルを作成後、クエリを実行します。

2026年2月12日以降のユーザーごとのクレジット使用量を集計してみました。

SELECT 
  userid,
  year,
  month,
  SUM(credits_used) as total_credits
FROM kiro_user_report
WHERE year = '2026' AND month = '02' AND day > '12'
GROUP BY userid, year, month
ORDER BY year, month, total_credits DESC;

ユーザーIDごとの使用量合計が表示されていますね。

6ADA5181-38AD-4653-8126-1DC89C030993.png

上記のユーザーIDが何かというと、IAM Identity Center ユーザーのユーザーIDを指しています。

2E719AE8-9843-4743-8459-5005C40E0866_4_5005_c.jpeg

例えば上記から、この組織では IAM Identity Center のユーザーが16名いますが、2月にKiroを利用したユーザーは7名で1名が700クレジット消費していますが、他の方は50クレジット以下の使用量だということが確認できます。
これによって1名のユーザーはProで今時点ではちょうど良いか超過する可能性があるのでPro+にアップグレードしたほうが良いかも、とか、他のユーザーは使っていなさそうなのでライセンス割り当てを見直すなどを検討できるという感じです。

さいごに

本日は Kiro ユーザーアクティビティレポートを使ってユーザーごとのクレジット使用量を Athena で集計してみました。

特に組織で Kiro のライセンスを管理しており、利用機能ベースではなくクレジット消費量ベースでコストの最適化を行いたい方などは、ユーザーアクティビティレポートの利用を検討してみてください。

この記事をシェアする

FacebookHatena blogX

関連記事