【れーとりみったー】
レートリミッター とは?
最終更新:
💡 要求の量や速度を制限し、サービスの負担を抑える
決めた期間の要求数や処理の速度などを、ルールに基づいて制限する仕組み。サービスの過負荷防止や利用量の配分に使う。超過時には拒否や遅延などを行い、制限の単位・方式・応答は実装と設定で異なる。
📌 このページのポイント
APIで「制限に引っかかった」ときの仕組み?
そうだよ。たとえば利用者ごとに、ある期間の要求数を制限する仕組みだね。どの期間や利用者を数え、超過時にどう扱うかをルールとして決めるんだ。
必ず429エラーが返る?
HTTPでは429 Too Many Requestsが使われるけれど、すべての実装が返すわけではないよ。要求を遅らせる設定や別の状態コードを返す設定もある。攻撃を受けている場合など、接続を切ることもあるんだ。
APIゲートウェイの手前に置く?
一瞬だけ多くの要求が来ても拒否する?
制限を入れれば、DDoS攻撃も全部防げる?
過負荷への対策の一つにはなるけれど、全攻撃を防ぐ保証ではないよ。何を識別キーにするか、どこで制限するかも関わる。分散した実装では、設定が厳密な上限なのか、目標として扱われるのかも確認するんだ。
もっと詳しく知りたい人へ
429を受け取ったら、すぐ再試行してよい?
連続して再試行すると、さらに負荷をかけて制限にかかり続けることがあります。Retry-Afterがあれば、次に要求するまでの待ち時間を確認します。ただし、このヘッダーは必ず付くものではないため、APIの案内や再試行の方針も確認します。
まとめ:ざっくりこれだけ覚えればOK!
「レートリミッター」って出てきたら「要求の量や速度を制限して、サービスの負担を抑える仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Rate Limiter」 = 処理の量や速度を制限するもの
💬 Rateは一定時間あたりの量や速度、Limiterは制限するものという意味だよ。たとえば、利用者ごとの要求数や、サービス全体の処理速度を管理するんだ。