
- AthenaがBedrockの呼び出しログからユーザーごとの日次利用額を計算
- Lambdaが15分ごとに利用額を確認し、しきい値超過を判定してSlackで通知
- IAMポリシーを自動更新し、高価なモデルを段階的に拒否、翌日には制限が解除
AIコストの問題
Jamfは、アップル製品の管理・セキュリティツールを提供する企業で、世界の76,000以上の組織で利用されています。同社はAIによる開発支援を加速するため、エンジニア組織全体にAmazon Bedrockへのアクセスを広く開放しました。すると生産性は向上したものの、ユーザー単位での利用料金の把握とコスト管理が必要になったと、AWSブログは説明しています。
生成AIのコストは、従来のITコストと異なり、サーバーなど確保した容量ではなく行動に応じて変動します。高性能なモデルを1人のエンジニアが数時間使うだけで、チーム全体の週間利用量を超えることもあります。しかも利用量は請求書が届くまで見えにくいため、コストを抑えたい経営側は対策を打ちにくいという課題があります。
モデルを段階的に制限
Jamfが構築したシステムは、各エンジニアの日次予算に対する利用額を監視し、モデルへのアクセスを段階的に制限します。日次予算の80%に達すると、高性能なAnthropic Claude Opusを拒否します。100%に達すると、Anthropic Claude Sonnetも拒否します。その一方で、低価格なAnthropic Claude Haikuは常に利用できるため、エンジニアは作業を完全に止められることなく、低コストのモデルで継続できます。
制限は数分以内に反映され、ユーザーの再認証は必要ありません。また、翌日の予算リセット後には自動的に解除されます。どうしても高い上限が必要なエンジニア向けに、管理者がSlackのスラッシュコマンドで期限付きの例外枠を付与できる運用も用意されています。
サーバーレス構成の仕組み
仕組みは「測定」「判定と通知」「強制」の3要素で成り立ちます。まず、エンジニアがBedrockのモデルを呼び出すと、そのログがAmazon S3に保存されます。次に、Amazon Athenaのビューがログを読み込み、トークン数にモデルごとの単価を掛けて、ユーザー別の日次利用額を計算します。
判定と通知はAWS Lambdaが担当し、15分ごとにAthenaのビューへ問い合わせます。Lambdaは、特例を管理するDynamoDBのテーブルと照合して制限対象者を割り出し、新たにしきい値を超えたユーザーにはSlackで通知します。その後、IAMのカスタマー管理ポリシーに新しいバージョンを発行すると、次のBedrock呼び出し時にアクセスが拒否されます。
この設計は毎回その日の累計利用額から制限リストを再計算するため、処理が二重実行されても同じ結果になります。日付が変われば自動的に制限対象から外れ、特別な解除処理を保守する必要がないのが利点です。
運用コストと教訓
本番運用でのコストは、AWS Lambda、DynamoDB、S3を合わせて、数百人のエンジニア規模でも月10ドル未満だったと報告されています。一方、Amazon Athenaはクエリがスキャンするデータ量に応じて課金されます。JSON形式のログでは列を絞ってもスキャン量は減らず、対象を変えた4つのクエリが同じ約11GBをスキャンしたという教訓も紹介しました。
このため、あらかじめ集計したビューを1回だけクエリする方法や、ログをParquetなどの列形式に変換する方法が提案されています。また、新しいモデルを有効化した際に価格の登録を忘れると、未知のモデルとして最高料金が適用される保険の仕組みも備えています。
こうしたガバナンスは開発を制限するものではなく、むしろ採用を後押ししたとAWSブログは振り返ります。利用額が把握でき、個別の上限を設定しても作業を止めない設計になったことで、経営陣は社内のAI活用範囲を広げる判断ができたといいます。
| 予算使用率 | 拒否されるモデル | 利用可能なモデル |
|---|---|---|
| 80%未満 | なし | Anthropic Claude Opus、Anthropic Claude Sonnet、Anthropic Claude Haiku |
| 80% | Anthropic Claude Opus | Anthropic Claude Sonnet、Anthropic Claude Haiku |
| 100% | Anthropic Claude Opus、Anthropic Claude Sonnet | Anthropic Claude Haiku |
Generative AI spend behaves unlike any cost line before it. Traditional compute scales with provisioned capacity. AI spend scales with behavior: a single engineer running an agentic coding loop against a premium model can burn more tokens in a few hours than a team does in a week.
生成AIへの支出は、これまでのどのコスト項目とも振る舞いが異なります。従来のコンピューティングは準備した容量に応じて規模が決まるのに対し、AIへの支出は行動に応じて変動します。1人のエンジニアが高性能モデルでエージェント型のコーディングループを回せば、チームが1週間に使うトークンを数時間で消費し得るのです。
今後の見通し
AWSブログは実装コードをGitHubのサンプルリポジトリで公開しており、他社が同様の仕組みを導入するための敷居は下がるとみられます。実際に効果を発揮するには、Bedrockのモデル価格の変化や新モデルの追加に追従する運用が欠かせません。加えて、Athenaのコストを抑えるためにJSONログをParquetなどの列形式へ変換する動きが進むかどうかも注目点になります。今後、別の企業がこのパターンをどう応用するかが明らかになれば、より汎用的なAI費用管理の手法が見えてくるでしょう。
日本の開発者・IT企業にとっての意味
日本企業でも、生成AIを社内開発に取り入れる動きは広がっています。一方で、誰がどれだけ使ったか分からないまま毎月の請求額が膨らむことを懸念し、導入をためらうケースも少なくありません。Jamfの事例は、この懸念に対して「上限を自動で強制する」という具体的な回答を示しています。しかも、AWSのサーバーレスサービスで構成されており、初期費用や運用の手間を抑えられます。日次予算をユーザー単位で設定し、予算を超えても低価格モデルで作業を継続させるという設計は、開発者の生産性を落とさずにコストガバナンスを効かせたい日本のIT企業にとって参考になるはずです。特に、IAMポリシーによる強制とSlackでの事前通知、期限付きの例外申請という一連の流れは、そのまま社内運用の雛形にできます。一方で、Athenaのコスト特性や価格マップのメンテナンスなど、運用面で注意すべき点も明らかになっており、導入時には考慮が必要です。
気になる点
- この仕組みは自社でも導入できますか?
- AWSブログは構成コードをGitHubのサンプルリポジトリで公開しています。前提条件として、AWSアカウント、IAM Identity Center、Bedrockのモデル呼び出しログをAmazon S3に出力する設定、Slackワークスペースなどが必要です。既存のAWS環境にこれらの条件を整えられるかが確認ポイントになります。
- システム自体の運用コストはどのくらいかかりますか?
- AWSブログの報告では、Lambda、DynamoDB、S3の費用は数百人のエンジニア規模でも月10ドル未満です。一方Athenaはスキャン量と実行頻度で課金が変わり、JSONログでは列の絞り込みがあまり効かないため、クエリを1回にまとめるなどコストを意識した運用が推奨されています。
- 新しいモデルを追加すると設定が必要ですか?
- 必要です。Athenaのコスト計算ビューにモデルごとの料金区分を追加しなければ、そのモデルは未知の扱いで最高料金が適用されます。未登録モデルが制限をすり抜けるのを防ぐための保険ですが、実際の料金とはずれるため、モデル追加時に更新する運用が求められます。
用語解説
- Amazon Bedrock
- AWSが提供する生成AI基盤モデルをAPIで呼び出せるフルマネージドサービス。
- トークン
- AIモデルが処理するテキストの最小単位で、利用量に応じて課金される。
- IAM
- AWSのアクセス権限を管理するサービス。誰がどのリソースを操作できるかを細かく設定できる。
- Amazon Athena
- S3上のデータにSQLクエリを直接実行できるサーバーレスのクエリサービス。
- AWS Lambda
- サーバーレスでコードを実行できるAWSのコンピューティングサービス。
出典
Tokenomics at scale: How Jamf built real-time spend enforcement for Amazon Bedrock
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する