카카오모빌리티 : 구글클라우드의 Google Kubernetes Engine 도입으로 폭발적인 트래픽 부담 덜고 안정성 높여

Kakao Mobility에 대하여

카카오모빌리티는 택시, 기차, 버스, 항공, 대리운전, 주차, 내비게이션, 공유자전거 등 일상 생활의 모든 이동 서비스를 온디맨드로 제공하는 모빌리티 선도 기업입니다. 카카오 T는 우리나라 경제활동인구 대비 109% 규모 이상의 가입자가 매일 이용하는 대표 MaaS 플랫폼으로 단순한 이동을 넘어 급격히 발전하는 모빌리티 문화의 모든 것을 담아내고 있습니다.

산업 분야: 미디어 및 엔터테인먼트
위치: 대한민국

어떤 어려움을 겪고 계신지 알려주세요. Google Cloud가 도와드리겠습니다.

문의하기

카카오모빌리티는 기존 온프레미스 기반 클라우드에 구글 클라우드 플랫폼의 Google Kubernetes Engine을 더한 멀티 클라우드 기반의 이중화 환경을 구축했습니다. 3,100만 명의 ‘카카오T’ 이용자와 2,200만 명의 ‘카카오내비’ 이용자가 다양한 환경에서 위치와 관련된 데이터를 요구하는 비즈니스의 특성상 예측하지 못한 트래픽 폭발에 대한 부담이 늘 잠재해 있었지만 구글 클라우드 플랫폼은 어떤 상황에서도 즉시 원하는 성능을 내어 주었습니다.

구글 클라우드 사용 효과

  • 최적화된 Kubernetes UI 환경
  • SLA 100% 목표로 하는 운영 안정성 확보
  • 가용성 향상과 이중화 동시 해결

Kubernetes 기반의 클라우드 이중화 환경 구축 순간적으로 4배 이상 늘어난 트래픽에도 유연하게 대응

카카오모빌리티는 차량용 내비게이션 '카카오내비'와 MaaS 플랫폼 ‘카카오 T’를 기반으로 택시, 기차, 버스, 항공, 대리운전, 주차, 자전거 등 다양한 이동의 호출 및 예약 서비스를 제공하는 기업입니다. 현재 3,100만 명의 ‘카카오T’ 이용자와 2,200만 명의 ‘카카오내비’ 이용자가 매일처럼 이동에 카카오모빌리티와 함께 하고 있습니다. 우리나라 경제활동인구 대비 109% 규모 이상의 인구가 일상의 이동에 카카오모빌리티 서비스를 이용하고 있습니다.

이용자가 많다는 것은 곧 서비스가 책임져야 할 트래픽 규모가 크다는 이야기로 연결됩니다. 이미 카카오모빌리티는 인프라에 10만 개가 넘는 프로세서 코어가 쓰이고 있고, 매일 수집되는 데이터는 수 십 테라바이트 (TB) 에 달합니다. 여기에 서비스가 더 정교해지고, 항공과 자율주행 등 새로운 기술이 더해지면서 카카오모빌리티의 트래픽 증가세가 매 분기마다 100% 씩 늘어날 만큼 폭발적인 성장을 이어가고 있습니다.

“트래픽이 늘어난다는 것은 비즈니스가 계속해서 성장하고 있다는 가장 확실한 지표이긴 하지만 다른 한편으로는 운영에 대한 부담이 그만큼 크다고 할 수 있습니다. 안정적이고 탄력적인 인프라에 대한 내부적인 고민이 오랫동안 이어져 왔고, 구글 클라우드 플랫폼의 Google Kubernetes Engine은 사용성, 효율성, 성능 등 모든 면에서 최적의 결과를 만들어 주었습니다.”

김잠제 카카오모빌리티 DevOps 팀장은 모빌리티 서비스에서 가장 중요한 것으로 즉시성을 꼽았습니다. 이용자들이 온디맨드 형태로 정보를 이용하기 때문에 잠깐의 장애에도 이용자들이 크게 불편을 겪는 서비스라는 설명입니다.

최근까지 카카오모빌리티는 카카오의 여러 서비스들이 함께 이용하는 온프레미스 클라우드를 통해 운영됐습니다. 이미 카카오모빌리티는 급박하게 변하는 트래픽에 대응하기 위해 초기부터 모든 인프라를 Kubernetes로 운영해 왔습니다. Kubernetes 클러스터와 데이터센터를 이중화해서 갑작스러운 트래픽의 대응과 전반적인 안정성에 대응했습니다.

온프레미스 클라우드는 최신 기술로 잘 관리되었고, 대부분의 상황을 매끄럽게 처리해주었지만 카카오모빌리티의 서비스들이 급격하게 성장함에 따라 늘어나는 트래픽에 대응하는 것이 쉽지 않았습니다. 카카오모빌리티는 서비스 수준 협약 (SLA) 를 100% 수준으로 목표로 하고 있고, 구글 클라우드 플랫폼을 통해 클라우드 수준의 이중화를 구축하면서 그 기준에 한 발짝 더 다가섰습니다.

순간적으로 4배 늘어난 트래픽에도 유연한 대응

카카오모빌리티의 인프라는 어느 정도로 큰 부담을 안고 있었던 것일까요? 가장 핵심적인 부분은 경로 탐색인데, 이는 지도 경로 탐색이나 차량용 내비게이션 앱 뿐 아니라 택시나 대리운전, 퀵 등 모빌리티 서비스 공급자를 비롯해 외부의 수많은 파트너사들이 API로 24시간 쉴 새 없이 활용되고 있습니다.

특히 출퇴근 시간처럼 사람들의 이동이 늘어나는 특정 시간대에는 감당하기 어려울 만큼 트래픽이 폭발했습니다. 운영 부서는 트래픽에 대응하기 위해서 늘 안정적인 자원을 확보해야 하는 부담이 컸고, 개발자는 서비스의 개발보다 시스템 자원 확보와 요구 사항을 줄이기 위한 기술적 트릭에 집중하는 불균형이 일어났습니다. 그럼에도 서비스 이용량은 더 늘어날 수밖에 없는 상황이었고, 늘어나는 트래픽과 자원 부족 때문에 새로운 서비스를 만들어내는 데에 부담을 느낄 정도였습니다.

“카카오모빌리티의 서비스는 모두 위치에 기반합니다. 위치 정보는 지도와 POI도 중요하지만 이동을 중심에 둔 카카오모빌리티의 서비스가 주는 가치는 경로 탐색에 있습니다. 다양한 경로를 찾아주는 카카오 지도와 차량용 내비게이션인 ‘카카오 내비’를 비롯해, 택시와 대리운전 등을 연결하는 카카오T까지 현재 위치에서 목적지를 향하는 경로는 시간, 요금 등 서비스의 질을 결정합니다.”

여기에 더해 카카오모빌리티는 이 경로 탐색 기능을 API로 만들어서 운영하고 있습니다. API 형태로 운영되기 때문에 카카오모빌리티의 자체 서비스에 쉽게 연동해서 활용할 수도 있지만 동시에 이 API를 외부로도 공개해서 다른 기업과 앱 개발자들이 카카오의 데이터를 활용할 수 있도록 하고 있습니다. 위치 기반의 생태계를 운영하는 책임도 갖고 있는 것입니다.

경로 탐색에 대한 트래픽은 여러가지 현실의 상황에 큰 영향을 받습니다. 출퇴근 시간을 비롯해, 대중 교통 막차가 끊어진 이후 시간, 명절 귀향길 등에는 엄청난 트래픽이 일어납니다. 도로의 트래픽이 곧 카카오모빌리티의 트래픽으로 이어지는 것이지요. 물론 오랜 운영을 통해 경험이 생기면서 상황에 따라 어느 정도 미리 자원을 확보해 두고 대응을 해 왔습니다. 정말 어려운 순간은 천재지변처럼 갑자기 일어나는 상황이지요. 예를 들면 미리 예고되지 않은 폭설로 도로가 마비되면서 한 순간 길에 쏟아져 나온 사람들이 앱으로 택시를 부르거나 가능한 대중교통을 찾는 것이지요.

미리 자원을 많이 확보해두면 되는 것 아닐까요? 카카오의 여러 서비스가 함께 쓰는 데이터센터의 온프레미스 클라우드는 즉각적인 자원 확보가 쉽지 않았습니다. 그렇다고 필요하지 않을 때 미리 많이 할당해 두는 것도 옳지 않았습니다. 카카오모빌리티는 이 자원 확보를 유연하게 처리하기 위해서 구글 클라우드 플랫폼을 이용하기로 결정했습니다.

