
데브옵스
AWS Glue ETL을 활용한 CRM 데이터의 효율적인 병렬처리 전략
두줄요약
Step Functions와 Glue ETL로 고객사별 변경 데이터만 병렬 처리하는 아키텍처를 소개했습니다. 이를 통해 비용을 줄이고 준실시간 캠페인 분석 환경을 구축했습니다.
문제 상황
- CRM 캠페인 성과를 즉시 확인하기 어려운 긴 쿼리 실행 시간
- 반복 쿼리와 중복 계산으로 인한 비용 증가 및 리소스 낭비
- 시점에 따라 달라지는 결과로 인한 데이터 일관성 문제
원인 분석
- 고객사별 캠페인 데이터를 필요할 때마다 직접 조회하는 구조
- 대규모 고객사에 대한 전체 ETL 실행으로 인한 비효율
- 이벤트 적재 시점 차이로 동일 지표의 결과 편차 발생
해결 방법
- EventBridge와 Step Functions로 주기적 워크플로 구성
- Athena로 변경 대상 project_id만 선별한 뒤 Glue ETL 병렬 실행
- Glue Catalog, partition predicate, pushdown 조건으로 읽기 범위 최소화
성능/운영 포인트
- 서버리스 구성으로 인프라 운영 부담 감소
- 고객사별 작업 격리로 실패 영향 범위 축소
- 필요한 데이터만 처리해 비용 절감과 확장성 확보
적용해볼 점
- 변경 데이터만 추려 ETL을 실행하는 동적 스케줄링
- 중간 결과를 Parquet로 저장해 재사용성과 분석 효율 향상
- 캐시 해제와 Temp View 활용으로 Spark 작업 최적화
