Amazon Web Services ブログ

Kiro の利用状況とコストを把握する ― Part 2: ダッシュボードで継続的に可視化する

Kiro を組織全体に展開すると、利用状況とコストを定期的に、複数の AWS アカウントにまたがって確認する必要が出てきます。確認したいときにすぐに確認できる状態にしておけると、運用の負担が減ります。

本記事では Part 2 として、Kiro の利用状況とコストを可視化する 2 つのダッシュボードを紹介します。1 つは AWS 全体のコストを見るための CUDOS Dashboard に含まれる Kiro のセクション、もう 1 つは Kiro 専用に作られた Kiro User Activity Dashboard です。どちらも Cloud Intelligence Dashboards (CID) の一部として提供されており、Amazon Quick Sight 上で動作します。

なお、別記事となる Part 1 では、Kiro の利用状況とコストの情報がどこに記録され、どう取り出せるのかを整理しています。

注:本記事は CUDOS Dashboard 5.8.0 以降と Kiro User Activity Dashboard v1.1.1 以降を前提に記述しています。ダッシュボードは更新されるため、最新の情報はそれぞれの CHANGELOG (CUDOS, Kiro User Activity Dashboard) をご確認ください。また、Part 1 と同様に、Kiro の ID プロバイダーとして AWS IAM Identity Center を使う構成を前提としています。

1. Part 1 の振り返り

Part 1 の要点は以下の 4 つです。

  • Kiro の利用状況とコストの情報源は 2 つあります。Kiro User Activity Report はユーザーごとの利用実態を、AWS Cost and Usage Reports (CUR) 2.0 は請求の観点からサブスクリプションごとの月額料金と超過料金を記録します。
  • Kiro User Activity Report は日次で出力され、メッセージ数やモデル別の内訳を確認できます。
  • CUR 2.0 を Amazon Athena で分析すれば、ヘビーユーザーの特定、クレジット超過の発見、課金されているのに使われていないサブスクリプションの洗い出しができます。
  • Kiro 使用状況ダッシュボードを使うと、何もデプロイせずに概況を確認できます。ただし、ユーザー単位の内訳やモデル別の内訳は見えません。

CUR 2.0 と Kiro User Activity Report はユーザー単位までの分析を行うことができますが、CUR 2.0 については Athena でのクエリ実行、Kiro User Activity Report については出力されたファイルの集約をその都度行う必要があります。

この点を解消する方法として、ここでは 2 つのダッシュボードを紹介します。

2. CUDOS Dashboard

CUDOS Dashboard (以下、CUDOS) は、CUR をもとにコストと使用状況を多面的に可視化する、CID の中核となるダッシュボードです。既に導入されている組織も少なくないかと思います。

CUDOS 5.8.0 以降であれば、AI/ML タブ内に Kiro のセクションが含まれています。つまり、追加のデプロイは不要で、タブを開くだけで Kiro の状況を確認できます。

注:CUDOS はデモ環境で実際に操作してみることもできます。AI/ML タブを開いて下方にスクロールすると Kiro のセクションがあります。

CUDOS Dashboard の AI/ML タブ (Kiro セクション)

図 1: CUDOS Dashboard の AI/ML タブ (Kiro セクション)

CUDOS では Kiro について以下のようなビジュアルが用意されており、大きく 3 つの観点で状況を確認できます。

  • コストはどのように推移しているか
    • アカウントやリージョンなどの要素ごとのコストの推移 (Kiro and Amazon Q Developer Spend per <要素>)
    • サブスクリプション数およびコストの推移 (Kiro and Amazon Q Developer Daily Subscriptions Count and Spend)
    • アクティブユーザー数の推移 (Kiro Daily Active Users)
  • 誰がどれだけ使っているか
    • ユーザーごとのクレジット消費の推移 (Kiro Daily Credits Usage per User)
    • ユーザーごとのサブスクリプションの明細 (Kiro and Amazon Q Developer per User Subscriptions Details) … プラン、発生している料金、および使用量
  • 使われていないサブスクリプションはあるか
    • Kiro を使えるサブスクリプション (ユーザー) の数 (Total Kiro Subscriptions) と、その内訳 (Total Active Kiro Users / Total Inactive Kiro Users)
    • クレジットを消費していないユーザー (Kiro Users with No Credits Usage) とその総サブスクリプションコスト (Total Cost for Inactive Kiro Users)

