現代のWebアプリケーションでは、APIやWebページに対して大量のリクエストが集中する場面があります。例えば、SNSの投稿エンドポイント、人気ECサイトのセール時のリクエスト、あるいは悪意あるDDoS攻撃、ブルートフォース攻撃、クローラーやボットによるアクセスなども含まれます。これらを放置すると、アプリケーションやデータベースが過負荷になり、最悪サービス全体がダウンしてしまいます。
そうした状況を防ぐために導入されるのがレート制限(Rate Limiting)の仕組みです。ここでは、システムのどのレイヤーでレート制限を実装すべきかを中心に、それぞれのメリットや適したユースケースを解説していきます。
レート制限(Rate Limiting)とは?
レート制限とは、特定のIPアドレスやユーザーごとに、一定時間内に許可されるリクエスト数を制限する仕組みです。これにより、サーバーへの過剰な負荷を防ぎ、不正アクセスやDDoS攻撃を抑制できます。