사용자 스토리

11번가: Elasticsearch를 통한 주문/결제에 대한 모니터링 및 이상 감지에 대한 Alert & 머신러닝 적용 사례

11번가는 고객에게 다양한 상품을 제공하는 커머스 포털입니다. 11번가의 김태경 백엔드 개발자는 "우리는 단순히 고객의 주문과 배송을 담당하는 것이 아닌 그 이상의 가치를 제공하기 위해 노력합니다.”라고 말합니다. 11번가는 고객이 원하는 모든 유형의 상품과 서비스를 경험 할 수 있도록 검색부터 구매까지, 쇼핑의 모든 과정에서 고객에게 최적의 솔루션을 자체 기술로 제공하고 있습니다. AI 기반의 상품 검색, 빅데이터 기반 맞춤형 추천 기술 등과 같이 11번가는 즐거운 쇼핑경험을 위해 수 많은 기술을 개발 지원하고 있습니다.

Elastic{ON} Tour Seoul을 통해 김태경 백엔드 개발자는 11번가가 그동안 시스템을 개편해 나가면서 어떻게 Elastic Stack을 활용했는지에 대해 공유했습니다. Elasticsearch를 만나기 전, 11번가는 모니터링에 필요한 모든 기능들을 개발하려 했습니다. 개발팀의 목적은 고객의 주문 개선인데, 모니터링과 관련된 기능만 개발하는 상황이 오게 될까 봐 두려웠었습니다. 하지만 11번가는 Elastic Stack적용 후 최소한의 개발로 시스템 오류 및 장애를 쉽게 대처할 수 있게 됐습니다.

Elastic과 함께한 11번가의 여정

2016년 11번가는 모노리틱 아키텍처를 사용하는 하나의 거대한 애플리케이션에 지나지 않았습니다. 2017년 마이크로 서비스 아키텍처로의 변환을 시도하며 이벤트 구동형 아키텍처를 추가하였습니다. 또한 주문, 결제, 메일, App Push 등 기존의 애플리케이션을 모두 복합형 아키텍처에 맞춰 변경하였습니다. 이후에도 11번가 개발팀은 계속해서 아키텍처를 업그레이드하였으나 기술적인 고민에 빠지게 됩니다. 이벤트가 잘 생성되고 있는지, 중간에 유실이 일어나지 않았는지, 혹은 중복 처리된 이벤트는 어떻게 처리할지 등의 문제가 계속해서 쌓였지만 이를 확인할 방법이 없었습니다. 마이크로 서비스 아키텍처로 개선하며 축적한 노하우로 자신감이 붙은 11번가 팀은 다시 한번 변화의 필요성을 느끼게 됩니다.

11번가 개발팀은 늘어나는 트래픽에 맞춰 서버를 계속해서 증설하기에 바빴습니다. 하지만 계속되는 서버 증설에도 오라클 DB의 한계를 느낀 개발팀은 ‘아키텍처 변경’이라는 체질 개선을 시도하게 됩니다. 수차례의 아키텍처 업그레이드 속에서 11번가는 기존에 이미 구축하여 사용하던 Elastic Stack을 활용하였고, Logstash를 이용하여 Kafka 내의 모든 데이터를 Elasticsearch로 전달했습니다. 그 결과 개발팀은 시스템 장애를 줄이고 개발에 사용되는 시간을 오로지 주문 개선에 쏟으며 더 나은 쇼핑 환경을 만들 수 있었습니다.

"Elastic Stack은 쉽게 활용이 가능하기에 누구나 작업할 수 있고 더 좋은 결과물을 만들어낼 수 있습니다. 저희는 Monitoring를 통해 이벤트 유실을 감지하고 Machine Learning을 통해 직전 3개월간의 데이터를 학습하여 상품의 이상 주문을 빠르게 감지하고 있습니다. 하지만 Elastic Stack이 가져다 준 변화는 단순히 기술의 향상 뿐만이 아닙니다. Elastic Stack은 저희에게 고객이 원하는 다양한 가치를 빠르게 파악하고 제공할 수 있도록 새로운 인사이트도 제공해 주었습니다." - 11번가의 백엔드 개발자인 김태경


11streetarchitecture.png

주석1. Elastic Stack을 사용한 11번가의 새로운 아키텍쳐


기존의 아키텍처는 고객의 주문과 결제에 관련한 응답을 주지 못했고, 이벤트 유실로 인해 주문 오류를 생성하는 등의 장애를 가지고 있었습니다. 주문과 결제 서비스에 대한 느린 응답, 또는 응답의 유실은 11번가가 나아가기 위해 넘어서야 할 과제였습니다. 그래서 개발팀은 Elastic Stack을 통해 매출 추이를 작성하고 분당 주문 및 결제 현황, 인기 상품, 결제 실패 이유 등을 한 대시보드에 담았습니다. 이제 Elastic Stack을 통해 하나의 화면을 보며 서로 같은 얘기를 할 수 있는 공간이 만들어졌습니다.

향후, 11번가는 Elastic Stack을 활용하여 이전에 없던 새로운 시도를 할 예정입니다. 현재 11번가는 Monitoring과 Machine Learning을 함께 사용하며 더욱 빠르게 고객 주문의 이상 징후를 감지하고 있습니다. 현재 11번가는 Zipkin만을 분산 트레이싱 모니터링 도구로 사용하고 있지만 향후에는 Elastic APM(Application Performance Monitoring: 오픈소스 애플리케이션 성능 모니터링)을 함께 사용하여 보다 높은 트래픽을 안정적으로 처리할 수 있도록 할 예정입니다.

Elastic{ON} Tour Seoul에서 김태경 백엔드 개발자의 전체 세션을 시청하고 11번가가 어떻게 Elastic Stack을 사용하여 고객에게 보다 높은 차원의 서비스를 제공하는지에 대해 좀 더 자세히 알아보세요.


11streetpresentation_screenshot.png