///
Search
🏫

SOCAR는 어떻게 2만대의 차량을 운영할까?: IoT Data의 수집부터 분석까지

[클라우드 네이티브] SOCAR는 어떻게 2만대의 차량을 운영할까 - IoT Data의 수집부터 분석까지.pdf
3048.1KB

IoT 데이터 파이프라인 구성 - 유년기

REST API 기반 연계…
데이터 누락 발생…

IoT 데이터 파이프라인 구성 - 소년기

IoT Core를 API Server 전단에 두어 스로틀링(throttling) 대응
But,,,,
데이터 누락이 해결되자 Aurora MySQL에 부하가 걸림.
Real-time, Historical 데이터가 Aurora MySQL에 Upsert, Insert 가 되고 있었다.
→ Aurora MySQL 한계가 오고 있었다..
API 서버와 DB간의 Connection 이슈로 데이터 적재 누락
데이터 성격(Real-time vs Historical)에 따라 목적에 맞는 데이터베이스에 적재
Real-time 데이터
ElastiCache
빠르게 읽고 쓰고..
Historical 데이터
DynamoDB

IoT 데이터 파이프라인 구성 - 성장기

데이터 성격에 따라 라우팅하기 위해 API 서버를 대체할 미들웨어 필요..
기존에 Kafka 운영을 하고 있어 데이터 스트림에 사용
IoT데이터는 IoT Core의 Rule을 사용해서 MSK 적재
ElastiCache, DynamoDB 적재를 위해 Connector 사용
내부적으로 검토하였으나 우측의 한계로 인해..

SOCAR Connector 개발

Consumer
MSK로 부터 데이터를 가져오는..
Handler
데이터를 특정 로직에 태워서 처리하는..
Loader
데이터를 데이터베이스 또는 스토리지에 적재
초당 20,000개 이상 데이터 처리…
멀티 쓰레드만으로는 처리를 못했다.. → 인프라의 도움이 필요했다..
메시지 트래픽이 많아지면 RTVF Connector를 스케일 아웃했다.
60초마다 업로드되는 데이터를 ElastiCache에 적재할 때는 1초로 풀어서 순차적으로 적재 필요.
Gorouting, Ticker를 사용해서 매 1초마다 Tick을 받아 새로운 쓰레드 생성 후 처리
토픽, 데이터베이스별로 Connector 배포
크리스마스 시즌.. 피크

IoT 데이터 파이프라인 과거 vs. 현재