프로젝트 소개
이 저장소는 Google Cloud Platform에서 저지연 웹 트래픽 분석 솔루션을 구축하는 방법을 보여줍니다. 아키텍처는 네 가지 주요 부분으로 구성됩니다:
1. **이벤트 ingestion** – 간단한 Python 이벤트 생성기가 생성한 클릭스트림 메시지를 Pub/Sub 토픽이 수신합니다. Pub/Sub은 생산자와 소비자를 분리하는 지속 가능하고 전역적으로 이용 가능한 메시지 버스를 제공합니다.
2. **스트리밍 처리** – Apache Beam 파이프라인이 Dataflow(runner=DataflowRunner)에서 스트리밍 모드로 실행됩니다. 파이프라인은 Pub/Sub 이벤트를 읽어서 관련 필드를 추출하고 Cloud Memorystore(Redis)의 메트릭 카운터를 업데이트합니다. Redis는 고유 사용자 카운팅과 집합 기반 분석에 매우 효율적인 native set 및 HyperLogLog 명령(`SCARD`, `SINTERSTORE`, `PFADD`, `PFCOUNT`)을 사용하기 때문에 인메모리 스토어로 사용됩니다.
3. **메트릭 저장소** – Cloud Memorystore(Redis)는 실시간 메트릭을 보유합니다. Redis의 내장 데이터 구조를 활용함으로써, 이 솔루션은 커스텀 집계 코드를 피하고 1초 미만의 쿼리 지연 시간을 달성합니다.
4. **시각화** – `dashboard/` 폴더에 있는 Spring Boot 애플리케이션은 Jedis 클라이언트를 통해 Redis에 연결하여 집계된 값을 읽어들인 후 Google Charts로 렌더링합니다. UI는 자동 새로고침을 제공하며, 운영자나 마케팅 담당자가 활성 사용자, 실험 참여, 전환율, 사용자 겹침 같은 KPI를 모니터링할 수 있습니다.
저장소는 다음을 위한 스크립트와 지침을 포함합니다:
- 필요한 GCP 서비스(Pub/Sub, Dataflow, Memorystore, Cloud Storage, VPC 네트워킹) 설정
- Maven을 사용한 Dataflow 파이프라인 배포
- Python 가상 환경에서 더미 이벤트 생성기 실행
- VPC 제한 Redis 접근을 위해 프록시 VM 뒤에 Spring Boot 대시보드 실행
- Cloud Shell 웹 미리보기를 통해 라이브 대시보드 확인
모든 구성 요소는 완전히 관리되는 서비스이므로 솔루션은 자동으로 확장되며 최소한의 운영 오버헤드만 필요합니다. 이는 GCP에서 실시간 웹 분석, A/B 테스트 모니터링, 또는 클릭스트림 기반 KPI 리포팅이 필요한 사람을 위한 시작 키트로 적합합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.