GEMINI LABEN
MEMORY — Memory Bank の Memory Profiles が GA になりました。静的スキーマの構造化プロファイルにより、セッション中の検索を挟まずに情報へ到達できますSCOPE — プロファイルは取り込み時のスコープごとに分離され、スキーマとスコープの組み合わせに対して単一のプロファイルが維持されますINGEST — IngestEvents API が GA になり、イベントのストリーミング・メモリのリビジョン管理・メタデータの付与が扱えるようになりましたAUDIO — gemini-3.1-flash-tts-preview が streamGenerateContent 経由のストリーミングに対応し、読み上げ開始までの待ち時間が縮みましたCLASSROOM — 8月10日から、既にアクセス権を付与されている K-12 と高等教育の全年齢の学生が Gemini in Classroom を利用できるようになりますSUNSET — 停止日が迫っています。8月17日に画像生成モデル、20日に Grok 4.1 ファミリー、31日に gemini-robotics-er-1.6-preview ですMEMORY — Memory Bank の Memory Profiles が GA になりました。静的スキーマの構造化プロファイルにより、セッション中の検索を挟まずに情報へ到達できますSCOPE — プロファイルは取り込み時のスコープごとに分離され、スキーマとスコープの組み合わせに対して単一のプロファイルが維持されますINGEST — IngestEvents API が GA になり、イベントのストリーミング・メモリのリビジョン管理・メタデータの付与が扱えるようになりましたAUDIO — gemini-3.1-flash-tts-preview が streamGenerateContent 経由のストリーミングに対応し、読み上げ開始までの待ち時間が縮みましたCLASSROOM — 8月10日から、既にアクセス権を付与されている K-12 と高等教育の全年齢の学生が Gemini in Classroom を利用できるようになりますSUNSET — 停止日が迫っています。8月17日に画像生成モデル、20日に Grok 4.1 ファミリー、31日に gemini-robotics-er-1.6-preview です
記事一覧/API / SDK
API / SDK/2026-04-26上級

マルチテナント SaaS で Gemini API を安全に提供する設計 — テナント分離・課金計測・暴走防止の本番アーキテクチャ

Gemini API を複数テナントに販売する SaaS で、APIキー漏洩・無限ループによる暴走・他テナントの巻き添え障害を防ぐための実装パターンを、Python のコード付きでまとめました。

Gemini API207マルチテナント3SaaS11本番運用49課金4アーキテクチャ14

プレミアム記事

個人開発で Gemini API をバックエンドに使った SaaS を運用していて、最初に冷や汗をかいたのは「ある1社が無限ループで自分のテナントを叩き続けた結果、その日のうちに私の Cloud Billing が4桁ドルに到達した」夜のことでした。

幸い検知できたのは、Cloud Billing アラートではなく、Slack に流していた1リクエストごとのコストログでした。アラートは翌朝届きました。本記事は、個人開発でこの規模の運用に一人で向き合ってきた私自身が、あの夜の自分に渡したかったマルチテナント設計の地図です。

シングルテナント(1社1インスタンス、1社1APIキー)の運用とは、考えるべきことが大きく変わります。「テナントを跨いだ巻き添え障害を起こさない」「テナントごとの利用量を、月末の請求と紐づくレベルで正確に取る」「想定外のトラフィックでコストが指数関数的に膨らんだ瞬間に止める」——この3点をどう設計するかが、SaaS としての耐久力を決めます。

なお、本記事は Gemini API の REST 呼び出しを Python の google-genai SDK 経由で行う前提で書きますが、設計思想はどの言語でも変わりません。

なぜ Gemini API のマルチテナント化は難しいのか

「自前のキャッシュサーバーを複数テナントで共有する」程度のマルチテナント化と、AI API のマルチテナント化には決定的な違いがあります。