Part 1 では Athena で SQL クエリを発行して取得していた情報が、CUDOS ではそれを行わずに確認することができます。アカウントや期間はコントロールで絞り込むことができます。

CUDOS は CUR だけを情報源とするため、Kiro User Activity Report を有効にしていなくても使えます。また、他のサービスと同じダッシュボードで Kiro のコストを見られるので、毎月のコストの確認の中で Kiro の状況を併せて把握する、といった使い方に向いています。

3. Kiro User Activity Dashboard

Kiro User Activity Dashboard は、CID のダッシュボード群に新たに追加された Kiro 専用のダッシュボードです。CUDOS が CUR のみを情報源とするのに対し、こちらは Kiro User Activity Report と CUR 2.0 の両方を情報源としています。

それにより、Kiro User Activity Dashboard では、何か月使われていないかやモデル別の内訳など、CUDOS では見ることのできなかった情報も確認することができます。

注:Kiro User Activity Dashboard もデモ環境で操作してみることができます。

Kiro User Activity Dashboard は 5 つのタブから構成されています。

タブ 内容
Executive Summary 全体像 (サブスクリプション数、メッセージ数、クレジット消費と超過)
User Engagement ユーザーごとの利用実態、メッセージ数、アクティブユーザー数の推移
Credit & Overage Tracking クレジット消費と超過の追跡、プランの過不足の判定
Model & Client Breakdown モデル別とクライアント別の内訳
About 免責事項とバージョン番号

このうち、Executive Summary タブでは、以下のような全体像を把握することができます。

  • 総サブスクリプション数 (Total Kiro Subscriptions)
    • 使われているサブスクリプションの数 (Active Kiro Licences)
    • 使われていないサブスクリプションの数 (Idle Kiro Licences)
  • 利用量 (Total Messages, Credits Used)
  • 超過クレジット量 (Overage Credits)
  • クライアントタイプ (KIRO_CLI、KIRO_IDE 等) ごとの利用状況 (Active Users by Client Type, Daily Active Users by Client Type)
  • プラン (PRO, PRO_PLUS 等) ごとの利用状況 (Credits by Subscription Tier)
  • モデル (Auto, Claude Sonnet 5 等) ごとの利用状況 (Messages by Model)

注:Kiro User Activity Dashboard の v1.1.0 以降では、課金されているサブスクリプションを「ライセンス (Licence)」という単位で呼んでいます。サブスクリプションは AWS アカウントごとに数えるため、同じユーザーが 2 つのアカウントでサブスクライブされていれば 2 ライセンスとカウントされます。

Kiro User Activity Dashboard の Executive Summary タブ

図 2: Kiro User Activity Dashboard の Executive Summary タブ

ここで使われていないサブスクリプション (ライセンス) が多いと分かれば、「どのサブスクリプションでどのくらい無駄になっているか」を User Engagement タブで確認します (→ 3.1.)。クレジットの超過が発生していると分かれば、「誰が超過しているのか、適切なプランにサブスクライブしているのか」を Credit & Overage Tracking タブで確認します (→ 3.2.)。

また、「なぜクレジットを多く消費しているのか」は User Engagement タブで確認できます (→ 3.3.)。

3.1. 使われていないサブスクリプションを見つける

User Engagement タブには、Idle Kiro Licences という「課金されているのに使われていないサブスクリプション」の一覧が含まれています。

Kiro User Activity Dashboard の User Engagement タブの Idle Kiro Licences ビジュアル

図 3: Kiro User Activity Dashboard の User Engagement タブの Idle Kiro Licences ビジュアル

この一覧には、以下のカラムが含まれています。

  • アカウント (Account)
  • ユーザー (User) … Kiro User Activity Report に一度も記録がないサブスクリプションは、メールアドレスではなく IAM Identity Center のユーザー ID で表示されます
  • サブスクリプションプラン (Subscription Type)
  • そのユーザーで最初に課金が発生した日 (Licence Since)
  • 最後にクレジットが消費された日 (Last Activity (all-time)) … 空欄の場合は一度もクレジットが消費されていないことを意味します
  • 使われなくなる前に、どれだけの期間使われていたか (Months Active)
  • 使われていない月数 (暦月) (Months Idle)
  • 1 か月あたりの料金 (Monthly Fee)
  • 使われていない期間に発生した料金 (Inactivity Cost) … Months Idle × Monthly Fee に相当

ここで「使われていない」と判定されるのは、「Billing period (ダッシュボード上部のコントロール欄で設定) で選んだ期間に課金されていて、かつクレジットの消費がなかったサブスクリプション」です。課金されていてクレジット消費があれば Active、課金されているのにクレジット消費がなければ Idle と判定されます (注)。

注:「サブスクライブされたが、まだ有効化されていない」状態 (Part 1 で述べた Pending の状態) のサブスクリプションは課金されないため、Kiro User Activity Dashboard のサブスクリプションの数には含まれず、Active にも Idle にも数えられません。

図 3 の例では、Pro / ProPlus のサブスクリプションがいずれも 1 か月使われておらず、Inactivity Cost としてそれぞれ $20 と $40 が計上されています。上位のプランを放置した場合の金額が大きくなることが分かります。

こうして見つかったサブスクリプションは、対象のユーザーにヒアリングした上で解約の候補になります。

3.2. 現在のプランが適切かを確認する

Credit & Overage Tracking タブでは、プランのクレジット枠に対する利用状況を確認することができます。

Kiro User Activity Dashboard の Credit & Overage Tracking タブ

図 4: Kiro User Activity Dashboard の Credit & Overage Tracking タブ

画面の上部には、以下の 4 つの指標が並びます。

  • 枠の 75% 以上を使っているユーザーの数 (Users at Risk (≥75% plan)) … 超過の予兆
  • 枠を超えたユーザーの数 (Users in Overage)
  • 枠の 25% も使っていないユーザーの数 (Users Below 25% of Plan) … プランが過剰な可能性
  • 超過分の料金 (Overage Cost)

Credit & Overage Tracking タブの下方にある Monthly Credits and Overage by User ビジュアルでは、ユーザーごとの明細を月単位で確認することができます。プラン (Subscription Tier) とクレジット枠 (Plan Credits)、消費したクレジット (Credits Used)、枠に対する利用率 (Plan Utilization %)、枠から超過したクレジット (Overage Credits) が並び、加えて Tier Recommendation というカラムに次に取るべき行動が示されます。

  • 消費クレジットが枠を超過しているので上位プランへアップグレードすべき (Upgrade Candidate)
  • 枠に対してクレジットの利用率が低いので下位のプランへダウングレードすべき (Downgrade Candidate)
  • 現在のプランで適切 (Right-Sized)
  • 消費クレジットが枠を超過しているものの、既に最上位のプラン (=Kiro Power) であるため、超過を許容するかの判断になる (Review Overage Settings)

注:ダッシュボードが認識できないプラン (例:新規に追加されたプラン) の場合は Unknown Tier と表示されます。

ただし、Users Below 25% of Plan に該当するユーザーについては、すぐにプランを下げるのではなく、対象のユーザーやそのマネージャーと相談した上で適切なプランを判断するべきでしょう。利用が少ない理由は、数字からだけでは必ずしも分からないためです。

なお、超過を許容するかを判断する際は、その超過が何によって生じているのかも手掛かりになります (→ 3.3.)。

3.3. クレジットを多く消費している原因を調べる

3.2. で超過しているユーザーや超過しそうなユーザーが見つかった場合は、User Engagement タブでその詳細な原因を確認することができます。

Kiro User Activity Dashboard の User Engagement タブ

図 5: Kiro User Activity Dashboard の User Engagement タブ

User Engagement タブには、3.1. で紹介した Idle Kiro Licences 以外に、ユーザーごとの利用状況を示す以下のビジュアルが含まれています。

  • ユーザーごとのメッセージ数をモデル別に示したもの (Top 50 Users by Message Count (by Model))
  • 日ごとのメッセージ数をユーザー別に示したもの (Users by Message Count)
  • ユーザーごとの月単位の明細 (User Summary)
    • メッセージ数 (Total Messages) やクレジット消費量 (Credits Used)、1 メッセージあたりのクレジット消費 (Credits per Message) など

