버
버즈빌
December 11, 20221회
엘라스틱서치를 활용한 수평 확장 가능한 광고 서버 만들기

간단 소개
엘라스틱서치를 활용하여 수평 확장 가능한 광고 서버를 구축하고 성능을 최적화한 사례를 소개합니다.
AI Summary
- 광고 서버의 도전 과제 및 특성
- 다수 테이블 Join 필요: 광고 객체 조회를 위해 여러 테이블 접근으로 성능 저하 발생 가능.
- 복잡한 Where 조건: 다양한 타겟팅 조건으로 인해 Where 절 조건문 증가, 100개 이상 조건 필요.
- 읽기 요청이 쓰기 요청 대비 극단적으로 많고 최종 일관성이 허용되는 광고 서버의 특성을 활용.
- 엘라스틱서치를 활용한 해결 방안
- 검색 엔진의 inverted index를 활용하여 복잡한 조건에 대한 효율적인 조회 가능.
- 엘라스틱서치를 추천 엔진으로 활용하여 광고 순위 매기기 및 머신러닝 기능 활용 가능.
- 광고 송출에 적합한 엘라스틱서치 클러스터 설정: 샤드 수를 줄이고 레플리카를 활용하여 성능 최적화.
_only_local옵션으로 불필요한 네트워크 통신 방지, CPU 성능이 좋은 인스턴스 사용 권장.
- 결론
- 최소한의 노력으로 엘라스틱서치를 활용하여 수평 확장 가능한 광고 서버 구축.
- 안정적인 시스템 운영 및 빠른 응답 속도 (P95 기준 약 21ms) 달성.
Next Feeds
[if kakao 2022] Batch Performance를 고려한 최선의 Aggregation
기존 통계 배치의 GroupBy+SUM 쿼리 의존성 문제를 Redis를 활용한 새로운 아키텍처로 개선하여 성능을 향상시킨 사례를 소개합니다.
Spring BatchAggregationRedis성능 개선카카오페이
2022. 12. 9.
카카오페이
[if kakao 2022] Batch Performance를 고려한 최선의 Reader
카카오페이의 대량 데이터 처리를 위한 최적의 ItemReader 구현 경험 공유: ZeroOffsetItemReader와 ExposedCursorItemReader를 소개하고 성능을 비교 분석합니다.
Batch PerformanceItemReaderZeroOffsetItemReaderExposedCursorItemReaderChunk Processing
2022. 12. 9.
카카오페이
[if kakao 2022] 사례로 보는 모바일 자동화 테스트를 통한 모니터링
카카오페이의 모바일 자동화 테스트 환경 구축 및 모니터링 프로세스, 장애 발생 사례를 통한 효율적인 이슈 파악 및 처리 과정 소개.
자동화 테스트모바일 테스트Device FarmJenkins카카오페이
2022. 12. 9.
카카오페이
Technical Writing: 글로 하는 의사소통 / if(kakao)2022
테크니컬 라이팅의 중요성과 원칙을 소개하고, 효과적인 정보 전달을 위한 글쓰기 방법을 제시합니다.
테크니컬 라이팅글쓰기의사소통정보 전달문서화
2022. 12. 9.
카카오엔터테인먼트FE
ㄷㄷㄷ: Domain Driven Design과 적용 사례 공유 / if(kakao)2022
카카오엔터테인먼트의 MSA 전환 사례로, DDD 적용 배경, 핵심 개념, Hexagonal Architecture, 그리고 적용 후 과제와 효과를 분석합니다.
DDDMSAHexagonal ArchitectureBounded-ContextAggregate
2022. 12. 9.
카카오엔터테인먼트FE
섬세한 ISFP의 코드 가독성 개선 경험 / if(kakao)2022
ISFP 개발자의 코드 가독성 개선 경험을 바탕으로, 정확한 단어 선택과 코드 형태 개선을 통해 가독성을 높이는 방법을 제시합니다.
코드 가독성ISFP단어 선택코드 형태유지보수
2022. 12. 9.
카카오엔터테인먼트FE