この記事では、初期段階のスタートアップ チームが、Microsoft Azure上の AI ワークロードのコストを特定して削減する方法について説明します。 これは、クラウド利用料と評価(eval)セットの両方を同時に担当している創業者、CTO、または最初のエンジニア向けに書かれています。 タグ付けと予算の検疫、4 つの要求パス レバー (キャッシュ、バッチ処理、ルーティング、モデルの選択)、セルフホステッド推論のための GPU の適切なサイズ設定、マルチテナント取得パターン、および専用のプラットフォーム チームなしで実行できる安全な変更ループについて説明します。 各セクションには、該当する スタートアップ向け Azure アーキテクチャ ガイド のステージ(Explore、Expand、または Extract)がタグ付けされているため、まだ発生していない問題に対して最適化してしまうのを避けることができます。
この記事では、以下を行う方法について説明します。
- Azure上の AI ワークロードのトップ コスト ドライバーを特定します。
- コスト最適化レバーをスタートアップ ステージに合わせます。
- プロンプト キャッシュ、セマンティック キャッシュ、バッチ処理、モデル ルーティング、および適切なサイズ設定を適用します。
- 使用量ではなく収益に比例してスケーリングするマルチテナント取得とデータベース パターンを設計します。
- コスト変更を、評価ゲート、予算アラート、テナントごとのレート制限で囲みます。
- コスト管理をDIYで行うやり方では、もはや対応しきれなくなっていることを示す初期兆候を見極めましょう。
前提条件
- 運用、ステージング、または実際のプロトタイプで実行されている少なくとも 1 つの AI ワークロードを含むAzure サブスクリプション。
- 測定するリソースに対する所有者または共同作成者のアクセス許可。
- Azure ポータルを安心して開く。 コスト管理やAzure Monitorに関する以前の経験は必要ありません。 この記事では、関連するページを示します。
- 10 ~ 50 の代表的なプロンプトと予想される動作を備えた、AI 機能用の小さな評価セット。 まだお持ちでない場合は、「関連記事」セクションを参照してください。 午後に最初のバージョンをビルドできます。
スタートアップ企業にとってこれが重要な理由
初期段階のスタートアップの場合、AI コストは運用上のリスクです。 安価な推論により、次の実験のエンジニアリング時間が解放され、アクティブ ユーザーあたりの安定したコストにより、次の請求書ではなく、次の資金調達マイルストーンを過ぎて計画できます。 この記事のパターンは意図的に小さくなります。 それぞれが週末に設立エンジニアによって達成可能であり、プラットフォームや FinOps チームは必要ありません。
Important
開始するために専用の FinOps チームは必要ありません。 コスト削減効果の8割は、初日からあらゆるものにタグを付け、毎週の Cost Management レビューの責任者を1人決め、この記事で紹介する施策を段階順に適用することで得られます。 正式な FinOps ツールとプロセスは、1 か月あたり約 50,000 ドルを超えた後、または 5 つ以上の異なるワークロードをカバーした後にのみ取り込みます。
AI コストが従来のクラウド コストと異なる理由
従来の Web アプリでは、毎月の請求額は VM、データベース、エグレスによって占められます。 通常、サービスを提供するユーザーの数を把握することで、10% 以内に予測できます。 AI ワークロードは、その直感を損ないます。 同じユーザーは、コンテキストの長さ、取得の深さ、要求がルーティングされたモデルに応じて、1 分 $0.001 と次の 0.40 ドルのコストがかかります。
Azureでは、ほとんどの AI 製品で 4 つのコスト形状が繰り返されます。
- トークンの支出は 、ユーザー数ではなく、コンテキストの長さでスケーリングされます。 単純な検索拡張生成(RAG)のプロンプトは、製品に1回変更が入るだけで、800トークンから12,000トークンまで膨れ上がる可能性があります。
- GPU アイドル時間 は、セルフホステッド推論の最大の隠れコストです。 A100 を夜間に実行したままにした場合、小規模な Postgres データベースのコストは 1 か月以上になります。
- 検索データベースとベクターデータベースからの検索のファンアウトが増大します。 すべてのチャット ターンで、ログに表示されない 3 ~ 8 個の非表示クエリが発行される場合があります。
- モデルアーティファクト、埋め込み、監査ログ、テナントごとのインデックスによって、エグレスとストレージがゆっくりと進みます。
各コストドライバーには、決まった一連のレバーがあります。 残りのセクションでは、各施策を優先順位順に説明し、それぞれが適用される導入段階を付記しています。これにより、チームはまだ直面していない問題に対して過剰設計せずに済みます。
Tip
アーキテクチャの Azure Well-Architected Framework のコスト最適化ガイダンスを使用して、投資収益率 (ROI) を維持および改善します。
ステージマップ:どのレバーがどこに属するか
スタートアップ企業向けの Azure アーキテクチャ ガイドでは、製品開発の 3 つの段階 (探索、展開、抽出) について説明しています。 この記事のコスト最適化レバーは、これらの段階に合わせて調整されます。 次の表を使用して、現在チームに適用されるセクションと延期するセクションの範囲を指定します。
| 段階 | 人数 | 主なコスト目標 | 成果につながる施策 |
|---|---|---|---|
| 詳細を見る | 1- 10 人のエンジニア | オプションと速度 | タグ付け、プロンプト キャッシュ、安価な既定のモデル |
| 拡張する | 10~50人のエンジニア | 収益に比例してコストが増える構造をやめる | セマンティック キャッシュ、ゼロへのスケール、ルーティング、Batch API |
| 抽出 | 50 人を超えるエンジニア | マージン、予測可能性、FinOps | 予約、専用インデックス、量子化、テナントごとの価格 |
最もコストの高い要因を特定する
何かを最適化する前に、実際にお金がどこに向かっているのかをフラットに見ることができます。 Azureでは、最も高速なパスは、過去 30 日間のサービスとタグでグループ化された Cost Management です。
1 日目からすべてをタグ付けする
タグ付けは、コストの可視性のための最も高いレバレッジのプラクティスです。 一貫性のあるタグがないと、テナント、機能、または環境に支出を属性付けすることはできません。 スタートアップ スケール ランディング ゾーン (SSLZ) リファレンスでは、ランディング ゾーン ポリシー レベルでタグ付けが適用されます。 AI リソースにも同じアプローチを使用します。
costCenter = product | platform | research
tenant = <customer-id> | shared
workload = inference | embedding | training | eval
env = prod | staging | dev
team = <owning-team>
最初に確認する場所
| 原価要因 | 検索する場所 | 請求額に占める一般的な割合 |
|---|---|---|
| トークン (LLM API) | Azure OpenAI メトリック > 処理済みプロンプト/完了トークン | 30 から 60% |
| GPUs | SKU 別の VM/AKS ノード時間 (ND、NC、NV ファミリ) | 20 から 50% |
| ベクトル/検索 | AI Search クエリ ユニット、Cosmos DB RU/s | 5 から 20% |
| Storage | モデル アーティファクト向けの Blob Storage、Azure Files、Azure Container Registry | 3 から 10% |
| Egress | リージョン外の帯域幅(特にクラウド間呼び出し) | 2 から 15% |
Cost Management を毎日ストレージ アカウントにエクスポートし、既存の分析スタックに接続します。 アクティブ ユーザーあたりのコストの週単位のグラフは、最適化が意図した効果を持っていたという信頼できるシグナルです。
レバー 1: キャッシュ、バッチ処理、ルーティング、モデルの選択
段階: 抽出を調べる。 Explore でのキャッシュから開始し、展開でルーティングとバッチを追加し、[抽出] でテナントごとに詳細なモデルの選択を追加します。
Tip
ソース コンテンツ ハッシュによってキー付けされたキャッシュ埋め込みでは、GPT-4o mini やオープン ウェイト 7B から 13B モデルなどの、より小さく安価なモデルを使用して、最初のパスの分類または抽出を行います。 小さなモデルが不明な要求に対してのみ、フロンティア モデルにエスカレートします。 多くの場合、このパターンだけで推論コストが 60 ~ 80% 削減され、日常的なクエリで測定可能な品質が失われるわけではありません。
Caching
- プロンプト キャッシュ: Azure OpenAI では、1,024 トークン以上のプロンプトに対して、繰り返し使われるプレフィックスに自動的に割引料金を適用します。この機能は GPT-4o 以降のモデルでサポートされています。 最初の 1,024 個のトークンはキャッシュにヒットする場合と同じである必要があるため、システム プロンプトとツール定義は安定した状態に保ちます。
- Semantic cache: Azure Cache for Redis または Cosmos DB に埋め込みと応答のペアを格納します。 新しいクエリのコサインの類似性が約 0.95 を超える場合に、キャッシュされた応答を返します。
- 出力キャッシュ: FAQ や決定論的ツールなどのパーソナライズされていないエンドポイントの場合、単純な Time to Live (TTL) キャッシュによってトラフィックが 30 ~ 80% 削減されます。
Batching
埋め込みと分類のジョブが明らかな候補です。 Azure OpenAI Batch API では、夜間インデックスの更新、エバリュエーターの実行、非同期要約など、最大 24 時間待機できるジョブに対して 50% の割引が提供されます。
経路選択
ほとんどの製品では、すべての呼び出しで最もコストの高いモデルは必要ありません。 ルールベースまたは学習済みのルーターは、測定可能な品質低下なしで、トラフィックの 60 ~ 80% を安価なモデルに送信できます。
| Pattern | 低コスト経路 | コストの高いパス |
|---|---|---|
| 意図の分類 | GPT-4o mini または Phi-4 | 曖昧なリクエスト向けの GPT-4o |
| ツールの使用または関数呼び出し | 中間層モデル | 再試行時の最上位層モデル |
| 長いコンテキストの要約 | 中間層モデルを含むスライディング ウィンドウ | フルコンテキストの最高位モデル |
| コード生成 | 定型句の中間層モデル | リファクタリング用の最上位層モデル |
モデルの選択
四半期ごとにモデルの選択を再評価します。 価格と品質は速く動く。 6か月前には唯一の選択肢だったモデルも、今では、あなたの評価で1〜2ポイント差に収まる新しいSKUより5倍高額になっている可能性があります。
レバー 2: 自動スケーリングを使用した適切なサイズのインフラストラクチャ
段階: 展開して抽出します。 Explore では、App Service、Container Apps の従量課金、または Azure OpenAI Service などのサーバーレスまたはサービスとしてのプラットフォーム (PaaS) を使用し、このレバーはスキップします。
Azure Kubernetes Service (AKS) または Container Apps で vLLM、Triton、または Text Generation Inference (TGI) を使用して推論をセルフホストする場合、2 番目に大きなレバーは GPU がアイドル状態でないことを確認することです。
アイドル状態のワークロードをゼロまでスケールする
GPU ワークロード プロファイルを使用して Container Apps で minReplicas: 0 を設定するか、AKS の水平ポッド自動スケーリング (HPA) または KEDA を使用して、要求が進行中でない場合にノード プールをゼロにスケーリングします。 コールドスタートは通常、数十秒かかるのが一般的です。 モデルでベンチマークを行い、ユーザー向けの待機時間が重要な場合は、営業時間中に 1 つのウォーム レプリカを保持します。
モデル サイズに合った GPU SKU の適切なサイズ
GPU クラスをパラメーター数に一致させます。 T4 または L4 は、約 13B のパラメーター以下のモデルで十分です。 A100 または H100 が費用対効果に見合うのは、約340億パラメータを超えるモデル、または継続的に高いクエリ/秒(QPS)がある場合に限られます。 Container Apps サーバーレス GPU は現在、T4 と A100 をサポートしています。 L4 と H100 には AKS が必要です。
バーストトレーニングとバッチジョブを見つける
夜間の評価、埋め込みの更新、オフライン要約は、通常オンデマンド型より60~80%安価なスポットノードプールで実行します。 本番推論を専用キャパシティで維持してください。 次の表は、自動スケール戦略とその一般的な節約をまとめたものです。
Caution
スポット キャパシティは、最短で 30 秒前の通知で回収されることがあります。 バッチ回避、埋め込み更新、オフライン要約、頻繁なチェックポイントを使用した微調整など、チェックポイント処理や再起動が可能な作業にはスポットのみを使用します。 再起動ロジックなしで、ユーザー向けの推論やジョブをその場で配置しないでください。
| Strategy | どのように | 一般的な節約 |
|---|---|---|
| ゼロにスケーリングする |
minReplicas: 0 GPU ワークロード プロファイルを使用する Container Apps の場合。 コールドスタートは通常、数十秒かかるのが一般的です。 お使いのモデルでベンチマークを実行します。 |
最大 90% |
| キュー深度に基づくKEDA | CPU ではなく、Service Bus またはキューのメッセージに基づいてスケーリングします。 | 30 から 60% |
| 適切なサイズの SKU | 13B 未満のパラメーターを持つモデルの場合は T4 または L4。 A100 または H100 は、34B を超えるパラメーターまたは高い QPS を持つモデルに対してのみ使用できます。 Container Apps サーバーレス GPU では現在、T4 と A100 のみがサポートされています。 L4 と H100 には AKS が必要です。 | 40 から 70% |
| スポットキャパシティ | バッチおよび評価用のスポット ノード プール。 運用環境のオンデマンド容量。 | 40 から 80% |
| 量子 化 | AWQ または GPTQ の 4 ビット量子化により、より小さな GPU 上の大規模なモデルに適合します。 | 30Bを16 GBに収める |
Note
チャット画面でゼロにスケーリングすると、コールド スタートの待機時間が表示されます。 一般的なパターンは、営業時間中に 1 ~ 2 個のウォーム レプリカを保持し、夜間にゼロにスケーリングすることです。
レバー 3: 取得コストの急増のないマルチテナント パターン
段階: 遅延展開と抽出。 Explore では、ほぼ確実に 1 つのテナント (自分) があります。 少なくとも 3 人の実際の顧客が得られるまで、このセクションをスキップします。
シングルテナント プロトタイプに対して取得とデータベース パターンが選択された場合、マルチテナント AI 製品は大規模に失敗します。 3 つのパターンが繰り返されます。
テナントごとに 1 つのインデックスと、フィルターを使用した共有インデックス
テナントごとに専用の AI Search インデックスを使用すると、クリーンな分離が実現されますが、アイドル状態の場合でも、すべてのインデックスに対して料金が発生します。 テナント フィルターを使用する共有インデックスは、小規模および中規模ではるかに安価です。 エンタープライズレベル専用に切り替えるか、テナントが定義されたサイズのしきい値を超えたときに切り替えます。
ベクター データベースの選択
既存のインフラストラクチャとスケールに基づいてベクター ストアを選択します。 次の表は、各オプションが適合するタイミングをまとめたものです。
Warning
ベクター インデックスまたはその基になるストアを削除することは元に戻すことができません。大規模なコーパスを再埋め込みすると、モデル呼び出しに数百から数千ドルのコストがかかり、エンジニアリング時間が数時間かかる場合があります。 ベクター ストアに破壊的変更を行う前に、ソース ドキュメントのスナップショットを作成し、再埋め込みパイプラインが小さなサブセットでエンドツーエンドで実行されていることを確認します。
| Option | 最適な用途 | コスト構造 |
|---|---|---|
| Azure AI 検索 (ベクトル) | ハイブリッド検索とファセット | 各レプリカで予測可能 |
| Cosmos DB (ベクター) | アプリ データに Cosmos DB を既に使用している Teams | RU/s、QPS に応じてスケールする |
| Postgres の pgvector | 小規模または中規模のコーパス、単純な操作 | VM単位で、非常に低コスト |
| 専用ベクター データベース | 100M以上のベクトル、高いリコールニーズ | ノードごと、コストが高い |
見えにくい N+1 取得を回避する
searchを呼び出すエージェント ステップはすべて課金対象のクエリです。 ユーザーの各ターンごとにログ取得の呼び出し回数を記録し、中央値が予算を超えた場合にアラートを出します。 適切な開始ターゲットは、ターンあたり 2 つ以下の取得です。 リランカーとリライターは、意図せずトラフィックを二重に発生させやすい箇所です。
ガバナンス: コストの変更を安全に保つ
段階: すべてのステージ。 予算、デプロイ前の 1 行の評価チェック、1 つのレート制限を含む軽量バージョンは、1 日目から Explore に属しています。 API Management の CI ブロックの評価ゲートとテナントごとのレート制限を含む、より重いバージョンは、Expand 以降に属します。
品質を低下する最適化は最適化ではありません。 これは停止です。 すべてのコスト変更を 3 つのガードレールでラップします。 各ガードレールは、1 人のエンジニアが 1 時間以内にセットアップできます。
- 評価チェック: プロンプト、モデル、またはルーティングの変更をデプロイする前に、eval セットを実行します。 初期段階では、このチェックは手動で実行するスクリプトにすることができます。 100 ポイントスケールの 1 ポイントなど、スコアが許容範囲を超える場合はデプロイをブロックするか、元に戻します。
- 予算アラート: リソース グループごとに Azure Cost Management の予算を設定し、50%、80%、100% でアラートが発生するようにします。 エラー通知を受け取る同じ Slack または Teams チャネルにルーティングするため、支出とインシデントは同じ場所に配置されます。
- 要求レート制限: API Management、NGINX、またはゲートウェイの IP または API キーごとの上限が 1 つであっても、1 つのランナウェイ クライアントが一晩でクレジット残高を空にするのを防ぐことができます。 後で有料の顧客がいる場合は、テナントごとの上限を追加します。
複数のコスト最適化を 1 つのリリースにバンドルする場合は注意してください。 変更セットがまとめて入ると、原因の特定が難しくなり、リグレッションを二分探索で切り分けるコストも高くなります。
二本レバー実験:実施前後を比較する方法
開始する場所を決定する場合は、前のセクションから 2 つのレバーを選択し、機能フラグの後ろにそれらを発送し、7 ~ 14 日間測定します。 意味のある動きを検出するには、2 つのレバーで十分です。 2 つを超えると、属性の信頼性が低下します。
ステージ別の最初の推奨ペア
| 段階 | レバー A | レバー B |
|---|---|---|
| 事前起動 (<100 DAU) | プロンプト キャッシュ | 低コストの既定モデルを使用したモデル ルーティング |
| 初期のトラクション(100〜10k DAU) | セマンティック キャッシュ | 推論時のゼロまでのスケーリング |
| 大規模(DAU 1万以上) | 非同期作業用の Batch API | テナントごとのインデックス戦略 |
| Enterprise レベル | 上位アカウントの専用インデックス | L4 または H100 の量子化モデル |
Baseline window: 2026-04-15 to 2026-04-28 (14 days)
Treatment window: 2026-05-01 to 2026-05-14 (14 days)
Levers shipped: 1) semantic cache on /chat
2) scale-to-zero on vLLM
Metrics:
cost_per_active_user (target: down 30%)
p95_latency_ms (guardrail: +<= 150 ms)
eval_score_delta (guardrail: >= -1.0)
Decision rule: Keep both if all guardrails hold. Otherwise, revert and ship one at a time.
この記事で説明する内容と取り扱わない内容
この記事は意図的に範囲指定されています。 次のセクションでは、スコープ内のトピック、スコープ外のトピック、およびそれらを追加するタイミングを示すシグナルを示します。
対象範囲
- 任意のスタートアップに適したタグ付け、予算、コスト管理のプラクティス。
- 4 つの要求パス レバー:キャッシュ、バッチ処理、ルーティング、モデルの選択。
- セルフホステッド推論のための GPU の適切なサイズ設定とゼロへのスケーリング。
- 3 ~ 100 の有料テナントを持つ製品のマルチテナント取得パターン。
- 安全な変更ガバナンス ループ: 評価ゲート、予算アラート、テナントごとのレート制限。
対象範囲外
| トピック | 追加するタイミング |
|---|---|
| AI コンピューティングの予約と節約プラン | 推論料金は90日間一定で、通常は mid-Expand 時です。 |
| Apptio Cloudability、Vantage、同様のツールなどの専用 FinOps ツール | クラウドの支出が 1 か月あたり約 50,000 ドルを超えているか、マルチクラウドを運用しています。 ほとんどの初期段階のスタートアップでは、これを必要としません。 |
| エンドユーザーごとのカスタム トークンベース課金 | 従量課金制を採用している、または1つのテナントが請求額の25%を超えている。 |
| DeepSpeed や FSDP チューニングなどのトレーニング コストの最適化 | 社内でモデルをトレーニングします。 推論優先の製品では、これを必要としません。 |
| リージョン間または複数クラウドのコストアービトラージ | あなたは、実証済みの単一地域経済学を持つ Extract ステージにいます。 |
このアプローチで十分ではなくなった場合
この記事のプラクティスは、独自のクラウドを実行する小規模なチーム向けに設計されています。 ある時点で、あなたのビジネスはそれらを上回ります。 次のシグナルは失敗ではありません。 彼らこそ成長です。 2つ以上当てはまる場合は、専用のツールを導入するか、パートタイムのプラットフォーム担当者を置くことを検討してください。
- 毎月のAzure支出は約 50,000 ドルを超え、AI はその 30% を超えています。
- 10 人以上のエンジニアが、コストを 5% 以上移動する変更を出荷できます。
- 少なくとも 1 人の顧客が 1 か月あたり 10,000 ドルを超え、定額料金を支払っています。
- 投資家または財務パートナーは、毎月のコスト予測の要求を開始しました。
- 製品は、複数のAzureリージョンまたはクラウドで実行されます。
それまでは、タグ、予算、評価ゲート、毎月のレビューなど、この記事の軽量ループが適切なツールです。 企業の FinOps ツールを早期に導入する誘惑に抵抗します。 これは、値を追加する前にプロセスのオーバーヘッドを追加します。
参照チェックリスト
毎月のレビュー チェックリストとして、次の項目を使用します。 各項目は、この記事のセクションにマップされます。
- すべての AI リソースには、
costCenter、tenant、workload、およびenvでタグ付けされます。 - Cost Management ダッシュボードが存在し、タグ別にグループ化され、毎週確認されます。
- システム プロンプトは、プロンプト キャッシュ ヒットに対して十分な安定性を備えています。
- 埋め込み、回避、サマリーなどの非同期作業は、Batch API で実行されます。
- ルーターは、少なくとも 60% のトラフィックを、評価回帰なしで安価なモデルに送信します。
- GPU ワークロードは、業務時間外にはゼロまでスケールダウンするか、バッチ処理にはスポットインスタンスを使用します。
- ターンごとの取得数の中央値は 2 つ以下です。
- マルチテナント戦略は、フィルター付き共有または専用から明示的に選択されます。
- 予算とテナントごとのレート制限が適用されます。
- すべてのプロンプト、モデル、またはルーティングの変更は、マージの前に評価ゲートを実行します。