Google Vertex AIでエラーコード429 (Resource Exhausted) が出たのでlocationを`global`に変更した

Tadashi Shigeoka ·  Mon, September 8, 2025

Google Vertex AIのGenerative AIモデルを使って開発を進めていたところ、突然APIリクエストが失敗するようになりました。今回は、その際に遭遇したエラーコード 429 と、その解決策について共有します。

発生した問題

アプリケーションからVertex AIのエンドポイントへリクエストを送った際、以下のようなエラーメッセージが返ってきました。

Failed after 3 attempts. Last error: Resource exhausted. Please try again later. Please refer to https://cloud.google.com/vertex-ai/generative-ai/docs/error-code-429 for more details.

エラーコードは 429、メッセージは “Resource exhausted”(リソース枯渇)とのこと。 最初は単純なリクエスト数の超過かと思い、時間をおいてリトライしましたが、状況は改善しませんでした。

調査と原因の推測

エラーメッセージに含まれるURLを参考に公式ドキュメントを確認すると、エラーコード 429 は以下のいずれかが原因で発生するようです。

  1. プロジェクトのリクエストレートがクォータを超えている。
  2. 特定のリージョンで一時的にリソースが不足している。

今回のケースでは、リクエスト数はそれほど多くなかったため、後者の「特定リージョンでのリソース不足」の可能性が高いと判断しました。 私たちの環境では、APIリクエスト先として us-central1 リージョンを指定していました。

解決策: locationを global へ変更

そこで、APIリクエストのエンドポイントロケーションを変更することにしました。 具体的には、アプリケーションで設定していた環境変数 GOOGLE_VERTEX_LOCATION の値を、以下のように変更しました。

変更前:

GOOGLE_VERTEX_LOCATION="us-central1"

変更後:

GOOGLE_VERTEX_LOCATION="global"

この変更をデプロイしたところ、あれだけ頻発していたエラーコード 429 が嘘のように発生しなくなり、APIリクエストが安定して成功するようになりました。

なぜ global で解決したのか?

公式ドキュメントによると、Vertex AIの生成AIモデルには、us-central1 のようなリージョナルエンドポイントと、global エンドポイントが存在します。

  • リージョナルエンドポイント (us-central1など): そのリージョン内の物理的なコンピューティングリソースでリクエストが処理されます。
  • グローバルエンドポイント (global): リクエストは送信元の場所に基づいて、最も近い利用可能なリージョンにルーティングされます。

今回の場合、us-central1 リージョンで一時的に高い負荷がかかり、リソースが枯渇していたのではないかと推測されます。 global エンドポイントに変更したことで、Googleがトラフィックを他の空いているリージョンへ動的に振り分けてくれるようになり、リソース枯渇の問題を回避できた、というわけです。

まとめ

Google Vertex AIでエラーコード 429 (Resource exhausted) に遭遇した場合、リトライ処理を実装するのはもちろんですが、APIリクエストのロケーション設定を見直すのも非常に有効な手段です。

もし特定のリージョンを指定していて同様のエラーに悩まされている方がいれば、一度 global ロケーションを試してみてはいかがでしょうか。

以上、Google Vertex AIでエラーコード 429 (Resource exhausted) が出たのでlocationをglobalに変更した、現場からお送りしました。

参考情報