レートリミット(れーとりみっと)
最終更新:2026/4/25
レートリミットとは、一定期間内に許可されるリクエストの最大回数を制限する仕組みのことである。
別名・同義語 リクエスト制限API制限
ポイント
APIやオンラインサービスにおいて、サーバーへの過剰な負荷を防止し、安定稼働を維持するために用いられる。不正アクセス対策としても機能する。
レートリミットの概要
レートリミットは、サービス提供者側が、ユーザーやアプリケーションからのリクエスト数を制限する機能です。これは、サーバーの処理能力を超えたリクエストが集中した場合に、サービス全体のパフォーマンス低下や停止を防ぐために不可欠な仕組みです。
レートリミットの種類
レートリミットには、いくつかの種類があります。
- 固定レートリミット: 一定期間(例えば1分間)に許可されるリクエストの最大回数を固定する方式。
- 変動レートリミット: ユーザーの利用状況に応じて、許可されるリクエスト回数を動的に調整する方式。
- トークンバケット方式: 仮想的な「トークン」を一定速度で補充し、リクエストごとにトークンを消費する方式。トークンが不足するとリクエストが制限される。
レートリミットの目的
レートリミットの主な目的は以下の通りです。
- サーバー保護: 過剰なリクエストによるサーバーへの負荷を軽減し、安定稼働を維持する。
- 不正アクセス対策: 短時間での大量リクエストを検知し、DoS攻撃などの不正アクセスを防止する。
- 公平性の確保: 特定のユーザーやアプリケーションがリソースを独占することを防ぎ、公平なサービス利用を促進する。
- コスト管理: リソースの消費量を抑制し、運用コストを削減する。
レートリミットの実装
レートリミットは、APIゲートウェイやロードバランサーなどのインフラストラクチャに組み込まれることが一般的です。また、アプリケーション側で実装することも可能です。レートリミットに達した場合、通常はHTTPステータスコード429 (Too Many Requests) が返されます。