こんにちは。技術部プラットフォームグループのharukinです。 今回は、NGINXのngx_http_limit_req_moduleでの$binary_remote_addrを使用して、IPアドレス単位のレートリミットを設定した話をします。NGINXへの理解が浅い状況から、データに基づく統計手法を用いて通常リクエストと異なるリクエストを見分ける方法を探っていく過程についてもご紹介します。 これは🎄GMOペパボエンジニア Advent Calendar 2023の15日目の記事です。 背景 やったこと 当初のNGINXの理解 NGINXの理解の進展 適切なrateとburstの値を考える 標準偏差を活用してrateとburstの値を決定 どういった効果があったか まとめ 背景 私たちのサービスでは、一般ユーザーの商品購入リクエストとは異なる、機械的で短期間に集中するようなリクエストをブ