R.Mシェアみなさんこんにちは!今回は、クローラーの過剰アクセスにより生じた問題と、その解決策についてお話しします。まとめ訪れし異変:アクセスログの肥大化ある時、とあるサーバのディスク容量が少なくなっていることに気づきました。調べたところ、アクセスログファイルが異常なスピードで大きくなっていたのです。具体的にいうと、3週間でアクセスログのファイル容量が+2GB。このままでは、サーバのストレージを圧迫してしまいます。こんなにもアクセスログが肥大化するということは、どこからか攻撃を受けている可能性も考えられました。した問題が起きていないかどうかや、問題が起きていた場合に早期察知するためにも、定期的なサーバ監視が欠かせないのだと感じます。原因究明:AmazonBotによる過剰アクセスアクセスログを調査したところ、以下が判明しました。52.70.240.***)これら3つのIPアドレスから、3週間で総計24万回のアクセス(1つのIPからそれぞれ8万回ほど)これらのIPアドレスを調べたところ、AmazonBotと判明ここで登場しましたAmazonBotとは、Amazonが運営するwebクローラーで、通常はAlexaサービスの向上などに使用されているもののようです。(AmazonBotについての詳細は公式のこちらをご覧ください!)今回はそのクロール(webページの巡回頻度と情報収集)が少しばかり多すぎたようです。該当のwebサイトではAmazonBotのクロールは重要ではなかったため、アクセスの制御を行うこととしました。問題が分かったところで、次に考えるは解決策です。ここで登場するのがブログタイトルにあります、robots.txt(ロボットテキスト)となります。ディレクトリに置かれる特別なテキストファイルwebクローラー(Bot)に対して、サイトのどの部分をクロールしてよいかを指示する適切に設定することで、不要なクロールを防ぐことができる今回は、以下のようにrobots.txtに追記しました。robots.txtファイルがない場合は作成し、rootディレクトリへ配置すればOKです。/簡単に説明をすると、この2行で「AmazonBotさん、このサイト全体をクロールしないでください」と指示しています。指定ディレクトリ以下・ページ単位でクロールをしないように指示する方法は以下となります。Afterrobots.txtを変更した結果です。Before:AmazonBotから1日あたりの総計、約1万回を超えるアクセスそれにより、3週間でアクセスログのファイル容量が+2GBの肥大化After:AmazonBotからのアクセスが止まるそれにより、アクセスログの肥大化が止まる修正したrobots.txtは翌日には反映され、効果が確認できました。robots.txtでクローラーの制御を行ったことにより、ストレージの圧迫問題が解決され、サーバの負荷も軽減されました。制御によって不要なアクセスのログ出力がなくなり、アクセスログからは必要なアクセス情報を簡単に確認できるようにもなりました。適切に設定すれば、不要なBotアクセスを効果的に制御できるまとめ今回の経験は、小さな設定変更が大きな効果をもたらす好例となりました。robots.txtの設定で正当なクローラーまで排除してしまうと、検索エンジンでの表示に影響が出る可能性があります。そのため、設定方法は慎重に判断していく必要がありそうです。以上、今回はrobots.txtでのクローラー制御についてご紹介させていただきました!この記事があなたのwebサイト管理の一助となれば幸いです。最後までご覧いただきありがとうございました!株式会社ウイングドアは福岡のシステム開発会社です。(2)CONTACTお問い合わせお仕事のご依頼、ご質問等お気軽にご連絡ください。現在、新型コロナウィルス対策としてリモートワークとオフィスワークのハイブリッド勤務としております。そのため、お電話でのお問合せには、対応が難しい状況です。担当者へは、メールもしくはビジネスチャットツールより、その他のお問合せは「お問い合わせフォーム」よりご連絡いただきますようお願いいたします。