NELO Alaska: 대용량 로그 데이터 저장을 위한 Apache Iceberg 도입기
백엔드
NELO Alaska: 대용량 로그 데이터 저장을 위한 Apache Iceberg 도입기
두줄요약
Elasticsearch 기반 로그 저장 구조의 비용과 확장성 한계를 해결하기 위해 Iceberg 기반 Alaska를 도입했습니다. Kafka 로그를 오브젝트 스토리지에 직접 적재하고, 실시간 조회와 장기 보관을 분리해 운영 효율을 높였습니다.
문제 상황
- Elasticsearch 기반 로그 모니터링 시스템의 저장 비용 증가와 확장성 한계
- Warm 계층 데이터 급증, 다수 클러스터 운영에 따른 장애와 인프라 비용 부담
- 장기간 보관 로그를 Elasticsearch로 계속 수용하기 어려운 구조
원인 분석
- 검색이 거의 일어나지 않는 장기 로그까지 검색용 시스템에 함께 저장
- 저장과 쿼리 컴퓨팅이 같은 노드에 묶인 구조
- 마스터 노드 메타데이터 한계와 대규모 클러스터 운영 부담
해결 방법
- 저장과 검색 컴퓨팅을 분리한 Apache Iceberg 기반 신규 스토리지 Alaska 도입
- Kafka 로그를 Iceberg 테이블로 직접 적재하고, 오브젝트 스토리지에 Parquet로 저장
- ACID, schema evolution, hidden partitioning을 활용해 실시간 쓰기와 조회를 병행
구조와 흐름
- 데이터 적재: Orca, Polarbear, Puffin으로 Kafka 수집, 최적화, 카탈로그 관리 분리
- 데이터 쿼리: Trino, API Server, Frontend로 조회 경로 구성
- Kappa Architecture 기반으로 실시간 데이터에 직접 접근 가능한 구조