クレジットを多く消費しているユーザーがいる場合、その理由として「単純に利用量が多い」「クレジット消費の多いモデルを使っている」などが考えられます。まずは対象のユーザーの Credits per Message を確認し、それが他のユーザーと同程度であれば Total Messages そのもの、つまり利用量が多いことが原因であると言えるため、3.2. のようにプランの見直しを検討することになります。

一方、Credits per Message が他のユーザーよりも高いようであれば、ダッシュボード上部のコントロール欄の User で対象のユーザーに絞り込んだ上で、Top 50 Users by Message Count (by Model) でモデルごとのメッセージ内訳を確認します。利用が消費の多いモデルに偏っていれば、モデルの選び方が原因である可能性があるため、対象のユーザーと相談した上で、作業の内容に応じたモデルの使い分けを検討します。偏っていなければ、クレジット消費の大きい複雑な作業が多いと考えられるため、この場合もプランの見直しを検討することになります。

4. 2 つのダッシュボードの違い

2 つのダッシュボードは、主に何を指標にしているかが異なります。CUDOS は CUR をもとに、Kiro のコスト (金額) の推移や内訳を示します。一方、Kiro User Activity Dashboard は Kiro User Activity Report 以外に CUR (CUR 2.0) も情報源としているものの、一部のビジュアルを除いてコストは扱っておらず、サブスクリプションの数やクレジットの量を指標にしています。Kiro User Activity Dashboard で金額が表示されるのは、使われていないサブスクリプションの料金 (Idle Kiro Licences) と、超過料金の合計 (Overage Cost) だけです。

確認したいこと CUDOS Dashboard Kiro User Activity Dashboard
Kiro のコストの推移や内訳 ○ 確認可能
(アカウントやリージョンなどの軸で確認可能)
× 確認不可
(クレジットの量の推移は確認可能)
使われていないサブスクリプションと、それによって発生しているコスト ○ 確認可能
(クレジットを消費していないユーザーと、そのサブスクリプションコストの合計)
○ 確認可能
(CUDOS でできることに加え、使われていない月数と、その間に発生した料金も確認可能)
プランが利用実態に見合っているか △ 一部確認可能
(ユーザーごとのクレジット消費量は分かるが、プラン枠との比較は自分で行う必要あり)
○ 確認可能
(プランごとのクレジット枠に対する利用率と、プラン変更の推奨の有無まで確認可能)
超過が過度に起きていないか ○ 確認可能
(ユーザーごとの明細で、超過分の料金を確認可能)
○ 確認可能
(超過クレジット量、超過の予兆、超過料金の合計を確認可能)
クレジットを多く消費している原因 × 確認不可 ○ 確認可能
(メッセージ数、1 メッセージあたりのクレジット消費、モデル別の内訳を確認可能)

コストの推移や内訳を見たい場合は、CUDOS が向いています。使われていないサブスクリプションがないか、プランが適切か、超過が過度に起きていないかを、ユーザー単位で掘り下げて確認したい場合は、Kiro User Activity Dashboard が向いています。CUDOS を既に導入済みであれば、まずは 5.8.0 以降に更新して AI/ML タブで状況を確認し、より詳しく見たくなった段階で Kiro User Activity Dashboard を追加する、という順で検討するとよいでしょう。

5. ダッシュボードのデプロイ

どちらのダッシュボードも Cloud Intelligence Dashboards の仕組みでデプロイします。詳しい手順は公式ドキュメントを参照してください。ここではそれぞれの手順の参照先と、デプロイにあたって注意しておきたい点を紹介します。

ダッシュボードを動かすには、Amazon Quick Sight のユーザー料金と SPICE の容量、Amazon Athena のクエリ、CUR やレポートを保存する Amazon S3 などの料金がかかります。費用の目安は、前提条件と共に CID の FAQ に記載されています。Kiro User Activity Dashboard では、これに加えてレポートを収集する仕組み (AWS Lambda など) の料金がかかります。

