Gemini APIへのリクエストでエラーコード429「Resource exhausted, please try again later.」

記事タイトルとURLをコピーする

G-genの杉村です。Vertex API 経由で Gemini モデルへ API リクエストを送信する際に、エラーコード 429 で Resource exhausted, please try again later. というエラーが頻繁に発生しました。その原因と対処法を紹介します。

事象

Vertex API 経由で Gemini モデルへ API リクエストを送信した際、エラーコード 429 で Resource exhausted, please try again later. というエラーが発生しました。レスポンス内の status は RESOURCE_EXHAUSTED です。

しばらくして再試行するとリクエストが成功するときがありますが、しばしば同じエラーとなります。

原因

このエラーは、処理のためのリソースが Google 側で枯渇することを防ぐため、Google によって API 利用が制限されていることを意味しています。Google は随時、物理インフラストラクチャを強化していますが、Gemini API は多くのユーザーに利用されているため、しばしばこのメッセージが表示されることがあります。

対処法

3つの対処案

次のいずれかの対処法が考えられます。

  1. アプリケーションにエクスポネンシャルバックオフ(exponential backoff、指数バックオフ)を実装する
  2. Provisioned Throughput(プロビジョニングされたスループット)を購入する
  3. グローバルエンドポイントを利用する

エクスポネンシャルバックオフ

1.エクスポネンシャルバックオフ(指数バックオフ)は、クラウドサービスの API リクエストを使用するアプリケーションを実装する際に一般的な手法です。

エクスポネンシャルバックオフでは、API リクエストがサーバー側エラーや一時的な障害で失敗した場合に、待機時間を1秒、2秒、4秒、8秒...のようにべき乗しながら再試行を繰り返します。

再試行を無限に繰り返さないよう、試行回数が規定の回数に達してもリクエストが成功しない場合、エラー終了させるよう実装します。このようにリトライ回数に上限を設けることを truncated exponential backoff(切り捨て型エクスポネンシャルバックオフ)とも呼びます。

この手法を取ることにより、リージョンで多くのユーザーからの API リクエストが輻輳してリソースが枯渇している場合でも、しばらく待ってから再試行することで、最終的に API リクエストが成功する可能性を高められます。

Provisioned Throughput

2.Provisioned Throughput(プロビジョニングされたスループット)とは、Gemini や Claude の API スループットを事前に予約購入しておき、固定金額で利用する月額サブスクリプションサービスです。

Provisioned Throughput は、事前にモデルとロケーション(リージョン)を指定して購入します。サポートされているモデルは gemini-1.5-flash、gemini-1.5-pro、imagen-3.0-generate-001、Anthropic Claude 3.5 Sonnet などです。対象モデルの一覧は以下のドキュメントを参照してください。

前述のエクスポネンシャルバックオフはリソース枯渇に対する根本的な対処にはなっていませんが、Provisioned Throughput を購入する方法では、従量課金利用よりもリソースが優先して確保されます。重要な本番環境アプリケーションでの Gemini の利用や、月額利用料金を固定したい場合などに利用を検討します。

Provisioned Throughput の詳細は、以下の記事を参照してください。

blog.g-gen.co.jp

グローバルエンドポイント

3.グローバルエンドポイントを使うと、リージョンエンドポイントを使うのに比べて、エラーコード429のリスクを減らすことができます。リージョンを指定しないで Gemini API へリクエストすることで、リソースが空いているリージョンにリクエストが自動的にルーティングされます。

どのリージョンでデータが処理されるかは任意に決定されるため、セキュリティ要件等でデータを処理する地域が厳密に指定されている場合は、この方法は使わないでください。

グローバルエンドポイントの URI は、以下のようになります。

https://aiplatform.googleapis.com/v1/projects/test-project/locations/global/publishers/google/models/gemini-2.0-flash-001:generateContent

杉村 勇馬 (記事一覧)

執行役員 CTO / クラウドソリューション部 部長

元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。