대규모 분산 크롤링 플랫폼 운영 고도화] 다채널(SNS/포털) 수집 엔진 추상화 및 고가용성 무중단 운영 체계 구축
🏢 Project under 데이타솔루션: 대용량 소셜 데이터 분산 수집 플랫폼(Opinion Mining Flatform) 개발/운영
60대 규모 분산 크롤러의 다채널(트위터, 인스타그램, 포털 등) 수집 파서를 추상화하여, 잦은 채널 UI 변경 및 차단 이슈에도 전체 시스템 중단 없이 유연하게 대응하는 무중단 운영 거버넌스 확립
By 유민호
💡 [대규모 분산 크롤링 플랫폼 운영 고도화] 다채널(SNS/포털) 수집 엔진 추상화 및 고가용성 무중단 운영 체계 구축
[한 줄 요약] 60대 규모 분산 크롤러의 다채널(트위터, 인스타그램, 포털 등) 수집 파서를 추상화하여, 잦은 채널 UI 변경 및 차단 이슈에도 전체 시스템 중단 없이 유연하게 대응하는 무중단 운영 거버넌스 확립
📌 배경 및 문제 상황 (Problem)
- 이기종 채널 파편화로 인한 운영 리소스 낭비: 트위터, 인스타그램, 카페, 블로그 등 각 채널마다 레이아웃 및 인증 방식이 달라, 특정 채널의 사소한 변경(DOM 구조 변경, API 제한 등)에도 크롤링 코어 로직을 수정해야 하는 유지보수 병목이 존재함.
- 장애 전파(Cascading Failure) 및 가용성 저하: 특정 SNS 채널에서 캡차(CAPTCHA)나 IP 차단 이슈가 발생할 경우, 해당 작업을 처리하던 분산 워커의 스레드가 블로킹되어 타 정상 채널의 수집 작업까지 연쇄적으로 지연되는 단일 장애점(SPOF) 문제가 발생함.
- 경직된 배포 구조로 인한 실시간 이슈 대응 불가: 잦은 채널별 이슈 발생 시 60대의 워커 노드 전체를 재시작해야 하는 무거운 운영 구조 탓에, 데이터 최신성을 보장해야 하는 크롤링 플랫폼의 본질적 가치가 훼손됨.
🛠️ 해결 과정 및 역할 (Action)
1. [전략 패턴 기반 이기종 채널 추상화 및 횡단 관심사 분리]
- 비즈니스 로직(각 채널별 파싱)과 플랫폼 코어(HBase 시드 페치, HDFS 적재, 로드밸런싱)를 인터페이스 기반으로 철저히 분리(Decoupling)하는 플러그인 아키텍처를 수립함.
- Spring AOP를 활용해 재시도(Retry), 프록시 IP 로테이션, 에러 로깅 등 채널 공통의 인프라적 요구사항을 횡단 관심사(Cross-cutting Concerns)로 분리하고, 의존성 주입을 통해 플랫폼 레벨에서 일괄 제어하는 운영 거버넌스를 확보함.
2. [장애 격리(Fault Isolation) 기반 무중단 운영 환경 구성]
- 서킷 브레이커(Circuit Breaker) 패턴 도입: 채널별 응답 지연 및 에러율을 실시간으로 추적하여, 차단 이슈가 발생한 채널은 즉시 격리(Open)하고 해당 노드의 리소스를 타 정상 채널 수집 큐(Queue)로 동적 재할당하여 플랫폼 전체의 수집 처리량(Throughput)을 방어함.
- 타겟 서버의 Rate Limit를 우회하고 IP 밴을 방지하기 위해 글로벌 Throttling 정책을 중앙에서 관리하도록 설계하여 장애 발생 확률을 선제적으로 낮춤.
3. [중앙 코디네이터 기반 타겟팅 핫스왑(Hot-swap) 배포 체계 구축]
- 무거운 외부 CI/CD 개입 없이, 메인 서버의 고도화된 Bash 쉘 스크립트를 통해 60대 분산 노드를 중앙 제어하는 경량화된 운영 파이프라인을 구축함.
- 특정 채널 파서에 수정이 필요할 경우, 전체 프로세스를 내리지 않고 해당 모듈(JAR)만 타겟팅하여 롤링 업데이트(Rolling Update)하는 동적 클래스 로딩 방식을 적용해 즉각적인 핫픽스(Hotfix)가 가능한 환경을 완성함.
📈 업무 성과 (Result)
- 특정 채널의 크롤링 차단이나 UI 변경 이슈가 타 채널 수집에 미치는 영향을 100% 차단하여, 60대 분산 노드의 플랫폼 전체 가용성을 극대화함.
- 신규 채널 추가 및 기존 채널 이슈 대응 시 코어 로직 수정 없이 '채널 어댑터'만 배포하도록 운영 구조를 개편하여, 핫픽스 대응 리드타임과 무의미한 코드 수정 비율을 80% 이상 단축함.
- 중앙화된 커스텀 배포 스크립트와 핫스왑 아키텍처를 통해, 시스템 다운타임 없는(Zero-Downtime) 실시간 분산 크롤링 운영 체계를 전사 표준으로 정착시킴.