5.1. CUDOS Dashboard

  • 新規にデプロイする場合は「Deployment in Global Regions」を参照してください。
  • 既にご利用中の場合は「Update Dashboards」でダッシュボードの更新を行ってください。なお、AI/ML タブで Kiro を見るには CUDOS の 5.8.0 以降が必要です。5.8.0 への更新ではデータセットが移行されるため、データセットをカスタマイズしている場合には事前に CHANGELOG の 5.8.0 の項に記載の注意点を確認してください。

5.2. Kiro User Activity Dashboard

  • 新規・更新のいずれも「Kiro User Activity Dashboard」に手順があります。
  • Kiro User Activity Dashboard のデプロイの前に、以下を実施しておく必要があります。
    • CID の Foundational ダッシュボード (CUDOS Dashboard、Cost Intelligence Dashboard、KPI Dashboard) のいずれかと、CUR 2.0 のデータエクスポート
      • Foundational ダッシュボードを新規にデプロイする場合は、CUR 2.0 のデータエクスポートも一緒に設定されます
      • 既に Foundational ダッシュボードを導入済みで、情報源として CUR 2.0 を使っている場合は、追加の作業は不要です
      • 既に Foundational ダッシュボードを導入済みで、情報源として Legacy CUR (CUR 1.0) を使っている場合は、別途 CUR 2.0 のデータエクスポートが必要です
        (CUDOS は CUR 1.0 にも対応していますが、Kiro User Activity Dashboard で対応しているのは CUR 2.0 のみです)

        • この場合の CUR 2.0 のデータエクスポートは、AWS Billing and Cost Management コンソールで作成するのではなく、CID の Data Exports の手順で作成してください。CID が対応しているのは、この手順で作成した CUR 2.0 のデータエクスポートのみです (データエクスポートの作成に加えて、Athena テーブルの作成なども行われます)
    • Kiro User Activity Report の有効化と S3 バケットへの CSV 形式でのレポート出力設定
      • 出力先の S3 バケットが SSE-KMS で暗号化されている場合、Kiro User Activity Dashboard がレポートを読み取れないのでご注意ください
      • S3 バケットのプレフィックスには「kiro/」を指定してください

なお、Kiro User Activity Report は、ユーザーがサブスクライブされている AWS アカウントごとに出力され、別のアカウントのバケットには出力できません。部署ごとに別のアカウントで Kiro を導入している場合は、それぞれのアカウントでレポートを有効化した上で、ドキュメントの手順の Step 1 の中でそれらのバケットをすべて読み取り元として指定する必要があります。

6. まとめ

Part 2 では、Kiro の利用状況とコストを継続的に可視化する 2 つのダッシュボードを紹介しました。

  • CUDOS Dashboard (5.8.0 以降) は、AI/ML タブ内で Kiro の状況を確認できます。CUR だけを情報源とするので、Kiro User Activity Report がなくても使え、毎月のコスト確認の中で、Kiro のコストの推移や内訳を併せて把握するのに向いています。
  • Kiro User Activity Dashboard は、Kiro User Activity Report と CUR 2.0 の両方を情報源とする Kiro 専用のダッシュボードです。使われていないサブスクリプションにいくら払い続けているか、現在のプランが適切か、クレジットを多く消費している原因は何かを、ユーザー単位で掘り下げられます。

Part 1 と Part 2 で紹介した方法を使えば、誰がどれだけ Kiro を使い、どこにコストが発生しているのかを、ユーザー単位で把握できます。大切なのは、見えるようにした上で「使われていないサブスクリプションを解約する」「プランが見合っていないユーザーのプランを変える」「利用が消費の多いモデルに偏っているならモデルの使い分けを検討する」などの手を打つことです。Kiro を組織全体に広げていく段階では、こうした見直しを定期的に回せる状態を作っておくと、コストの見通しが立てやすくなります。


著者について

Shingo Horisawa

堀沢 伸吾 (Shingo Horisawa)

アマゾン ウェブ サービス ジャパン合同会社のテクニカルアカウントマネージャーとして、ISV のお客様を中心に、AWS を効率的・効果的にご利用いただくための運用やコスト効率化をご支援しています。休日は趣味のロードバイクで主に東京郊外を走ったり、ロングライドをしたりしています。