レートリミットとは?
れーとりみっと
レートリミットとは、APIやサービスへのリクエスト数を一定時間内に制限する仕組みで、サーバーの過負荷防止や不正利用対策のために用いられます。
レートリミット(Rate Limit)とは、特定のユーザーやIPアドレス、APIキーが一定時間内に送信できるリクエストの上限数を設けることで、サービスの安定稼働と公平な利用を保証する制御の仕組みです。
インターネット上のAPIやWebサービスでは、一部の利用者が大量のリクエストを短時間に送り続けると、サーバーへの負荷が集中して他のユーザーのサービス体験を損なうリスクがあります。レートリミットはこうした事態を防ぐセーフガードとして機能します。
代表的な実装方式には以下があります。
- 固定ウィンドウ方式: 1分間・1時間などの固定期間でカウントをリセットする
- スライディングウィンドウ方式: 直近の一定時間を常に参照し、より滑らかに制限する
- トークンバケット方式: バケツにトークンを一定速度で補充し、リクエストごとに消費する
- リーキーバケット方式: リクエストをキューに溜め、一定速度で処理して急激な流入を平滑化する
レートリミットに達した場合、サーバーはHTTPステータスコード429(Too Many Requests)を返すのが一般的で、応答ヘッダーにはリセットまでの待ち時間が含まれることもあります。DDoS攻撃への対策やスクレイピング抑止にも有効であり、公開APIを提供するサービスにとって不可欠な機能です。
使い方・例文
TwitterのAPIではAPIキーごとに「15分間に最大180リクエスト」といったレートリミットが設定されており、それを超えると一時的にアクセスが制限されます。
この用語をシェア
最終更新: