▲리프트는 라이벌 업체인 우버보다 늦게 차량 공유 서비스 시장에 뛰어들었다(사진=ⓒ123RF)

리프트 라이벌 업체인 우버보다 한 발 늦게 차량 공유 서비스 시장에 뛰어들었다. 사실 우버가 이 시장을 창안했다고 말할 수 있다. 그러나 리프트는 뒤늦게 사업을 시작했음에도 클라우드 기반 빅데이터 플랫폼을 설계해 우버를 따라잡고 있다. 우버와 리프트는 자사의 컴퓨터 인프라에 대한 정보를 주저하지 않고 공유한다.

기술을 사용하고 개발하는 방식에 대한 개방적인 분위기는 빅데이터 생태계의 큰 축을 담당하는 구글, 페이스북 및 트위터 등의 실리콘 밸리 기술 회사들처럼 우버와 리프트에도 보급돼 있다.

하둡 분산 파일 시스템

리프트는 자사의 모바일 앱이 할 수 있는 모든 일을 허용할 컴퓨터 시스템을 설계할 때 우버가 같은 문제에 어떻게 접근했는지를 연구하기로 했다. 리프트는 데이터를 클라우드에 저장하고 있었지만 우버는 아파치 하둡(Apache Hadoop) 인프라에 투자하고 있었다.

리프트의 데이터 엔지니어인 리 가오는 클라우드에 데이터를 저장하면 우버가 하둡 분산 파일 시스템을 구현할 때 겪었던 기술적인 어려움을 우회할 수 있을 것이라고 말했다. 로우(Raw) 데이터 및 정규화된 데이터는 아바존 웹 서비스 3에 저장되고 이 데이터를 처리할 때는 아마존 웹 서비스 EC2가 사용된다.

클라우드 기반 지출은 상당히 높은 수준이다. 하지만 2018년 기준 600개 도시에서 사업을 운영하고 21억 달러(약 2조 4,950억 원)의 수익을 올린 리프트에게는 큰 부담이 아니다. 리프트는 아마존에 매달 최소 800만 달러(약 95억 원)의 비용을 지불하고 있다. 2021년까지 클라우드에 데이터를 저장하는 데만 3억 달러(약 3,564억 원)가 투자될 것이다.

리프트는 아마존만 이용하는 회사가 아니다. 키네시스(Kinesis) 메시지 버스와 레드시프트(Redshift) 데이터 웨어하우스 또한 사용하고 있다. 또 다른 시스템으로 데이터 처리와 분석을 마이그레션하는 경우도 있다.

▲리프트는 자사의 모바일 앱을 설계할 때 우버를 참조했다(사진=ⓒ123RF)

아파치 하이브

리프트는 사업을 막 시작할 무렵 레드시프트에 크게 의존하고 있었지만 2016년에는 아파치 하이브(Apache Hive)로 옮겼다. 가오는 "당시 아마존 웹 서비스에서 데이터 처리 및 저장 문제가 발생했지만 곧 해결됐다"고 말했다.

현재 리프트는 아파치 하이브를 이용해 빅 ETL(Extract, Transform, Load) 작업을 수행하고 있다. 또 2018년에는 하이브 고속 버전을 사용해 ETL 작업을 더 많이, 더 빠르게 처리했다. 더 강력한 쿼리 엔진을 위해 리프트는 프레스토(Presto)를 선보였다. 프레스토의 강점은 애드 혹 분석에 다른 데이터를 사용할 수 있다는 것이다.

아파치 스파크

리프트는 아파치 스파크(Apache Spark)도 사용하고 있다. 또 아파치 드루이드(Apache Druid)를 이용해 열 기반 메모리 내 OLAP(온라인 분석 처리)를 실시한다. 리프트는 SQL 에디터를 통합하는 아파치 슈퍼셋(Apache Superset)에도 의존하고 있다.

가오는 리프트가 배치 처리를 위해 하이브와 스파크를, 대화형 시스템을 위해 프레스토를 사용한다고 설명했다. 또 드루이드는 빠른 메트릭 데이터 저장을 위해, 슈퍼셋은 최적화된 사용자 인터페이스 도구를 위해 사용된다.

▲리프트는 ETL 배치 처리 및 머신러닝 모델 학습을 포함하는 아파치 스파크를 사용하고 있다(사진=ⓒ플리커)

드루이드와 프레스토

리프트는 회사로 들어오는 데이터를 데이터 마트 및 처리 엔진으로 보내기 위해 수많은 데이터 파이프라인을 구축했다. 리프트는 현재 드루이드와 프레스토를 연결하는 작업을 진행 중이다. 그렇게 하면 개발자들이 두 엔진의 상대적인 장점을 더 잘 활용할 수 있다. 또 슈퍼셋을 통해 통찰력을 생성할 수 있다. 또한 리프트는 포스트그레스(Postgres) 및 MySQL을 비롯한 여러 관계형 데이터베이스를 유지, 관리하고 있다.

데이터 엔지니어링 및 데이터 과학과 관련된 작업은 아파치 에어플로우(Apache Airflow)를 통해 수행된다. 에어플로우는 리프트 엔지니어 및 과학자들이 아마존 웹 서비스의 람다(Lambda) 기능 등을 사용할 수 있도록 돕는다. 가오는 에어플로우가 DAG를 통해 서로 다른 유닛을 조화롭게 만드는 데 사용될 수 있다고 설명했다.

리프트는 또한 실시간 데이터 처리에 상당한 투자를 하고 있다. 아파치 카프카(Apache Kafka) 및 아파치 플링크(Apache Flink) 등으로 스트리밍 서비스를 사용 중이다. 처음에는 아마존 키네시스(Amazon Kinesis)를 사용해 실시간 데이터 인프라를 구축했지만 확장성 문제가 발생하자 아파치 카프카로 마이그레이션했다.

회사는 컨플루언트(Confluent)와 서비스 계약을 맺었다. 카프카가 링크드인(LinkedIn)에서 분리된 후 컨플루언트는 카프카가 대중화하는 데 도움을 줬다. 현재 컨플루언트는 카프카를 아마존 웹 서비스의 서비스로서, 그리고 다른 클라우드 기반 시스템의 서비스로서 제공하고 있다. 리프트는 카프케를 실시간 메트릭이나 이벤트 데이터 등에 광범위하게 사용하고 있다.