콘텐츠로 이동하기
데이터 분석

확장 가능한 실시간 분석이 그 어느 때보다 용이해진 Pub/Sub

2021년 1월 29일
Sudhir Hasbe

Sr. Director of Product Management, Google Cloud

Kir Titievsky

Product Manager, Google Cloud

Google Cloud 사용해 보기

$300의 무료 크레딧과 20개 이상의 항상 무료인 제품으로 Google Cloud 사용을 시작해보세요.

무료 체험

  * 본 아티클의 원문은 2020년 12월 8일 Google Cloud 블로그(영문)에 게재되었습니다. 

최근 들어 실시간 분석 기능이 비즈니스의 필수 요소로 부상했습니다. 이제 초 단위로 업데이트되는 데이터 기반의 자동화된 실시간 의사결정은 최첨단 기술 기업의 전유물이 아니라 모든 기업의 기본적인 비즈니스 운영 방식이 되고 있습니다. IDC에 따르면 5년 후에는 데이터 중 1/4이 이상이 실시간으로 생성될 것으로 예상됩니다. 서비스와 사용자 환경의 질을 높이기 위한 치열한 경쟁이 이와 같은 성장을 견인하는 것으로 나타났습니다. 성장을 견인하는 또 다른 요인은 수많은 기존 비즈니스의 소비자화입니다. 상담사가 대신하던 많은 기능을 이제는 소비자가 직접 처리하고 있습니다. 따라서 모든 은행, 소매업체, 서비스 제공업체는 내부 앱부터 모바일 앱, 웹 앱에 이르기까지 많은 사용자 인터페이스를 갖춰야 하는 시대입니다. 이러한 인터페이스 작동에는 최신 데이터가 필요할 뿐 아니라 전례 없는 규모의 트랜잭션 및 상호작용 데이터 생성이 수반됩니다.   

실시간 데이터는 단순한 애플리케이션 기능이 아니라 근본적으로는 우수한 사용자 환경을 제공하기 위해 작업을 확장하는 것입니다. 여기에는 최신 시스템 모니터링, 알림, 고객 서비스 대시보드는 물론, 산업 장비부터 고객 서비스 작업, 소비자 기기에 이르는 모든 것의 제어 자동화도 해당됩니다. 실시간 데이터로 유용한 데이터 정보를 더욱 신속하게 활용하여 운영 응답성을 높일 수 있습니다 .

Emarsys의 데이터 책임자인 레벤트 오티는 "Google Cloud를 통해 진정한 실시간 참여 플랫폼을 구축할 수 있었습니다."라고 이야기하며 "예전에는 데이터를 매일 일괄 처리하였지만 이제는 이벤트가 발생하면 단 몇 초 만에 마케팅 작업을 실행하여 고객이 즉각적으로 반응할 수 있습니다. 덕분에 시장 경쟁력 확보에 큰 도움이 되었습니다."라고 말합니다.

실시간 분석의 시작점이 되는 메시징 

Google은 설립 초창기부터 대규모의 실시간 사용자 환경을 마련하는 과제와 씨름해 왔습니다. 이를 위한 Google 솔루션의 핵심 구성요소가 글로벌 수평 확장이 가능한 메시징 시스템인 Pub/Sub입니다. 지난 10년간 Google Ads, Google 검색, Gmail과 같은 Google 제품이 이 인프라를 사용하여 초당 수억 개의 이벤트를 처리해 왔습니다.   

몇 년 전, Google은 이 시스템을 Cloud Pub/Sub라는 이름으로 전 세계에 공개했습니다. Pub/Sub의 사용 편의성은 독보적입니다. 기존의 메시징 미들웨어도 동일한 기능을 다수 제공했지만 설계 특성상 수평 확장이 불가능했고 서비스 형태로 제공되었습니다. 오픈소스 스트림 처리 플랫폼인 Apache Kafka는 수평 확장이 가능한 스트리밍 쓰기와 읽기를 지원하는 파티션을 나눈 분산형 로그를 작성하여 확장성 문제를 해결했습니다. 같은 아이디어로 착안한 관리형 서비스도 개발되었습니다. 이러한 서비스는 일반적으로 파티션 또는 클러스터처럼 고정된 로컬 리소스라는 개념을 바탕으로 하기 때문에 데이터의 전역 배포 및 용량 관리 문제는 사용자의 몫으로 남겨졌습니다.

