429 リクエストが多すぎます

皆さん、こんにちは。以前にも「リクエストが多すぎます」というトピックはあったようですが、今回のケースはそれとは少し異なるようです。

Discourse で断続的に 429 エラーが発生しており、全体的にも動作がかなり遅くなっています。そのバックトレースは以下の通りです。

Error: Too Many Requests
    at s (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:9:9188)
    at a (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:9:9045)
    at o (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:9:8936)
    at Object.trigger (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:18:7223)
    at https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:18:9212
    at t.invoke (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:9729)
    at e.t.flush (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:8732)
    at e.t.flush (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:10782)
    at e.n._end (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:15440)
    at e.n.end (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:12110)

常に同じ .js のリンクが原因ですが、これは非常に大規模な JS コードであり、私にはその意味が全くわかりません。Discourse を実行しているインスタンスは負荷が非常に低いようです(CPU 使用率 10%、その他も概ね正常)ので、なぜ 429 エラーが発生するのか理解に苦しみます。

グローバルなレート制限を変更するために設定を調整できる場所はあるでしょうか?このインスタンスは、Discourse が想定しているよりもはるかに多くの負荷を処理できるはずです。あるいは、プラグインやバグが原因でより深刻な問題が起きているのかもしれません。

よろしくお願いいたします!

あなたのサイトは、実際の受信 IP アドレスを混乱させるリバースプロキシやその他のものによって隠されていますか?

いいえ、そうは思いません(通常、ログには IP アドレスが記録されます)が、ELB の背後に配置されています。確かにトラフィックの大幅な増加と相関がありました(DDoS 攻撃のようですが)。

ただし、レート制限の理解が正しければ、それがすべてのユーザーに影響を与えるはずはありません。100 万回アクセスを試みるユーザーだけですよね?

ネットワーク構成について確認します。ありがとうございます!

Discourse コンテナ内の nginx は、元のクライアント IP ではなく、ELB の IP をレート制限のバケットとして使用していると考えています。

それは十分にあり得そうですね。AWS に特別な設定をしていない ELB 環境を確認しました。これは私が何か設定を間違えた結果でしょうか?

次のステップが 100% 確実ではありません。方向性を示していただければ、運用チームと協力して解決策を見つけられると思います。よろしくお願いいたします!