レートリミット

レートリミットは、短い時間に受け付ける依頼の数へ上限を付けて、混雑や使いすぎを防ぐ仕組みです。

レートリミット のアイキャッチ図解
まずは、こう考えるとつかみやすいです。

レートリミットは、窓口で「1分に受け付ける件数はここまで」と上限を決めて混雑を防ぐ整理ルールのようなものです。

ひとことで言うと

レートリミットは、短い時間に受け付ける依頼の数へ上限をつけて、サービスが一気に混みすぎないようにする仕組みです。 誰か1人や1つのアプリが窓口を占有しないようにするため、公開APIやログイン画面、検索機能などでよく使われます。 APIキー やIPアドレス単位で数えることが多く、「誰がどれだけ短時間に使えるか」を整理する役割があります。

たとえ話でもう少し詳しく

レートリミットは、窓口で「1分に受け付ける件数はここまで」と決める運用に似ています。

  • 受付の処理能力を超えるほど一気に人が来ても、無制限には受けない
  • 特定の人だけが窓口を占有しないようにできる
  • 上限を超えたら、少し待ってから来てもらう

システムの世界でも同じです。 API やWebサービスは、短時間に大量のリクエストが来ると、処理遅延や障害につながることがあります。 レートリミットを入れておくと、1ユーザー、1IP、1APIキーなどの単位で回数をしぼり、混雑や乱用を抑えやすくなります。

よく出る場面・使いどころ

  • 公開APIで、短時間の大量呼び出しを防ぎたいとき
  • ログイン試行や検索機能への連打を抑えたいとき
  • 無料プランと有料プランで使える量を分けたいとき
  • サービス障害時に、これ以上の集中で悪化しないよう守りたいとき

似た言葉との違い

  • APIキー
    • 利用者やアプリを見分けるための手がかり
    • レートリミットは、その相手に対して「どれだけの回数まで許すか」を決める仕組み
  • WAF
    • 危ない内容のアクセスを止める仕組み
    • レートリミットは、内容よりも短時間あたりの回数や頻度を抑える仕組み
  • 帯域幅
    • 一度にどれくらい運べるかという回線の太さ
    • レートリミットは、窓口で受ける件数の上限を決める運用ルール

実務で気にするポイント

  • 何を単位に数えるかを決める
  • 超過時に返す案内や待ち時間をわかりやすくする
  • 厳しすぎる設定で、普通の利用者まで困らせないようにする
  • 負荷対策なのか、不正対策なのか、目的を分けて設計する

注意: レートリミットは便利ですが、これだけで性能問題が解決するわけではありません。アプリが重い、データベースが遅い、サーバー台数が足りないといった原因は、別に改善が必要です。