카카오모빌리티는 구글 클라우드 플랫폼을 도입한 이후 필요에 따라 즉각적으로 시스템 자원을 확보할 수 있게 됐고, 무엇보다 상황 대응을 쉽고 빠르게 처리할 수 있었다고 합니다. 실제로 구글 클라우드 플랫폼 도입 이후에 갑작스러운 날씨 변화로 트래픽이 예상했던 최고치의 약 4배까지 늘어난 적이 있었지만 큰 무리 없이 대응이 가능했습니다.

GKE의 매끄러운 Kubernetes 경험

애초 카카오모빌리티는 유연한 자원 분배를 위해서 Kubernetes 기반의 컨테이너 체계로 서비스를 만들어 왔습니다. 카카오모빌리티가 여러 클라우드 서비스 중에서 구글 클라우드 플랫폼을 선택한 가장 큰 이유도 바로 이 Kubernetes 컨테이너를 편리하고 안정적으로 운영, 관리할 수 있는 Google Kubernetes Engine에 있었습니다.

Google Kubernetes Engine은 단순히 막대한 트래픽을 양적으로만 처리하는 것이 아니라 막대한 트래픽을 적절히 분산 처리해서 효율을 높이고, 필요할 때는 순간적으로 처리량을 조정하는 등 유연하게 대응하면서 클라우드 이중화에 대한 기대를 모두 만족시켜주었습니다. 김잠제 팀장은 특히 구글 클라우드 플랫폼의 Kubernetes 경험을 높게 샀습니다.

“이미 카카오모빌리티는 Kubernetes로 운영됐기 때문에 Google Kubernetes Engine으로 이중화가 간단하게 이뤄지면서도 사용성에는 큰 차별성이 있었습니다. 보통 Kubernetes를 이용하게 되면 서드파티 도구들을 이용해야 하는 경우가 많은데, Google Kubernetes Engine은 기본 UI만으로도 직관적으로 모든 기능을 다 활용할 수 있었습니다.”

자원의 효율성도 높았습니다. 대부분 노드에 활용하는 가상머신은 4코어, 16코어처럼 자원의 양이 미리 정해져 있어서 적절한 것을 고르는 것이 최선이지만 구글 클라우드 플랫폼은 딱 필요한 만큼의 CPU 코어, 메모리, 스토리지를 정해서 할당할 수 있어서 불필요한 자원이 따라오는 것을 줄일 수 있었습니다.

구글 클라우드 플랫폼의 Network Endpoint Group 은 백엔드와 서비스 그룹을 구성하고 관리하면서 각 서비스를 컨테이너에 적절하게 배포해 줍니다. 구글의 Network Endpoint Group 은 로드밸런서에서 포드 (pod) IP를 직접 지정하기 때문에 실제 노드 (VM instance) 의 IP를 확인하는 단계를 거치지 않습니다. 이러한 특징은 network hop 을 줄여 효율을 높여줄뿐만 아니라 컨테이너 수준의 부하분산이 가능하여 적절한 컨테이너에 빠르게 일이 나눠지기 때문에 안정성 또한 크게 높일 수 있었다고 합니다.

“성능면에서도 만족스러웠습니다. 특히 컨테이너 자원 관리를 처리하는 프로비저닝 속도가 매우 빨랐습니다. Google Kubernetes Engine은 요청이 이뤄지면 10초, 길어야 30초 안에 적절한 노드가 마련됩니다. 급격하게 트래픽이 늘어나는 순간에도 매끄럽게 자원이 할당되고 워밍업 없이 곧바로 운영이 이어졌습니다. 이 경험을 통해서 예측하지 못한 트래픽이 쏟아져도 민첩하게 어떤 상황에도 대응할 수 있다는 확신이 생겼습니다.”

Kubernetes 컨테이너들을 Google Kubernetes Engine으로 옮기는 과정도 순조로웠습니다. 구글의 기술 지원 엔지니어와 파트너사인 메가존이 밀접하게 붙어서 안정적으로 이전이 이뤄졌습니다. 실제 이전과 테스트는 한 달이 채 걸리지 않았습니다. 카카오모빌리티의 온프레미스와 구글 클라우드 플랫폼이 함께 운영되는 하이브리드 환경에서 큰 범위의 내부 IP 대역이 필요한 상황이 생겼는데, 구글과 메가존의 직접적인 기술 지원으로 어렵지 않게 상황을 해결할 수 있었습니다.

