メインコンテンツへ
短.be

レート制限

API やサービスへのリクエスト数を一定期間内で制限する仕組み。サーバー保護と公平な利用を実現する。

2025年11月25日 · 約 1 分で読めます

セキュリティ

レート制限 (Rate Limiting) とは、API やサービスに対するリクエスト数を、一定の時間枠内で上限値に制限する仕組みです。「1 分間に 60 リクエストまで」「1 日に 1,000 リクエストまで」のように設定され、上限を超えたリクエストには HTTP 429 (Too Many Requests) が返されます。

レート制限の目的は 3 つあります。第一にサーバー保護 (大量リクエストによるサービスダウンの防止)、第二に公平性の確保 (特定ユーザーによるリソースの独占防止)、第三にコスト管理 (クラウドサービスの従量課金を制御) です。

短縮 URL サービスでは、レート制限が複数の場面で適用されます。URL 短縮 API のリクエスト数制限 (スパム的な大量生成の防止)、短縮 URL へのアクセス数制限 (DDoS 攻撃の緩和)、管理画面へのログイン試行回数制限 (ブルートフォース攻撃の防止) などです。

レート制限のアルゴリズムには主に 4 種類あります。固定ウィンドウ (1 分ごとにカウンターをリセット)、スライディングウィンドウ (直近 1 分間のリクエスト数を常時計算)、トークンバケット (一定速度でトークンが補充され、リクエストごとにトークンを消費)、リーキーバケット (一定速度でリクエストを処理し、超過分をキューに蓄積) です。

API を利用する開発者がレート制限に対処するには、レスポンスヘッダー (X-RateLimit-Limit、X-RateLimit-Remaining、Retry-After) を確認し、残りリクエスト数に応じてリクエスト頻度を調整する実装が必要です。429 レスポンスを受けた場合は、Retry-After ヘッダーの値だけ待機してからリトライする指数バックオフが推奨されます。関連書籍は Amazon でも探せます。

X でシェアはてブ

この記事は役に立ちましたか?

関連用語

関連記事

よくある質問

レート制限に引っかかったらどうすればいいですか?
HTTP 429 レスポンスの Retry-After ヘッダーを確認し、指定された秒数だけ待機してからリトライしてください。頻繁に制限に達する場合は、リクエストの間隔を広げるか、上位プランへのアップグレードを検討しましょう。
レート制限はどのくらいの値が一般的ですか?
サービスによりますが、無料プランでは 1 分間に 10 〜 60 リクエスト、有料プランでは 1 分間に 100 〜 1,000 リクエスト程度が一般的です。短縮 URL サービスの API では、1 時間に 100 〜 500 回の URL 短縮が典型的な上限です。
自分の API にレート制限を実装するには?
Nginx の limit_req モジュール、API ゲートウェイ (AWS API Gateway など) の組み込み機能、Redis を使ったトークンバケットの自前実装などが一般的です。小規模なら Nginx の設定だけで十分対応できます。

短縮 URL を作成してみませんか?

無料で URL を短縮する