コンテンツへスキップ
Supastack
JA
テーマ
ログインSupastack を入手
すべての記事

商用AI SaaSアーキテクチャ設計:ストリーミング・予算管理・BYOK

本格的なAI SaaSの必須基盤:Server-Sent Events (SSE) による高速ストリーミング、AES-256-GCM暗号化BYOK、トークン予算制御、プロバイダー障害時フェイルオーバー。

Noah Zixin Zhang約 3 分で読めます

トークン予算とBYOKを備えた本番AI SaaSの設計方法は?

課金モデルやユーザー階層によりますが、本番AI基盤には4つの要素が必須です:自動再接続を備えたSSEエッジストリーミング、PostgreSQLでのAES-256-GCM暗号化BYOK保管、API呼び出し前の2段階トランザクション予算仮押さえ、OpenAIとAnthropic間の自動フェイルオーバーです。supastackはこのアーキテクチャを標準装備し、ワークスペースごとの利用制限とリアルタイムコスト追跡を可能にしています。

Server-Sent Events (SSE) によるストリーミングとハートビート

商用AIアプリの構築において、従来の単一JSONレスポンスは適していません。LLMが回答全体を出力するまで数秒から数十秒かかるため、体感速度と離脱防止にはストリーミングが不可欠です。

HTTP/2上のServer-Sent Events (SSE) は最適な手段です。WebSocketに比べてファイアウォールを問題なく通過し、標準の認証ヘッダーが使え、ネットワーク切断時もブラウザが自動再接続します。Next.jsのエッジルートでTransformStreamを使いつつ、定期的に空のハートビート(: ping\n\n)を送出することで、ロードバランサーによる接続切断を防ぎます。

AES-256-GCMによる暗号化BYOK (Bring-Your-Own-Key) 保管庫

大口顧客やヘビーユーザーは、自身が契約しているOpenAIやAnthropicのAPIキーをそのまま使えるBYOK機能を求めることが多くあります。

顧客のAPIキーを平文で保存するのは重大なセキュリティリスクです。専用テーブルにて、AES-256-GCMと初期化ベクトル(IV)、認証タグを用いて暗号化して保存します。キーはAIモデル呼び出しの直前にサーバーメモリ上でのみ復号され、ログやクライアント側には一切露出させません。

2段階トークン予約による請求事故・過剰消費の防止

AI SaaS運営において最大の財務リスクは未払いによる損失です。バグによる無限ループや悪意あるスクレイピングによって、気付かないうちに高額なAPI利用料が発生する恐れがあります。

これを防ぐため、2段階のトークン予約プロトコルを採用します。LLM呼び出し前に最大想定トークン数を算出し、DBトランザクションで月間予算から枠を仮押さえします。上限を超える場合は即座にHTTP 429でリクエストを遮断します。ストリーミング完了後に実際のトークン消費数を確定し、余剰枠を解放します。

マルチプロバイダーフェイルオーバー:OpenAIとAnthropicの自動切り替え

単一のAIプロバイダーだけに依存すると、障害時のダウンタイムを回避できません。OpenAIやAnthropicはピーク時にレート制限(HTTP 429)や一時的なサーバーエラー(HTTP 503)を起こすことがあります。

本番アーキテクチャでは、モデルプロバイダーを統合インターフェースで抽象化します。gpt-4oへのリクエストが制限やタイムアウトに達した場合、指数バックオフで再試行しつつ、自動的にclaude-3-5-sonnetなどの代替モデルへフェイルオーバーします。ユーザーにエラーを見せることなく、高可用性を維持できます。

次のプロダクトは、ここから。

一度の支払いで、収益を生む製品を作り続ける。