◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/API / SDK
◈ API / SDK/2026-06-22上級

Gemini API × Google Cloud 本番エラーを層で切り分ける診断手順

Gemini APIをGoogle Cloud本番環境で運用する際のエラーを体系的に診断。IAM権限・Vertex AI vs AI Studio・VPC・クォータ管理・サービスアカウント設定まで、実装コード付きで完全解説します。

Gemini API248Google Cloud5Vertex AI12IAM本番環境6トラブルシューティング34

✦ プレミアム記事

個人開発で Dolice Labs の複数サイトを Google Cloud 上で回していると、ローカルでは何ごともなく動いていた Gemini API が、本番に出した途端に 403 や 429 を返して止まる——という場面に何度も出くわしてきました。私自身、IAM のロール一つ、サービスアカウントの鍵一つで半日を溶かした経験があり、そのたびに「エラー文字列から原因の層を一発で切り分ける手順」を手元に積み上げてきました。ここからは、本番特有のエラーを認証・ネットワーク・クォータ・モデル非推奨の層に分けて、診断ステップと動くコードで一つずつ潰していきます。

Gemini API の2つのエントリーポイントと本番での選択基準

Gemini API には大きく2つのアクセス経路があります。この違いを理解していないと、本番環境での設定ミスに直結します。

Google AI Studio API(generativelanguage.googleapis.com)

  • APIキーで認証する、シンプルな REST API
  • 迅速なプロトタイピングや個人プロジェクト向け
  • VPC Service Controls や組織ポリシーの適用対象外
  • エンタープライズレベルの SLA なし

Vertex AI Gemini API(aiplatform.googleapis.com)

  • サービスアカウント / OAuth2 で認証する
  • エンタープライズ向け:SLA・監査ログ・VPC対応・CMEK 対応
  • IAM による細かなアクセス制御が可能
  • リージョン指定でデータ所在地のコンプライアンス対応が可能

本番環境には Vertex AI を推奨します。 理由は、組織のセキュリティポリシー・コンプライアンス要件に対応できること、IAM で最小権限の原則を実装できること、VPC 内でのプライベートネットワーク接続が利用できること、そして Cloud Monitoring / Cloud Logging との統合ができることです。

IAM・サービスアカウントエラーの診断と修正

よくあるエラー:PERMISSION_DENIED

google.api_core.exceptions.PermissionDenied: 403 Permission 'aiplatform.endpoints.predict' denied

このエラーは IAM ロールが不足していることを意味します。

必要な IAM ロールの確認:

# 現在のサービスアカウントに割り当てられたロールを確認
gcloud projects get-iam-policy YOUR_PROJECT_ID \
  --flatten="bindings[].members" \
  --filter="bindings.members:serviceAccount:YOUR_SA@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
  --format="table(bindings.role)"

Vertex AI Gemini API に必要な最小限のロール:

  • roles/aiplatform.user:Vertex AI エンドポイントへの推論リクエスト送信
  • roles/ml.viewer:モデルの一覧・詳細確認(任意)

ロールの付与:

gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member="serviceAccount:YOUR_SA@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"

よくあるエラー:サービスアカウントキーが見つからない

本番環境では、サービスアカウントキー JSON ファイルをアプリケーションに同梱するのはセキュリティ上推奨されません。代わりに Workload Identity Federation や Application Default Credentials(ADC)を活用しましょう。

ADC を使った認証(推奨):

import vertexai
from vertexai.generative_models import GenerativeModel
 
# Cloud Run / GKE / Compute Engine 上では、
# サービスアカウントが自動的に使用される
# GOOGLE_APPLICATION_CREDENTIALS 環境変数の設定は不要
vertexai.init(project="YOUR_PROJECT_ID", location="us-central1")
model = GenerativeModel("gemini-2.0-flash-001")
 
response = model.generate_content("日本語で挨拶してください")
print(response.text)

ローカル開発では gcloud の認証情報を使用:

# ローカルマシンで ADC を設定
gcloud auth application-default login
 
# 特定のサービスアカウントを偽装してテストする場合
gcloud auth application-default login \
  --impersonate-service-account=YOUR_SA@YOUR_PROJECT_ID.iam.gserviceaccount.com

サービスアカウントの偽装エラー

google.auth.exceptions.TransportError: Unable to fetch token

このエラーはしばしば、サービスアカウントの偽装(impersonation)の権限不足が原因です。

偽装元のアカウントに roles/iam.serviceAccountTokenCreator ロールが必要です。

gcloud iam service-accounts add-iam-policy-binding \
  TARGET_SA@YOUR_PROJECT_ID.iam.gserviceaccount.com \
  --member="user:YOUR_EMAIL@example.com" \
  --role="roles/iam.serviceAccountTokenCreator"
✦

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

この記事の続きを読む

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

この記事で得られること
✦本番特有のエラーを認証・ネットワーク・クォータ・モデル非推奨の4層に切り分ける診断フロー
✦起動時 preflight で非推奨モデルを検知し、停止日をまたいでも後継へ自動フォールバックする実装
✦IAM 最小権限・VPC-SC・クォータ超過の典型エラーを動くコードで一つずつ解消する手順
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

◈ API / SDK2026-10-14
config に「Extra inputs are not permitted」が出たら、キーの綴りを一つずつ疑います
google-genai SDK で config を渡した途端に pydantic の ValidationError(extra_forbidden)が出る原因は、ほぼ綴りの一字違いです。手元で再現した出力と、呼び出し前に怪しいキーを洗う関数、text が None になる場合の見分け方を書き残します。
◈ API / SDK2026-05-21
responseSchema の enum 指定なのに違う文字列が返る — Gemini API で起きる原因と回避策
Gemini API の responseSchema で enum を指定したのに許可値以外の文字列が返る現象を、最小再現コードから原因まで掘り下げます。プロンプトへの許可値明示、受け取り側のバリデーションとリトライ、SDK バージョン差の確認という3つの対処を示します。
◈ API / SDK2026-05-15
Gemini API Embedding で詰まった3か所 — 壁紙アプリのカテゴリ自動分類で踏んだエラーと対処
Gemini API の Embedding をカテゴリ自動分類に組み込んで踏んだ INVALID_ARGUMENT・429・精度不足の3点を、次元の固定・切り詰め後の正規化・チェックポイント付きバッチ・recall@5 の計測台という形で整理した記録です。