第一に、1リクエストの単価がテナントごとに大きくぶれることです。同じ「メッセージ送信API」でも、テナントAは300トークンの問い合わせ、テナントBは80万トークンの長文要約を投げてくる、ということが普通に起こります。テナントごとの「トラフィック量(リクエスト数/秒)」だけでは利用量を測れません。「投入トークン数」「出力トークン数」「使用モデル」の3軸で記録する必要があります。

第二に、APIキー(プロジェクト)が単一であるため、ある1テナントの暴走が全テナントに波及することです。Google AI Studio キー(generativelanguage.googleapis.com)の場合は1分あたりのRPM制限が、Vertex AI の場合は1分あたりのトークン上限が、プロジェクト全体に対して効いてきます。テナントBが秒間100リクエストを撃ち続けると、テナントAは静かに 429(または DEADLINE_EXCEEDED)を返され続けることになります。

第三に、コストの暴走が即座に金銭的損失になることです。たとえばユーザー入力をそのまま LLM に渡す素朴な実装で、ユーザーが「無限ループするスクリプト」を書いた瞬間、Gemini 2.5 Pro なら数時間で4桁ドル、Gemini 2.5 Flash でも油断はできません。「フェイルセーフはコード側でやるしかない」のが現実です。

設計判断その1: テナント分離モデルの選択

最初に決めるのは「どこでテナントを分けるか」です。私が経験した3パターンを比較します。

  • Aプラン: 完全共有(1プロジェクト・1APIキー) — もっとも安価でデプロイも簡単。ただし、ある1テナントが Gemini API のクオータを食い尽くすと、全テナントが影響を受ける。レート制限・課金計測は完全にアプリ側の責任。
  • Bプラン: テナントごとに Google Cloud プロジェクトを分ける — クオータが物理的に分離される最も堅牢な構成。ただし、プロジェクトの自動プロビジョニングや課金アカウントの紐付けが運用上重い。テナント数が10を超え始めると現実的でありません。
  • Cプラン: BYOK(Bring Your Own Key) — テナント自身に Google AI Studio キーを発行してもらい、預かる構成。テナントの請求書は Google から直接届くため、サービス提供側のコスト責任が消える。ただし、APIキーの暗号化保管・ローテーション機構が別途必要。

私の推奨は、立ち上げ期は A プラン+アプリ側で厳密なテナント別レート制限・課金計測、月間利用額が一定を超えるテナントには C プラン(BYOK)を提案、です。 多くの SaaS で B プランは過剰な投資になります。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
テナント別トークンバケットと月予算ガードを組み合わせ、1社の暴走が全テナントに波及しない分離設計を実装できます
request_id を背骨に、usage_records テーブルとマテリアライズドビューでリクエスト粒度の課金計測と監査を構築できます
FastAPI への組み込み例・偽 Gemini クライアントによるテスト・サブテナント/PII 対応まで、本番運用の落とし穴を回避できます
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-04-26
Gemini API × Stripe で組む AI SaaS 課金 — 使用量ベースの本番実装ガイド
Gemini API を使った個人開発 SaaS で「使った分だけ請求する」課金システムを Stripe Metered Billing と Webhook で本番実装する完全ガイド。トークン計測・サブスク同期・ティア別ゲーティング・落とし穴まで網羅します。
API / SDK2026-07-27
消えないプロンプト資産をたたむ — 静的参照だけでは見えない稼働経路を炙り出す退役台帳
一本化したはずの旧プロンプトが毎日呼ばれていました。静的参照・フラグ既定値・観測窓・モデル停止日・キャッシュ実効率を突き合わせる退役台帳を組み、実行結果から設計の勘所をまとめます。
API / SDK2026-06-26
Gemini API の月額上限に当てた瞬間、有料ユーザーまで止まる — Project Spend Caps の影響範囲をプロジェクト分割で閉じ込める
Project Spend Caps はプロジェクト全体を一度に止めます。無料ユーザーの暴走が有料ユーザーを巻き込まないよう、上限の影響範囲をティア別プロジェクトで分離し、約10分の遅延を埋めるソフト予算ゲートを実装する設計メモです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →