
어서 와, 광고 데이터 수집은 처음이지? (feat. kraken)
두줄요약
광고 매체 API의 호출 제한과 페이지네이션으로 인한 대량 수집 문제를 다뤘습니다. Redis Stream과 ECS 기반 크라켄으로 병렬 수집·재시도를 구현해 오류율을 개선했습니다.
문제 상황
- 광고 매체별 API 호출 횟수·간격 제한과 페이지네이션으로 인한 대량 리포트 수집 지연
- 다수 광고주·캠페인·과거 데이터 수집 과정의 429 오류와 새벽 리포트 발송 요구
구조와 흐름
- API별 호출 간격을 독립 다리로 모델링한 병렬 수집 플랫폼 크라켄
- RDS의 광고주 정보와 Redis Stream 기반 이벤트 요청, 수집 완료 후 Prism Stream 전달
- throttling·collect·checker 애플리케이션 분리와 pending·ack 상태 기반 재시도
선택 이유
- API별 상이하고 변경 가능한 호출 제약의 독립적 관리
- 메시지 정상 수집 확인 기능 중심의 Redis Stream 채택
- 신규 API별 Stream Key 추가를 통한 수집 경로 확장
성능/운영 포인트
- AWS ECS·Public Subnet 기반 매체 API 통신과 Python 애플리케이션 구성
- GitHub Actions 기반 기능 단위 자동 배포
- 지정 횟수 재시도와 수집 오류율 5~10%에서 0%로 개선



