マッスル・メモリー

筋肉エンジニアのブログ

AWS Application Load Balancerでuser-agentを指定してアクセスを制限

先日業務で運用しているサーバーがAmazonbotというクローラーによる過剰なアクセスでサーバーに負担がかかっていました。 その際にAWS Application Load Balancerでuser-agentを指定してアクセスを制限したのでその方法を書き残したいと思います。

EC2 > ロードバランサー > アクセスを制限したいロードバランサーを指定 > Listenersで制限したいリスナーを指定 > Rules > Manage Rules > 以下のルールを挿入

ちなみにAmazonbotってなんだろうと調べてみると、

Amazonbotは、Amazonのウェブクローラーで、Alexaがお客様の質問にさらに多く回答できるようにするなど、サービス向上のために使用されています。Amazonbotは、標準的なrobots.txtのルールを尊重します。

とのことなのでアクセスを制限しても問題はないかと。

https://developer.amazon.com/ja/support/amazonbot

↓今回の障害に関してほぼ同様の事例が報告されていました。

https://repost.aws/questions/QUvPNumP4_T3qDT6B9krIbIQ/amazonbot-web-crawler-dos-incident?sc_ichannel=ha&sc_ilang=en&sc_isite=repost&sc_iplace=hp&sc_icontent=QUvPNumP4_T3qDT6B9krIbIQ&sc_ipos=1