최근 운영 중인 웹사이트에서 발생한 페이스북 봇 facebookexternalhit에 대한 포스팅을 해볼까 합니다.
며칠전 카페24의 알림 문자를 받게 되었습니다.
트래픽 용량 80%를 초과하면 알림 문자를 발송하게 설정을 하였는데 트래픽 80% 초과 알림 문자였습니다.
2011년부터 운영하고 있는 웹사이트라 그동안 쌓인 데이터(이미지)가 많아 웹하드 용량 때문에 방문자가 많지 않음에도 월 이용료가 비싼 요금제를 사용하고 있어 트래픽 문제가 발생할 일이 없는데…
의아해 하면서 카페24 홈페이지에 접속을 해보았습니다.
하루 허용되는 웹트래픽이 5GB 정도인데 이미 4GB를 넘어선 트래픽이 소비가 되었습니다.
좀 더 자세히 살펴보았더니 위와 같이 미국에서 방문했다고 나옵니다.
그런데 Agent가 Facebookext?
미국에서 무려 96%가 넘는 트래픽?
도대체 무슨 일인가 자세히 살펴보았더니 위와 같이 facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)라는 Agent 방문이였습니다.
URL을 보면 페이스북인데? 혹시 페이스북을 가장한 스팸인가?
IP를 조회해 보니 모두 FB (페이스북) 소유라고 나옵니다.
왜 페이스북 봇이 이렇게 트래픽을 잡아먹는지 의아해 하면서 검색을 하기 시작합니다.
페이스북 facebookexternalhit Agent?
일단 국내 검색 엔진에서 facebookexternalhit에 대해서 검색을 해보았습니다.
몇몇 글들이 보이기는 하는데 큰 도움이 안되는 듯 하여 해외 사이트들을 검색해 보았더니 많은 글들이 보입니다.
facebookexternalhit은 페이스북의 봇이 맞습니다.
페이스북에서 누군가 링크를 남기면 페이스북은 이 링크에 대한 썸네일 이미지(대표 이미지)와 내용을 보여주기 위해 크롤링을 하게 됩니다.
이 때 방문하게 되는 페이스북의 봇이 facebookexternalhit 입니다.
이에 관련된 내용은 이 곳에서 확인이 가능합니다.
페이스북이 내 웹사이트를 크롤링 한다는 것은 웹사이트 측면에서는 좋은 일이라고 할 수 있습니다.
문제는 많은 트래픽과 함께 세버 부하를 발생한다는 것인데..
이 점 때문에 해외 커뮤니티에서도 논란이 되고 있었습니다.
즉 페이스북의 봇 facebookexternalhit의 근접을 막아야 한다, 아니다 그냥 둬야 한다..
계속 서칭을 해보았으나 명확한 결론에 접근을 하지는 않았습니다.
딱 하나 알 수 있는 부분은 페이스북의 봇이 이런 문제가 발생한 것이 한두해가 아니라는 점입니다.
과도한 트래픽을 발생 시켜 크롤링이 아닌 스팸에 가깝게 서버에 부하를 주면서도 아직 개선이 안되고 있는 것입니다.
결국 고민을 하다가 혹시 카페24의 다른 웹사이트나 블로그에도 같은 경우가 있는지 고객센터를 통해 문의를 해보았습니다.
최근 이런 페이스북 봇을 통한 트래픽 증가 이슈가 있다라는 답변을 듣고 페이스북 봇을 차단하기로 결정하였습니다.
페이스북 봇 facebookexternalhit 차단하기
페이스북 봇의 접근을 지연시키는 방법도 있기는 했습니다만 그냥 차단하기로 합니다.
SetEnvIfNoCase User-Agent “facebookexternalhit/1.1” go_out
.htacces 파일에 위의 문구를 삽입하는 것으로 차단을 하였습니다.
차단 이후 트래픽 증가가 정상화 되는 것을 확인하였으니 걱정하던 일일 허용 트래픽 초가 문제는 발생하지 않을 듯 하네요.
혹시라도 갑자기 트래픽 초과 문제가 발생한다면 페이스북 봇의 문제가 아닌지 한번 검토를 해보시는 것이 좋을 듯 합니다.