GN⁺: 대기업들처럼 웹 스크레이핑(Web Scraping)을 하고 싶다면 (2021)
(incolumitas.com)Here is a summary of the key points from the article in Korean, formatted as a markdown bullet list:
대규모 스크레이핑 인프라 구축하기
- AWS Lambda로 Headless Chrome을 실행하여 Google SERP를 주당 수백만 건 스크레이핑함
- 3번 Lambda 함수를 호출하면 새로운 public IP를 받을 수 있음
- 1000개의 Lambda 함수를 동시에 호출하면 약 250개의 public IP를 사용할 수 있음
- 16개 리전을 사용하면 약 4000개의 public IP 주소 사용 가능
- 하지만 이 방법은 Google, Bing, Amazon 같은 사이트에서만 동작함. DataDome, Akamai, Imperva 등의 안티봇 솔루션을 사용하는 사이트에서는 작동하지 않음
- 안티봇 솔루션은 브라우저 핑거프린팅, 거짓말 탐지, 사람과 다른 동작 감지 등 다양한 기술 사용
- 봇 탐지를 피하기 어려운 이유는 대부분 Docker나 Kubernetes로 클라우드에서 돌리기 때문
탐지되기 어려운 확장 가능한 스크레이핑 인프라 제안
- 500대의 저렴한 안드로이드 기기를 5개 제조사에서 구매
- 저렴한 데이터 요금제 사용, DeviceFarmer/stf로 기기 제어
- 런던, 파리, 보스턴, 프랑크푸르트, LA 등 5개 주요 도시에 각각 100대씩 배치
- 경량 Android Go 설치, 5분마다 비행기 모드 껐다 켜서 IP 주소 변경
- 4G/5G/LTE의 모바일 IP는 차단 불가능. 많은 사용자가 공유하므로 Instagram도 LA의 20만명을 차단 못함
- 기기 방향, 움직임 등의 이벤트를 커널 레벨에서 조작 필요
개선안: 안드로이드 에뮬레이션
- Android-x86 on VirtualBox, Bluestacks, Android Studio 등의 에뮬레이터 사용
- 하지만 에뮬레이션 탐지 기술이 많이 있음 (브라우저 기반 레드필, adb 포트 스캔, 광고ID 탐지, 소셜 로그인 탐지 등)
- 4G 동글을 서버에 연결하여 안드로이드 에뮬레이터에서 직접 사용
- 5개 주요 도시에 각각 50개 동글이 연결된 강력한 스크레이핑 서버 1대씩 배치
- 각 서버에서 50~100개의 안드로이드 에뮬레이터 실행
- 단순한 명령 제어 서버로 5개 스크레이핑 스테이션 조율
GN⁺의 의견
- 실제 기기를 사용하는 것은 관리 비용이 높고 확장성에 한계가 있어 보임. 에뮬레이터 사용이 현실적인 대안이 될 것 같음.
- 하지만 에뮬레이터 탐지 기술도 계속 발전하고 있어서, 단순히 에뮬레이터를 사용한다고 해서 안전할 것으로 보이지는 않음. 지속적인 업데이트와 개선이 필요할 것임.
- 4G/5G 모바일 IP를 사용하는 것은 좋은 아이디어임. 하지만 통신사에서 특정 기기를 차단하거나 요금제를 조정할 가능성도 배제할 수 없음.
- 데이터센터 IP 사용을 피하는 것 외에도, 사람과 유사한 행동 패턴을 만드는 것이 봇 탐지를 피하는데 도움이 될 것 같음. 자동화를 통한 대규모 수집이 아니라 제한된 Concurrency로 천천히 수집하는 방식을 고려해볼 만함.
- Multilogin 이나 GoLogin 같은 상용 안티 디텍션 브라우저를 활용하는 것도 고려해볼 만함. 단, 라이선스 비용 문제가 있음.