レート制限とは何ですか?
レート制限は、クラウド API が特定の期間にユーザーが行うことができる要求の数を制御するために使用する制御メカニズムです。 クラウド API プロデューサーは、レート制限を使用して、要求のフローがサービスを圧倒しないようにします。 レート制限は、API 呼び出しの速度と量に上限を設定します。通常は、期間ごとの要求の観点から定義されます。
クラウド API がレート制限を使用する理由
- オーバーロードを防ぎます。 レート制限により、1 人のユーザーまたはサービスで要求が多くなりすぎないようにすることで、API サーバーの安定性と応答性が維持されます。
- 公平な使用を確保する。 レート制限では、公正な使用ポリシーが適用され、API リソースを 1 人のユーザーが独占することがなく、すべてのユーザーに公平なアクセスが許可されます。
- セキュリティ。 悪意のある可能性のあるソースからの要求の数を制限することで、DDoS (分散型サービス拒否) 攻撃やその他の虐待的な動作を軽減するのに役立ちます。
- コスト管理。 クラウド サービス プロバイダーの場合、レート制限は、リソースの予期しない使用や過剰な使用を防ぐことで運用コストを管理するのに役立ちます。
- [Quality of Service]。 トラフィックの急増を防ぐことで、レート制限により、すべてのユーザーに一貫したサービス品質が保証されます。
アプリでレート制限が発生する方法
クラウド API を統合するアプリを構築するときは、そのドキュメントをチェックして、レート制限がサポートされているかどうかを確認します。 その場合は、レート制限に関する情報を含むヘッダーまたはX-RateLimit-...
応答ヘッダーを受け取りますRateLimit-...
。 アプリケーションでこの情報を使用して、API のレート制限を超えないようにすることができます。 たとえば、 ヘッダーは RateLimit-Remaining
、現在のウィンドウに残っている要求の数を示します。 このヘッダーが 0 に設定された応答を受け取った場合は、レート制限に達しており、別の要求を送信する前に次のウィンドウを待つ必要があることがわかります。 ヘッダーは RateLimit-Reset
、レート制限がリセットされた時刻を示します。 一部の API では、要求の RateLimit-...
10% が残っている場合など、しきい値に達した後にのみヘッダーが送信されることに注意してください。
レート制限を超えると、API は HTTP 429 (要求が多すぎます) 状態コードを返す要求を調整します。 一部の API では、別の要求を Retry-After
送信する前に待機する必要がある時間を示すヘッダーが送信される場合もあります。
調整を回避し、アプリケーションの応答性を維持するには、アプリケーションにレート制限を実装する必要があります。 テクノロジ スタックに応じて、アプリケーションのレート制限を処理するのに役立つさまざまなライブラリがあります。 アプリケーションでレート制限を実装した後、レート制限が適切に処理されるかどうかをテストします。
次の手順
Dev Proxy