Pub/Sub는 자동 용량 관리를 가장 높은 수준으로 끌어올렸습니다. 지원되는 주제당 최대 10,000회의 구독이 가능하기 때문에 데이터 생산자는 구독자에게 데이터를 전달하는 데 필요한 용량에 대해 염려할 필요가 없습니다. 그런데 데이터 생산자로부터 독립된 위치에서 데이터를 읽기 위한 데이터 용량에 대한 비용도 소비자가 부담하는 경우가 많습니다. 단일 엔드포인트가 인근 리전으로 확인되어 데이터 지속성이 빨리 확보된다는 점에서 Pub/Sub는 고유한 글로벌 특성을 가지고 있습니다. 따라서 구독자는 위치에 상관없이 모든 리전에서 집계되는 데이터를 단일 스트림으로 수신할 수 있습니다. 동시에 데이터가 저장되는 위치와 도달하는 방식을 정밀하게 제어할 수 있는 권한이 사용자에게 주어집니다. 그렇기에 Pub/Sub는 BigQuery 데이터 수집부터 Dataflow를 사용한 자동화된 실시간 AI 지원 의사결정에 이르기까지 Google Cloud 및 기타 환경의 광범위한 애플리케이션에 데이터를 제공할 수 있는 편리한 수단입니다. 데이터 실무자는 Pub/Sub를 통해 통합 피드백 루프를 원하는 대로 간편하게 생성할 수 있습니다. CME Group의 데이터 서비스 글로벌 책임자인 트레이 베레는 "클라우드에서 고품질 실시간 데이터를 찾는 고객사가 전 세계적으로 늘고 있습니다."라고 말하면서 다음과 같이 덧붙입니다. "Google Cloud와의 혁신적인 공동작업 덕분에 고객은 인터넷이 연결된 곳이라면 어디서든 필요한 데이터에 더욱 쉽게 액세스할 수 있을 뿐 아니라 그 어느 때보다 쉽게 시장 데이터를 새로운 클라우드 기반 기술에 통합할 수 있게 될 것입니다." 

메시징의 접근성 개선

2020년은 Pub/Sub를 더욱 단순하게 만드는 데 주력한 한 해였습니다. Google에서 확인한 고객 사례 중에는 서비스 보증 내용에 맞춰 애플리케이션 설계를 조정해야 했던 경우도 있고 큰 폭의 비용 절감 목표를 달성하기 위해 자체적으로 비용 최적화된 Apache Kafka 클러스터를 빌드해야 하는 경우도 있었습니다. Google은 이러한 고충을 해결하고자 Pub/Sub를 여러 사용 사례에 더욱 쉽게 사용할 수 있게 하였고 고객의 총소유비용(TCO)을 대폭 낮추는 서비스를 선보였습니다. 

비용 효율적인 수집 옵션

Google은 수평 확장이 가능한 메시징 서비스를 필요로 하는 고객이 비용 최적화된 자체 관리형 Apache Kafka(단일 영역) 또는 유사한 OSS 시스템에 일반적으로 소요되는 비용으로 이용할 수 있는 Pub/Sub 버전을 빌드하는 작업에 착수했습니다. 그 결과 자체 OSS 솔루션 실행에 드는 TCO에 상응하거나 그보다 낮은 비용의 Pub/Sub 라이트가 개발되었습니다. Pub/Sub의 기본 버전과 비교해 Pub/Sub 라이트는 10배 더 저렴합니다. 단, 단일 영역 가용성 및 용량 관리 모델이 사용 사례에 적합한지 확인해야 합니다. 이 관리형 서비스는 다음을 비롯한 여러 사용 사례에 적합합니다.

  • 보안 로그 분석: 보통 비용 센터인 경우가 많고 위협 감지를 위해 모든 이벤트를 스캔할 필요가 없음
  • 색인 검색 및 캐시 업데이트 제공: 일반적으로 '최선의' 비용 절감 사례이며 안정성이 높은 메시징 서비스가 필요하지 않음
  • 게임 및 미디어 행동 분석: 스타트업 시 주로 낮은 비용이 핵심 요소인 사례