DevOps의 본질, 비즈니스에 집중할 수 있는 기회

표면적으로 구글 클라우드 플랫폼 도입 이후 카카오모빌리티는 트래픽에 대한 부담을 덜어낼 수 있었습니다. 하지만 이는 단순히 인프라의 안정성을 넘어 업무 환경과 일하는 방법, 그리고 장기적으로 서비스의 개선 등 비즈니스 전체에 영향을 끼치고 있습니다.

안정적인 자원 할당과 스케일 아웃은 특정 날짜, 특정 시간대에 긴장하며 인프라를 지키던 업무 환경을 없앴습니다. DevOps 팀은 직접 각자의 구글 클라우드 플랫폼의 상황을 모니터하고, 필요에 따라서 그때그때 적절한 자원을 확보하면 됐습니다. 그 자원 관리의 대부분은 자동으로 이뤄지면서도 엔지니어가 처리하는 것만큼이나 자연스럽게 운영됩니다.

멀티 클라우드의 이중화 구조 덕분에 자연스럽게 재해 복구 환경도 갖출 수 있었습니다. 인프라를 아무리 잘 운영한다고 해도 뜻하지 않게 말썽이 일어날 수 있습니다. 특히 API는 카카오모빌리티의 내부 서비스를 운영하는 핵심일 뿐 아니라 외부 파트너사들에게도 기반이 되기 때문에 장애가 일어나면 큰 문제로 번질 수 있습니다. 카카오모빌리티는 구글 클라우드 플랫폼을 이용함으로써, 온프레미스 클라우드로부터의 추가 인프라 확보 없이 손쉽게 재해복구환경을 갖출수 있었습니다.

구글 클라우드 플랫폼의 유연성과 카카오모빌리티의 Kubernetes 구조는 일반 서비스 외에도 재해 복구 솔루션으로도 연결됐습니다. 경로 탐색 API 뿐 아니라 카카오모빌리티의 컨테이너들은 Google Kubernetes Engine에 등록되어 있어서 혹시라도 온프레미스 환경이 서비스를 처리하지 못하는 상황이 닥치면 곧바로 구글 클라우드 플랫폼이 모든 역할을 대신할 수 있습니다.

“DevOps 팀은 본래의 업무인 서비스 개발, 운영에 더 집중할 수 있었고, 자원에 대한 걱정이 줄어들면서 운영은 더욱 매끄러워졌습니다. 애초 목표로 했던 SLA 100% 뿐 아니라 더 많은 서비스를 효율적으로 운영하기 위한 service mesh 시스템을 준비할 수 있는 여력도 생겼습니다. 장기적으로는 개발과 운영의 밸런스를 맞출 수 있는 사이트 안정성 엔지니어링 SRE (Site Reliability Engineering) 에 대한 시스템도 도입을 앞두고 있습니다.”

클라우드는 단순한 컴퓨팅 자원 확보를 넘어 카카오모빌리티의 일하는 방법과 문화, 그리고 서비스 개발의 집중도를 높여주었다는 것이 김잠제 팀장의 설명입니다. 카카오모빌리티는 구글 클라우드 플랫폼을 통해 트래픽에 대한 부담을 덜어낸 만큼 모빌리티라는 비즈니스의 본질에 더 집중하고, 더 나은 이동 경험에 대한 고민에 직접적으로 힘을 실을 수 있게 됐습니다.

어떤 어려움을 겪고 계신지 알려주세요. Google Cloud가 도와드리겠습니다.

문의하기

Kakao Mobility에 대하여

카카오모빌리티는 택시, 기차, 버스, 항공, 대리운전, 주차, 내비게이션, 공유자전거 등 일상 생활의 모든 이동 서비스를 온디맨드로 제공하는 모빌리티 선도 기업입니다. 카카오 T는 우리나라 경제활동인구 대비 109% 규모 이상의 가입자가 매일 이용하는 대표 MaaS 플랫폼으로 단순한 이동을 넘어 급격히 발전하는 모빌리티 문화의 모든 것을 담아내고 있습니다.

산업 분야: 미디어 및 엔터테인먼트
위치: 대한민국