Observability
미디어 & 엔터테인먼트

Gurunavi, Inc.: 운영 효율성 및 고속 검색 기능으로 대량의 로그 데이터 분석

한눈에 보기

  • 50
    데이터베이스 유형 수
  • 5백억
    문서 수, 총 데이터 볼륨
  • 30TB
    디스크 크기

Gurunavi, Inc. 소개

Gurunavi Inc.는 1996년 6월 식당 정보 사이트인 Gurunavi를 설립한 이래로 주로 식당 및 기타 유사한 서비스에 대한 정보 제공을 중심으로 계속 광범위한 사업을 운영해 왔습니다. Gurunavi는 유서 깊은 업계 선두 주자로서, 약 500,000개의 식당, 58,951개의 유료 회원 식당1, 6,100만 명의 월간 고유 사용자2, 1,796만 명의 회원3을 보유하고 있습니다. 여기에 식당에 대한 정보 통신 기술(ICT) 지원 등 포괄적인 지원 서비스를 제공하여 식당 방문객과 식당 자체에 부가 가치를 제공합니다. Gurunavi는 2018년부터 소셜 미디어 이용, 회원 아이디와 Rakuten 아이디 연동, 식당에서 현금 없이 결제할 수 있는 Gurunavi Pay 서비스 등 고객 유치를 위한 새로운 서비스를 제공하기 시작했습니다.

일반 사용자들이 가장 많이 알고 있는 것은 스마트폰이나 PC로 볼 수 있는 Gurunavi의 식당 정보지만 이는 회사가 제공하는 서비스의 일부분에 불과합니다. Gurunavi의 서비스로는 식당의 고객 관리를 돕는 원장 서비스와 Gurunavi Pay 다중 결제 서비스가 있으며, 모두 식당의 ICT 환경 구축을 위한 종합적인 지원을 제공하고 있습니다. 물론, 두말할 필요도 없이 이 모든 것은 방대한 양의 로그 데이터가 있어야 가능합니다.

1: 2019년 9월 30일 기준. 2: 2018년 12월 기준. 3: 2019년 10월 1일 기준.

대량의 로그 분석에 필요한 고속 검색을 위해 Elastic 채택

Gurunavi는 일본에서 식당 등에 대한 정보를 제공하는 온라인 서비스의 선두 주자로, 초기부터 이러한 서비스를 지원하기 위해 대규모 ICT 환경을 운영해왔습니다. 분명히, 이러한 시스템은 많은 양의 로그 데이터를 출력하며, 이전에는 이 데이터를 분석하는데 상당한 시간과 인력이 소요되었습니다.

Gurunavi 개발부의 엔지니어링 섹션 담당 차장인 Toshiaki Iwamoto는 당시 상황을 다음과 같이 회상합니다.

“2016년경, Gurunavi는 이미 수천 대의 서버를 보유하고 있었습니다. 장애가 발생하거나 유지 보수가 필요할 때는 영향을 받은 서버에 직접 로그인하여 로그를 확인하고, grep 명령으로 로그를 조회하고, scp 명령을 사용하여 로컬 환경에 로그를 임시로 복사하고, 그런 방식으로 문제를 처리해야 했습니다. 이 조사 과정은 완료하는 데 1시간 이상이 소요되며, 이는 실시간으로 대응할 수 없고 수행해야 하는 수작업이 많아 과실이나 다른 부주의한 실수가 발생하게 됨을 의미합니다. 시스템과 로그가 점점 많아짐에 따라 이러한 워크로드를 처리할 수 있는 무언가가 더욱더 필요하게 되었습니다.”

Gurunavi가 Elastic Stack 제품인 ElasticsearchKibana를 알게 된 것은 이때였습니다.

Elastic Stack은 제공되는 광범위한 제품 구성 요소를 사용하여 대상 데이터를 로컬 환경으로 다운로드하지 않고도 여러 데이터 소스에 걸쳐 고속 실시간 검색을 지원합니다. 회사의 서비스가 확장되고 고도화됨에 따라 애플리케이션 간 API 호출도 점점 더 많아졌습니다. Gurunavi가 수많은 로그를 분석해야 한다는 점을 고려할 때, Elastic Stack 제품은 실제로 요구에 가장 적합한 솔루션이었습니다. Gurunavi의 Iwamoto 씨는 “당시 시장에는 경쟁자라 할 만한 제품이 전혀 없었고, Elastic이 유일한 선택지였기 때문에 Elastic으로 결정했습니다.”라고 말했습니다. Gurunavi는 2016년에 Elasticsearch와 Kibana를 완벽하게 구현했습니다.

