昨日、cbnanashi@GAE/JのDashboardを見るとグラフに大きな山があり、ログを確認すると同一ホストから集中的にアクセスされていました。 2分間ほどの間に波がありながら合計300〜400件のリクエストでしたので、DoS攻撃というほどではなくF5連打くらいの回数ですが、いくつか500エラーが発生していました。

 詳しくログを見るとServletの処理が毎秒10リクエスト弱を超えたくらいでエラーが出ていたようです。ただ同程度の負荷でも100件連続ですべて正常に応答していたりムラがあります。

 Google App Engineで怖いのは課金が処理量、データ転送量ベースであることで、DoS攻撃がそのまま課金につながってしまいます。Google Groupsを見るとやはり同じ懸念を抱いている人が多いようでIssueに挙げられていました。いまのところGAE側にアクセスを制御する機能はなく、設定した上限まで使われてしまうようです。

 対策はアプリケーション側で行うしかないらしいです。JavaではServletFilterを利用し特定の条件の場合はすぐに処理を中断すればよいでしょうか。

 アクセスが減ると元通り何事もなかったかのように動作し続けたのは、クラウドならではといえるでしょう。