7P by neo 2달전 | favorite | 댓글과 토론

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 같은 상용 안티 디텍션 브라우저를 활용하는 것도 고려해볼 만함. 단, 라이선스 비용 문제가 있음.