Elastic Cloud를 구현하여 버전 업그레이드 워크로드 감축

구현 후 몇 년이 지난 2018년 말, Gurunavi는 AWS를 사용하기 시작했습니다.

Gurunavi는 이때 갱신해야 하는 Elastic Stack 라이선스가 있었기 때문에 이 시기를 선택하여 클라우드로 전환했고, 회사는 Elastic Cloud의 Elasticsearch Service를 사용하기 시작했습니다. 이 작업의 목적은 AWS 환경에서 로그 수집 및 분석을 구현하고 Elastic 업그레이드의 운영 워크로드를 줄이는 것이었습니다.

Iwamoto 씨는 “일부 사용자는 2018년 기준으로 이미 익숙한 고품질 Kibana 인터페이스를 사용해 AWS CloudWatch Logs를 보고 싶다고 말했습니다. 로그 데이터 수집 및 기타 기능을 경쟁사의 제품과 비교한 결과, Elastic Cloud가 비용, 성능 및 항상 최신 버전을 사용할 수 있다는 면에서 앞서 있었습니다. 구현을 위해 Functionbeat 및 Elasticsearch Ingest Node를 사용하도록 선택했습니다.”라고 말했습니다.

Gurunavi의 또 다른 우선순위는 업그레이드 및 유사 작업의 운영 워크로드를 줄이는 것이었습니다. Iwamoto 씨는 필요한 기술 전문 지식을 갖춘 유일한 직원이었기 때문에, 이러한 업무들이 한 개인의 기술에 지나치게 의존하지 않도록 하는 것이 중요했습니다. “버전 업데이트는 빈번하지만 실제로 업데이트를 처리할 수 있는 사람은 저뿐이었습니다. 즉, 저 혼자 처리해야 하는 작업량이 엄청나게 많았습니다. Elastic Cloud를 도입하면 이러한 문제도 해결할 수 있을 것으로 생각했습니다.”

(Toshiaki Iwamoto, Gurunavi)

이렇게 하여 Gurunavi는 온프레미스 및 클라우드를 통해 포괄적인 Elastic 환경을 갖추었습니다.

모든 애플리케이션 및 네트워크 디바이스에서 로그 고속 검색

Gurunavi의 현재 시스템은 50가지 유형의 데이터베이스와 데이터 볼륨이 총 500억 개의 문서에 달하는 모든 애플리케이션과 네트워크 디바이스에서 수집한 로그를 처리하고 있습니다.

위에서 설명한 대로 데이터 추출을 위해 온프레미스 대용량 클러스터의 로그 데이터가 Logstash를 사용하여 Elasticsearch로 전송되고, 클라우드 환경(컨테이너 포함)의 CloudWatch Logs는 Functionbeat에서 Ingest로 전송됩니다. [Amazon] S3 데이터는 Logstash를 통해 Elasticsearch로 전송됩니다. 모든 로그를 투명하고 횡단적으로 모니터링할 수 있기 때문에 이러한 데이터 문제를 해결할 뿐만 아니라 보다 전략적으로 활용할 수 있습니다.

“Gurunavi는 서비스 제공업체이며, 이는 우리가 다양한 언어를 다룬다는 것을 의미합니다. 게다가, 수집된 로그 데이터의 유형은 관련 애플리케이션의 특성에 따라 다르며, 많은 인덱스가 관련되어 있습니다.”라고 Iwamoto 씨는 말했습니다. “개발자는 클라우드를 포함하여 모든 것을 횡단적으로 보고 싶어했습니다. 이는 이제 포괄적인 Elastic 환경이 설정되었으므로 실제로 가능합니다.”

신속한 문제 해결, 운영 워크로드 감소, 데이터의 새로운 용도

Iwamoto 씨는 처음에 두 가지 사항을 기준으로 Elastic Stack의 전반적인 이점을 평가했습니다.

