피드로 돌아가기
Dev.toInfrastructure
원문 읽기
790만 건의 AI 크롤러 공격, 서버 레벨 차단으로 해결한 인프라 방어 전략
Blocking AI Crawlers vs. Letting Them In: A Practical Defense Guide
AI 요약
Context
AI 학습용 Crawler의 무분별한 접근으로 인한 과도한 Bandwidth 소모 발생. Client-side JavaScript 기반 분석 도구의 한계로 Bot Traffic 식별 불가. 서버 성능 저하 및 비용 상승을 초래하는 인프라 가용성 위기 상황.
Technical Solution
- Server-side 분석을 위해 GoAccess를 도입하고 Raw Log를 직접 분석하여 Bot Traffic 비율 정밀 측정
- 실제 사용자 트래픽의 Baseline 확보를 위해 Cookie-less 분석 도구인 Umami 및 Plausible 도입
- robots.txt 설정을 통해 Meta-ExternalAgent, GPTBot 등 주요 AI Crawler에 대한 접근 거부 의사 표명
- Nginx의 map 모듈을 활용하여 User-Agent 기반의 AI Crawler 식별 및 403 Forbidden 응답 처리 구조 설계
- Apache의 .htaccess RewriteCond를 통한 정규표현식 기반의 Bot Traffic 강제 차단 전략 적용
- Cloudflare WAF Rule을 활용하여 서버 진입 전 단계에서 악성 User-Agent를 필터링하는 계층적 방어 체계 구축
Impact
- 단일 Crawler가 30일간 7.9 million requests 발생
- 약 900 GB 이상의 Bandwidth 소모 확인
- Bot Traffic이 실제 사용자 트래픽 대비 40배 수준으로 측정
Key Takeaway
애플리케이션 계층의 Polite Ask(robots.txt)보다 인프라 계층의 강제적 차단(Firewall/WAF)이 실질적인 자원 보호에 유효함. 정확한 트래픽 분석을 위해서는 Client-side 도구가 아닌 Server-side 로그 기반의 Observability 확보가 필수적임.
실천 포인트
접근 로그에서 Meta-ExternalAgent, GPTBot 확인 시 즉시 Nginx/WAF 레벨의 User-Agent 차단 룰을 적용할 것