1
0

AWS WAF は使い込みすぎてはいけない

Last updated at Posted at 2024-03-20

背景

2024/03現在の話。

2024に入って、botから急激なHTTPアクセスがあり、サービスが3分間程度死んでしまった。
ネットにあまり情報がなかったので残す。

サービスを設計する上での注意点をシェアすることが目的です。

細かいことを調べるのちょっとめんどくさくなったのでざっくり概算で記載します。

想定読者

AWS使っている
WAFを使っている
そこそこのリクエストがあるサービス

起こった事象

DDosAttackによる急激なアクセスがあり、サービスが3分間程度リクエストが5xx系になって、リクエストが捌けなくなった。
LBのログにはerror理由がWAFConnectionTimeoutとなっていた。
LBのログでロストしているものもある模様(WAFの処理ログとLBのアクセスログが一致しない)

対象のサービス特徴

どのようなサービスで事象が発生したかを共有したいので、サービスの主要なメトリクスを例示します。

当該の時刻の平均的なTotalReqCountは10M req/minくらいです。
事象が発生した時は、40M req/min くらいまでスパイクしました(10min程度)。

当該サービスのWAFにはAWSのマネージドルールも利用しており、
事象が発生した際の30M req ほどはマネージドルールによってBlockされたログがありました。

ベンダーからの回答

もちろん、AWSに事象を問い合わせ、何が起こったのか説明を求めました。

どうやら、WAFはELBのキャパシティに依存するものらしく、
1ノードで捌ける量には限界がある模様。

対策としては、事前にLBの暖気申請を行う必要があるらしい。

対策案

DDosを行ってくるエンドポイントには特徴がある気がします。(ちょっと分析した)
なので、DDosのLB対策案としては

  • 当該のエンドポイントだけ分けてしまって、他のエンドポイントやサービスに影響が出にくいようにする
  • 当該のエンドポイントだけ、 CDNでキャッシュして返せないか検討する

がアリかもなと思ってます。

雑な質疑応答にも真摯に対応してくださったAWSに感謝。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0