“첫째, 로그 데이터를 복사하고 직접 확인하는 데 1시간 이상이 걸렸었는데, 이러한 작업이 단 몇 초로 단축되면서 효율성이 크게 향상되었습니다. 이를 통해 문제의 출현부터 그에 대한 조사의 종결까지 전 과정이 가속화되었고, 그 과정의 정밀도가 획기적으로 향상되었습니다. 제공된 API를 사용하여 로그 경보가 Slack 또는 Webhook으로 전송되어 보다 신속하게 대응할 수 있게 되었습니다. 또한 Elastic Cloud는 다른 버전으로 전환하는 데 수반되는 주요 워크로드 없이 즉, 중단 없이 업그레이드할 수 있으며, 최신 버전을 항상 사용할 수 있다는 점도 또 다른 주요 이점입니다. 과거에 다른 업무와 병행하며 거의 혼자서 업그레이드를 처리할 때는 조사를 포함하여 업그레이드 수행에 5~10일이 걸렸습니다. 이제 업그레이드는 거의 시간이 걸리지 않습니다.” (Toshiaki Iwamoto, Gurunavi)

회사의 새로운 인바운드 관광 전략에 대한 시스템의 기여도 간과할 수 없습니다.

예를 들어, Elastic Stack을 사용하여 위치 정보 데이터를 추출하고 사이트 방문자의 위치를 시각화할 수 있습니다. Iwamoto 씨는 “Amazon Cloud Front는 AWS의 CDN 서비스이며, 로그를 사용해 국가별로 사이트 액세스 데이터를 볼 수 있습니다.”라고 말했습니다. “왜 이 지역에서 이렇게 많은 방문자가 오는 걸까요? 그리고 왜 여기선 이렇게 적죠? 이 데이터를 사용하여 이러한 문제를 제기하고, 데이터를 드릴다운하여 예를 들어 관련 콘텐츠 또는 서비스 제공업체에 문제가 있는지 확인할 수 있습니다. 이러한 정보를 기반으로 콘텐츠 전송 속도를 높이거나, 캠페인을 시작할 시기를 선택하거나, 정보를 향후 인바운드 관광 전략에 매우 유용하게 사용할 수 있는 기타 의사 결정을 내릴 수 있습니다.”

이러한 직관적인 결정에 기여한 또 다른 요소는 Vega를 사용한 그래픽 데이터의 시각화였습니다. Kibana 6.2의 새로운 기능을 통해 Vega 및 Vega-Lite와 함께 Elasticsearch 데이터를 사용하여 풍부한 시각화를 생성할 수 있었습니다. 이러한 시각화를 통해 사용자는 방대한 양의 데이터에서 추출한 정보에 대한 개요를 얻고 이를 사용해 직관적인 결론에 도달할 수 있습니다. 이 기능은 마케팅 또는 관리 부서 직원과 같이 IT 전문가가 아닌 사람에게도 유용합니다.

Iwamoto 씨는 Elastic 구현의 이점을 요약하면서 “현재 우리의 복잡한 시스템 환경과 방대한 양의 관련 로그 데이터를 고려해볼 때 Elastic Stack이 존재하지 않는 세상은 상상할 수도 없습니다.”라고 말했습니다.

비즈니스 전략에서 데이터 활용 확대

고속 로그 검색을 지원하고 클라우드를 사용해 버전 업그레이드 워크로드를 줄인 Gurunavi는 이미 보다 전략적인 목적으로 Elastic Stack을 사용하는 방법을 검토하기 시작했습니다.

Iwamoto 씨는 “Elastic 환경과 Elastic Cloud가 구축됨에 따라 운영 문제를 한 개인의 기술에 의존해야 하는 제약에서 벗어났고 시스템 활용도도 획기적으로 증가했습니다."라고 말했습니다. “예를 들어, 애플리케이션 측 직원이 만든 대시보드는 KPI를 기준으로 시간 경과에 따른 잠재 고객 전환율을 보여주었습니다. 로그 데이터를 문제 해결 및 기타 시스템 관리 관련 목적뿐만 아니라 이와 같은 비즈니스 전략 관련 목적에도 최대한 활용함으로써 훨씬 더 높은 수준의 가치를 창출할 수 있다고 생각합니다.”

Gurunavi는 계속해서 고객과 식당 모두에 고부가가치 서비스를 제공하고 있습니다.

Elastic Stack은 이러한 서비스를 가능하게 하는 총 500억 개 문서에 달하는 방대한 양의 로그 데이터를 최대한 활용하는 데 필수적인 역할을 합니다.