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 が想定しているよりもはるかに多くの負荷を処理できるはずです。あるいは、プラグインやバグが原因でより深刻な問題が起きているのかもしれません。

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

Is your site behind a reverse proxy or anything else that would mess with real incoming IP addresses?

No, I don’t believe so (and the logs capture IP addresses normally) but it does sit behind an ELB. It definitely did correlate with a significant increase in traffic (looks kind of like a DDOS attack or something)
image

But if my understanding of rate limiting is correct, that shouldn’t have affected every user— Only the user trying to visit a million times, right?

I’ll verify re: the network architecture. Thanks!

I believe the nginx inside the Discourse container is using the ELB IP for the rate limiting bucket instead of the original client IP.

That sounds quite possible. Just verified that we do have an ELB setup in aws with nothing particularly special about it— Is is the result of something that I have misconfigured on my end?

Not 100% sure what next steps would be. If you point me in the right direction, I can probably work with my ops team to figure it out. Thanks much!