AWS Certified Generative AI Developer - Professional 資格対策コース
トークン効率とコスト削減・コスト可視化(Bedrock / Cost Explorer / Cost Anomaly Detection)
このレッスンで学ぶこと 対応試験ドメイン D4 タスク 4.1.1-4.1.2(コスト最適化・コスト可視化)。Amazon Bedrock のトークン課金の仕組みを踏まえ、トークン消費を抑える設計判断と、AWS Cost Explorer・AWS Cost Anomaly Detection を使ったコストの可視化・異常検知の使い分けを身につけます。
解説
Amazon Bedrock の生成 AI 利用料は、原則として入力トークン数と出力トークン数の従量課金です。つまりコスト削減の本質は「トークンを減らすこと」と「適正なモデルを選ぶこと」に集約されます。試験では「コストが急増した」「予算内に収めたい」というシナリオで、AWS のどの機能を使うかが問われます。
トークン課金の基本構造
Bedrock のオンデマンド課金は次の要素で決まります。
| 課金要素 | 内容 | 削減レバー |
|---|---|---|
| 入力トークン | プロンプト・コンテキスト・RAG で詰めた文書 | プロンプト圧縮・不要文脈の除去・チャンク削減 |
| 出力トークン | モデルが生成した応答 | maxTokens 上限・簡潔な出力指示 |
| モデル単価 | モデルごとの 1000 トークンあたり料金 | タスクに見合った軽量モデル選定 |
入力トークンは「自分が送った量」、出力トークンは「生成された量」で別単価です。RAG で大量の文書を毎回コンテキストに詰めると入力トークンが膨らむため、検索結果の件数やチャンクサイズの設計が直接コストに効きます。
トークンを減らす設計
- 不要なシステムプロンプトや重複した文脈を削る
- RAG では検索上位 k を絞り、リランキングで本当に必要なチャンクだけ渡す
- 出力は
maxTokensで上限を設け、冗長な生成を防ぐ - 大量バッチの単純タスクは軽量モデルへ寄せる(モデル選定はコストの支配要因)
コストの可視化と異常検知
トークンを削る設計とあわせて、実際にいくらかかっているかを見える化します。ここで AWS Cost Explorer と AWS Cost Anomaly Detection の役割が分かれます。
| 機能 | 役割 | 使う場面 |
|---|---|---|
| AWS Cost Explorer | 過去〜現在のコストを可視化・分析・予測。サービス別・タグ別に内訳を見る | 「Bedrock に毎月いくら使っているか」を分析・予算計画 |
| AWS Cost Anomaly Detection | 機械学習でコストの異常な急増を自動検知しアラート | 「ある日突然 Bedrock 料金が跳ねた」を早期に気づく |
| AWS Budgets | 予算閾値を設定し超過時に通知 | 「月 10 万円を超えたら知らせて」 |
Cost Explorer は分析・可視化のダッシュボード、Cost Anomaly Detection は異常の自動検知、AWS Budgets は閾値ベースの予算アラートという棲み分けです。コスト配分タグ(cost allocation tags)を Bedrock を呼ぶリソースに付けておくと、アプリ別・チーム別の内訳を Cost Explorer で追えます。
コード例(出力トークンを制御する)
maxTokens と簡潔指示で出力トークンを抑えます。
Python
import boto3
client = boto3.client("bedrock-runtime", region_name="us-east-1")
resp = client.converse(
modelId="amazon.nova-lite-v1:0",
messages=[{"role": "user", "content": [{"text": "結論だけ一文で答えて"}]}],
inferenceConfig={"maxTokens": 128, "temperature": 0.0},
)
usage = resp["usage"]
print(usage["inputTokens"], usage["outputTokens"]) # トークン消費を計測usage フィールドで入出力トークンを実測でき、これを CloudWatch メトリクスやログに出してコスト傾向を追えます。
試験で問われるポイント
- Cost Explorer と Cost Anomaly Detection の使い分けがひっかけになる。「過去の傾向を分析・予測したい」なら Cost Explorer、「想定外の急増を自動で検知したい」なら Cost Anomaly Detection。「閾値超過で通知」は AWS Budgets
- コスト削減の本質はトークン削減とモデル選定。「常に最高性能モデルを使う」「コンテキストを最大限詰める」はコスト悪化のひっかけ選択肢
- 入力トークンと出力トークンは別単価。RAG で文脈を盛りすぎると入力トークンが支配的になる
- アプリ別・チーム別の按分にはコスト配分タグを付けて Cost Explorer で集計する。これは Bedrock 固有機能ではなく AWS 課金共通の仕組み
サービスの使い分け早見表
| やりたいこと | 使うもの | 混同しやすいもの |
|---|---|---|
| コストを可視化・分析・予測 | AWS Cost Explorer | Cost Anomaly Detection(異常検知専用) |
| コスト急増を自動検知してアラート | AWS Cost Anomaly Detection | Cost Explorer(分析ダッシュボード) |
| 予算閾値を超えたら通知 | AWS Budgets | Cost Anomaly Detection(閾値ではなく異常パターン検知) |
| トークン消費量を実測 | Bedrock の usage / CloudWatch メトリクス | Cost Explorer(金額単位の事後集計) |
まとめ
Bedrock のコスト最適化は、入出力トークンを減らす設計とタスクに見合ったモデル選定が土台です。そのうえで可視化は AWS Cost Explorer、異常な急増の自動検知は AWS Cost Anomaly Detection、予算閾値の通知は AWS Budgets と役割を分けて使います。試験ではこの三者の使い分けと「トークン削減こそコスト削減」という原則が繰り返し問われます。
次のステップ
次のクイズレッスンで、トークン削減の設計判断とコスト可視化サービスの使い分けを問うシナリオ問題に挑戦しましょう。
関連レッスン
- プロンプトキャッシュ・セマンティックキャッシュ(pro-cost-cache)
- レイテンシ・スループット最適化(pro-perf-latency)
- オブザーバビリティとモニタリング(pro-observability)