API に応じて、 1 日あたりのリクエスト数、1 分あたりのリクエスト数、またはユーザーごとの 1 分あたりのリクエスト数などを制限することで、リクエストの上限を明示的に設定できます。
これらは API 固有の使用上限です。たとえば、無料枠を超えた使用量について課金されるのを防ぐために、1 日あたりのリクエスト数の上限を設定できます。
これらの上限は、特定のサービス量をきめ細かく制御することを目的としており、プロジェクト全体の支出上限として機能するように設計されていません。プロジェクト全体または請求先アカウントで予期しない費用が発生しないようにするには、予算と予算アラートの作成、編集、削除をご覧ください。
リクエスト数の上限を参照および変更する
請求可能な API に対するすべてのリクエストに制限を設定できます。ほとんどの API ではデフォルトの制限が設定されていますが、Google が指定する最大値までその制限を変更できます。一部の API では、プロジェクトで課金を有効にするまで、低い値が設定されています。
API の制限を表示または変更する手順は次のとおりです。
- コンソールで、[**API とサービス**] の [**ダッシュボード**] ページに移動します。 Google Cloud
- プロジェクト リストからプロジェクトを選択するか、新しいプロジェクトを作成します。
- 対象の API の名前をクリックします。
- [割り当て] をクリックします。タブナビに [割り当て] タブが表示されていないことは、選択した API で割り当てが定義されていないことを意味します。
- 上限となる割り当てを見つけるには、[フィルタ] フィールドに適切なプロパティと値を入力します。たとえば、サブネットワークの割り当てを見つけるには、「Quota:Subnetworks」と入力します。
- 上限とする割り当ての横にあるチェックボックスをクリックしてから、[ 割り当てを編集] をクリックします。
- 割り当て変更フォームに、設定する新しい上限を記入します。
- [リクエストを送信] をクリックします。
一部の API では、フォームを提出することによって、制限を上げるようにリクエストできます。一部の API では、プロジェクトで課金が有効になっている場合にのみ、割り当てを増やすことができます。
プレミアム プランの割り当てセクションは Google マップ プレミアム プランに関連していますが、これはもう提供されていません。現在 Google マップ プレミアム プランをご利用でない場合は、これらのセクションは編集しないでください。
ユーザーごとのリクエスト数の制限
個々のユーザーが API 割り当てを使い切ることを防ぐために、一部の API では、ユーザーごとの 1 分あたりの上限がデフォルトで設定されています。
API に 1 分あたりのユーザーごとのデフォルトの上限値が含まれているかどうかを確認するには、リクエスト数の上限を参照および変更するの手順に沿って API の割り当てを確認します。その API にそのようなデフォルトの上限が存在する場合は、この手順に沿ってその値を変更し、各ユーザーが使用できる割り当てを制限できます。 API の割り当てにこのデフォルトの上限がない場合、その上限の追加や変更はサポートされません。
デフォルトでは、システムは認証済みのプリンシパルを使用して個々のユーザーを一意に識別します。認証済みのプリンシパルには、OAuth トークンを使用するユーザー アカウント、サービス アカウント、フェデレーション Workload Identity が含まれます。認証済みのプリンシパルが存在しない場合、システムはクライアントの IP アドレスを使用します。このフォールバック動作はデフォルトで有効になっているため、ユーザー識別子を指定しない場合でも、ユーザーごとの割り当てが適用されます。
クライアント IP アドレスのフォールバックを使用する場合、次の 2 つの重要な制限があります。
- 共有パブリック IP: 学校のオフィスや VPN エンドポイントなど、ネットワーク アドレス 変換(NAT)ゲートウェイまたはプロキシの背後にいる複数のユーザーが、 単一のパブリック IP アドレスを共有します。リクエストは同じ割り当てバケットにプールされるため、割り当てが早期に枯渇する可能性があります。
- IP ベースの回避: 大量の IPv6 アドレスまたは VPN プロキシにアクセスできるユーザーは、クライアント IP アドレスをローテーションしてレート制限を回避できるため、 IP フォールバックは堅牢な不正使用防止には信頼できません。
呼び出し元のコードが所有しているサーバーでホストされているサーバーサイド アプリケーションから、複数のユーザーに代わって API
を呼び出す場合、単一の認証済みプリンシパルを使用すると、すべての呼び出しがその単一のプリンシパルに帰属します。この場合、個々のユーザーからの呼び出しを個別に上限設定することはできません。これを防ぐには、リクエストで
quotaUser パラメータまたは X-Goog-Quota-User
ヘッダーを指定して、デフォルトのユーザー識別をオーバーライドし、割り当ての使用量をパーティション分割します。これらは、
システム パラメータのドキュメントで定義されています。
デフォルトのユーザー識別を quotaUser パラメータまたは X-Goog-Quota-User
ヘッダーでオーバーライドするには、IP アドレス制限や HTTP 参照 URL の制限など、サービス制約がある有効な API
キーを使用して割り当てプロジェクトを識別する必要があります。そうしない場合、パラメータまたはヘッダーは無視され、システムはデフォルトのユーザー識別にフォールバックします。
ユーザーを識別するには、quotaUser=userID URL クエリ
パラメータを使用します。この値は短期の割り当ての適用のみに使用されるため、実際のユーザー ID を使用する必要はありません。ユーザーを一意に識別する 40 文字以内の任意の文字列を選択できます。
ユーザーのプライバシーを保護し、指標の量を制限するため、 Google Cloud コンソール
と Cloud Monitoring は、個々の
quotaUserまたは IP アドレスによって解析されたテレメトリーを保存または表示しません。プロジェクト全体の割り当て上限と合計使用量は確認できますが、特定の個々のユーザーのアラートをモニタリング、オーバーライド、構成することはできません。
API に 1 分あたりのユーザーごとのデフォルトの上限値が含まれていない場合、quotaUser 値は無視されます。
プロジェクト内の API のすべての割り当てを表示および編集する
特定のプロジェクト内の課金可能なすべての API について、コンソールで [IAM と管理者] セクションの [割り当て] ページを表示して、割り当て制限の確認、編集、制限の緩和をリクエストできます。Google Cloud
プロジェクト内のすべての課金可能 API の割り当てを表示したり編集したりするには、次の手順を実行します。
- コンソールで、[割り当て] ページに移動します。 Google Cloud
- プロジェクト リストからプロジェクトを選択するか、新しいプロジェクトを作成します。 選択したプロジェクトの [割り当て] ページが開き、各サービスで使用できる割り当ての種類ごとに 1 行の項目を含むリストが表示されます。
- [表をフィルタリング] をクリックして、特定のプロパティで割り当てをクエリします。
- 編集する割り当ての横にあるチェックボックスをオンにします。一部のチェックボックスをオンにするには、プロジェクトで課金を有効にする必要があります。
- [割り当てを編集] をクリックします。
- 表示された [割り当ての変更] ペインで、サービスビューを展開し、必要に応じてそのサービスの割り当てを編集して、[完了] をクリックします。
- 選択した各サービスで同じ手順を繰り返して割り当てを編集します。
- 入力ボックスには、現在の割り当て上限が事前に入力されています。
- 送信時にアラート アイコン()が表示されるサービスには、入力エラーがあります。
- 割り当ては、前述の通りに選択することで、それを編集して追加できます。
- [割り当ての変更] ペインで、展開されていないサービスビューにカーソルを合わせて削除アイコン()をクリックすると、サービスを削除できます。
- 割り当ての編集が完了したら、[次へ] をクリックします。
- 割り当ての編集リクエストを確認する必要がある場合は、[連絡先の詳細情報] フォームが表示されます。連絡先の詳細情報をフォームに記入します。
- [リクエストを送信] をクリックします。