여기에 소개된Pub/Sub와 Pub/Sub 라이트 선택 가이드와가격 책정 비교 문서를 참고해 라이트 버전이 적합한지 여부를 결정하시기 바랍니다.  

확장 가능한 종합적인 엔터프라이즈급 메시징 서비스

올해 Pub/Sub에는 Google 사용자가 코드를 대폭 간소화할 수 있는 다양한 기능이 추가되었습니다. 추가된 기능은 다음과 같습니다.

  • 메시지 순서의 확장성: 메시지 전송 순서의 확장성은 일반적인 데이터 캡처 변경(CDC)부터 항공기 운항에 이르기까지 여러 애플리케이션에 어렵고도 중요한 사안입니다. Google에서는 최소한의 API 변경만으로 확장성과 주문형 용량에 지장을 주지 않고 메시지 순서를 확장할 수 있었습니다. 이제 메시지 순서 지정이 필요한 에플리케이션의 스테이트풀(Stateful) 비중이 훨씬 줄어들면서 작성 및 운영도 단순해질 수 있습니다. 샤드나 파티션이 없고 고객 ID와 같은 키의 모든 메시지가 안정적으로 순서대로 도착하기 때문입니다. 
  • 데드 레터 주제: 반복적인 애플리케이션 장애를 초래하는 메시지를 자동으로 감지하여 수동의 오프라인 디버깅 작업을 위해 분리할 수 있습니다. 이로써 처리 시간이 절감되고 처리 파이프라인의 지연 시간이 낮게 유지됩니다.
  • 필터: 애플리케이션이 수신하지 않아도 되는 메시지를 자동으로 삭제하여 처리 및 이그레스 비용을 절감합니다. 필터는 구성 방식이므로 코드를 작성하거나 애플리케이션을 배포할 필요가 없고 설정이 간단합니다.  
  • 데이터 보존 위치 제어: Google에서는 데이터가 게시된 위치에 상관없이 조직에서 Pub/Sub의 메시지 데이터 저장 위치를 지정할 수 있는 Pub/Sub의 리소스 위치 제약조건에 추가로 특정 리전의 Pub/Sub 서버에 연결할 방법을 제공하는 리전 엔드포인트를 출시했습니다. 
  • 게시자 흐름 제어(자바, Python): 클라이언트 라이브러리에 적용된 수많은 업데이트 중 가장 눈에 띄는 업데이트라고 할 수 있습니다. 하지만 흐름 제어는 동시에 데이터를 게시하는 스레드가 여러 개 필요한 애플리케이션이 많고 스레드를 조율하지 않으면 클라이언트 머신의 네트워크 스택 과부하 및 데이터 손실로 이어질 수 있으므로 예기치 않게 또 다른 난제를 야기할 수 있습니다. 흐름 제어 기능을 사용하면 매우 높은 게시율을 안전하게 지속할 수 있습니다. 
  • 그 밖에 주목할 새로운 기능으로는 구성 가능한 재시도 정책과 구독 분리가 있습니다.   

최근 한 고객의 말마따나 "지금 바로 직접 사용해 보고 싶은 기능입니다."

다음 단계

앞으로 몇 달에 걸쳐 Google은 계속해서 Pub/Sub 및 실시간 처리 도구의 사용 편의성을 높일 예정입니다. Google의 출시 노트에서 최신 정보를 확인할 수 있습니다. 그동안에는 Google 문서를 확인하거나 Google Cloud 영업팀에 문의하여 Google Cloud의 실시간 스트림 분석 서비스를 시작하는 방법과 이 서비스로 가능한 모든 작업을 자세히 알아보시기 바랍니다.
게시 위치