TL;DR
Jumio는 팀별로 분산된 Feature 정의와 수동 배포, 지연 이벤트 처리 문제를 해결하기 위해 Amazon Kinesis Data Streams와 Apache Flink를 중심으로 한 streaming-first Feature Store를 구축했습니다. 실시간 이벤트는 Flink에서 변환된 뒤 Amazon SageMaker Feature Store의 인메모리 저장소로 전달되고, 같은 데이터는 Amazon S3·Amazon EMR·Apache Iceberg를 거쳐 모델 학습과 분석에 쓰이는 오프라인 저장소로도 축적됩니다. 95번째 백분위 응답 시간은 16.9밀리초, 읽기 P50은 8.44밀리초, 쓰기 P50은 18.6밀리초였으며, 인메모리 저장소 최적화로 연간 약 120,000달러의 운영 비용을 줄였습니다. 중앙화된 Feature 정의와 자동화된 배포는 학습·추론 불일치를 낮추지만, 여러 AWS 서비스의 통합과 비용 관리를 위해 전문성이 필요합니다.
섹션별 상세


용어 해설
- Feature Store
- — 머신러닝 모델이 사용하는 Feature를 저장하고 제공하는 시스템입니다. 온라인 저장소는 추론 요청에 맞춰 짧은 지연 시간으로 최신 값을 반환하고, 오프라인 저장소는 학습·평가·디버깅에 필요한 과거 데이터를 보관합니다. 두 저장소의 Feature 정의를 통일하면 학습과 추론 사이의 불일치를 줄일 수 있습니다.
- 스트림 처리(Stream Processing)
- — 데이터가 대량으로 쌓일 때까지 기다리지 않고 이벤트가 도착하는 즉시 처리하는 방식입니다. 이 글에서는 Amazon Kinesis Data Streams로 유입된 이벤트를 Apache Flink가 변환·보강한 뒤 Feature로 만들고 온라인 저장소에 기록합니다. 사기 탐지처럼 최신 정보가 필요한 추론에서 지연 시간을 낮추는 기반입니다.
- Apache Iceberg 테이블(Apache Iceberg Table)
- — 대규모 분석 데이터를 테이블 형태로 관리하는 오픈 테이블 포맷입니다. 이 아키텍처에서는 Amazon S3에 저장된 처리 결과를 Iceberg 테이블로 적재해 오프라인 Feature Store 역할을 맡깁니다. Amazon Athena와 Amazon EMR에서 학습·분석용 과거 Feature를 조회할 수 있습니다.
- 지연 도착 이벤트(Late-Arriving Events)
- — 실제 사건이 발생한 시점보다 늦게 데이터 파이프라인에 도착하는 이벤트입니다. 장기간의 검토 절차 때문에 초기 활동 직후 또는 몇 주 뒤에 들어올 수 있으며, 이미 기록된 Feature와 별도로 처리해야 합니다. Feature Store는 이벤트 시간과 키를 기준으로 기존 레코드와 새 값을 조정해야 합니다.
- 과거 데이터 백필(Backfill)
- — 새로운 Feature 정의나 수정된 처리 로직을 과거 데이터에 다시 적용해 학습·평가용 기록을 채우는 작업입니다. 실시간 추론만으로는 과거 시점의 상태를 재현하기 어렵기 때문에 오프라인 Feature Store가 필요합니다. 이 글의 구조에서는 Amazon S3와 Apache Iceberg가 백필과 모델 재학습을 지원합니다.
기술
- Amazon SageMaker Feature Store
- Amazon Managed Service for Apache Flink
- Amazon Kinesis Data Streams
- Amazon Data Firehose
- Amazon S3
- Amazon EMR
- Amazon EMR Serverless
- Amazon ElastiCache for Valkey
- Apache Iceberg
- Amazon Athena
- AWS Lambda
- AWS Glue Data Catalog
- AWS Lake Formation
- Java
- Python
활용 사례
- 실시간 사기 탐지
- 신원 확인
- 추천 시스템
- 낮은 지연 시간의 실시간 ML 예측
- 모델 재학습과 과거 데이터 백필
- ML 모델 디버깅·평가·모니터링
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.