분류

대화형 웹 애플리케이션의 새로운 데이터 관리 아키텍처 패턴

사용자-데이터 연결이 NoSQL 데이터베이스-Hadoop 페어링을 주도합니다.

AOL Advertising은 매월 수억 명의 사용자에게 수십억 건의 노출을 제공하는 최대 규모의 온라인 광고 게재 운영업체 중 하나입니다. AOL은 광고 게재 플랫폼을 구축하면서 세 가지 데이터 관리 문제에 직면했습니다:

  1. 정형 데이터와 비정형 데이터가 혼합된 수십억 개의 사용자 관련 이벤트를 분석하여 수억 개의 '쿠키 프로필'로 요약된 인구통계학적, 심리학적, 행동 특성을 추론하는 방법
  2. 밀리초 미만의 랜덤 읽기 지연 시간으로 수억 개의 쿠키 프로필을 광고 타겟팅 플랫폼에서 사용할 수 있도록 하는 방법
  3. 사용자 프로필을 최신 상태로 유지하는 방법

해결책은 두 개의 데이터 관리 시스템을 통합하는 것이었습니다. 하나는 처리량이 많은 데이터 분석에 최적화된('분석' 시스템) 시스템이고 다른 하나는 지연 시간이 짧은 랜덤 액세스('트랜잭션' 시스템)를 위한 시스템입니다. 대안을 분석한 후, 최종 아키텍처는 Cloudera Distribution for Hadoop(CDH)과 Membase를 결합한 것으로 선택되었습니다:

이 아키텍처에서는 (1) 다양한 소스에서 클릭 스트림 데이터와 기타 이벤트가 CDH로 유입되고 (2) MapReduce를 사용하여 데이터를 분석하여 수억 개의 사용자 프로필을 생성한 다음, 실행 중인 광고 캠페인에 따라 선택한 사용자 프로필이 Membase에 로드되며 (3) 광고 타겟팅 로직이 밀리초 미만의 지연 시간으로 Membase를 쿼리하여 실시간 광고 게재에 대한 최적화된 결정을 내리는 데 필요한 데이터를 얻을 수 있게 됩니다.

AOL은 "NoSQL" 트랜잭션 데이터베이스 시스템과 Hadoop 분석 플랫폼의 결합이 얼마나 강력한지 보여주는 구체적인 예시이지만, 이는 다양한 웹 애플리케이션 환경에서 일반적인 배포 패턴으로 떠오르고 있는 것을 잘 보여줍니다.

점점 더 많은 조직에서 이 두 기술을 함께 배포하고 있습니다. 저는 감히 말하건대, 모든 NoSQL 데이터베이스 배포는 Hadoop과 함께 사용할 때 더 가치가 있다고 생각합니다. 왜 그럴까요?

대화형 웹 애플리케이션이 지속적으로 증가하는 대규모 애플리케이션 사용자 집단에 서비스를 제공할 수 있도록 하기 위해 NoSQL 데이터베이스는 항상 사용됩니다. 대규모의 사용자가 증가하면 자연히 직간접적으로, 정형 및 비정형 데이터를 포함한 많은 양의 데이터가 생성됩니다. Hadoop은 많은 데이터를 저장, 처리 및 분석할 수 있습니다. 분석 결과 사용자 행동, 선호도 및 패턴에 대한 인사이트를 얻을 수 있으며, 이를 통해 사용자에게 더 나은 애플리케이션 환경을 제공하는 데 사용할 수 있습니다. 더 나은 애플리케이션은 더 많은 사용자로 이어집니다. 그리고 이 사이클은 가속화됩니다.

많은 사용자

간단히 말해, NoSQL 데이터베이스(예: Membase, MongoDB 또는 Riak)는 대화형 웹 애플리케이션에 비용 효율적이고 지연 시간이 짧은 무작위 데이터 액세스를 제공하도록 설계되었습니다. 웹 애플리케이션에는 이러한 맥락에서 중요한 세 가지 특징이 있습니다:

  1. 초고속 성장. 말 그대로 하룻밤 사이에 사용자가 한 명에서 수십만 명으로 늘어날 수 있습니다. 그리고 수억 명의 사용자에게 서비스를 제공하기 위해 계속 성장할 수 있습니다. 세상은 매우 큰 곳입니다. 오늘날 공개 웹 인터페이스는 20억 명에 가까운 사람들이 소프트웨어 시스템에 액세스할 수 있게 해줍니다. 
  2. 참을성이 없는 사람들을 위한 서비스. 인간은 이러한 시스템을 사용합니다. 수십 년에 걸친 연구에 따르면 속도가 중요하다는 사실이 밝혀졌습니다. 사람들은 계속 기다리는 것을 좋아하지 않습니다. 기술 스택의 어떤 부분이든 사용자 대기에 기여하는 부분이 있다면 애플리케이션의 종말을 초래합니다.
  3. 일시성. 웹 애플리케이션의 사용자 인구는 영구적이든 일시적이든 왔다가 사라집니다. 일반적으로 특정 시간에 "온라인" 상태이거나 활동 중인 사용자 집단이 존재합니다. 그들은 와서 사용하고 떠납니다. 다시 돌아오길 바랍니다.

이러한 문제를 해결하기 위해 NoSQL 데이터베이스 기술이 개발되었습니다. 클러스터에 저렴한 서버를 추가하기만 하면 데이터와 가장 중요한 I/O가 새 서버에서 자동으로 리밸런싱되어 부하 증가를 지원하기 때문에 탄력적으로 확장할 수 있습니다. 애플리케이션의 사용자 수가 감소할 때도 마찬가지입니다. 그리고 애플리케이션이 필요할 때 데이터에 대한 매우 짧은 지연 시간의 랜덤 읽기-쓰기 액세스를 보장하도록 구축되었습니다. 이는 부분적으로는 이러한 소프트웨어 시스템의 일시적인 사용을 활용하여 이루어집니다. 사용자가 활성 상태일 때 사용자에게 서비스를 제공하는 데 필요한 데이터는 주 메모리에 캐시됩니다. 이 경우 5k 데이터 개체를 밀리초 미만의 지연 시간으로 읽거나 쓸 수 있습니다. 사용자가 자리를 비웠다가 애플리케이션을 다시 사용하기 시작하면 데이터가 더 이상 메모리에 없으면 자동으로 가져와 사용자 세션을 통해 사용할 수 있으며, 더 이상 활동하지 않는 사용자의 데이터는 메모리에서 꺼내져 다음 사용을 기다리는 저비용 디스크 스토리지에 저장됩니다.

많은 데이터

데이터를 언제든지 '활성화'할 준비가 되어 있어야 한다면 NoSQL 데이터베이스가 적합한 솔루션입니다. 하지만 그렇지 않은 경우에는 데이터를 저장하는 데 Hadoop이 훨씬 더 나은 선택입니다. 그리고 대화형 웹 애플리케이션은 이러한 종류의 데이터, 즉 과거에는 수집되지 않았던 데이터를 산더미처럼 생성할 수 있습니다. 로그인 정보, 클릭 스트림, 페이지 뷰, 시선 데이터, 실시간 액세스에 더 이상 필요하지 않은 '오래된' 애플리케이션 데이터, 진입 및 종료 동인, 구매로 이어지는 흐름, 과거 오퍼 및 구매 흐름, 타이밍 정보 등이 있습니다. 그 목록은 끝이 없습니다. Hadoop을 사용하면 데이터를 수집하기만 하면 됩니다. 스키마를 설정하거나 데이터 형식을 미리 정의할 필요가 없습니다. 유용한 인사이트를 얻을 수 있는 정보 수집에 대한 아이디어가 있다면 Hadoop에 저장하세요. "의심스러우면 그냥 쓰세요."

Hadoop은 정보를 빠르게 처리하고 비용 효율적으로 저장하기 위해 만들어졌습니다. 하둡은 NoSQL 데이터베이스와 동일한 '스케일 아웃' 접근 방식을 사용하여 저렴한 서버에 데이터를 분산시킵니다. 하지만 처리량이 많은 일괄 분석에 최적화된 방식으로 데이터를 저장하며, 지연 시간이 짧은 무작위 액세스에 최적화되어 있습니다. Hadoop MapReduce를 사용하면 추세를 발견하고, 데이터를 집계하고, 결론을 도출할 수 있습니다. 그런 다음 이러한 결론을 바탕으로 애플리케이션 동작을 형성할 수 있습니다.

웨비나 확인

다음 주 목요일에는 451 그룹의 수석 애널리스트인 매트 애슬렛이 다음과 같이 발표합니다. 웨비나 호스팅 라는 제목으로 AOL이 Hadoop과 멤베이스 서버로 광고 타겟팅 의사 결정을 가속화하는 방법을 소개합니다. Matt와 함께 AOL의 수석 아키텍트인 페로 수바식도 참여합니다.

확장 가능한 웹 애플리케이션 구축에 관심이 있는 분이라면 웨비나를 꼭 확인해 보시기 바랍니다. 이러한 기술이 '실제 세계'에서 어떻게 사용되는지 살펴보는 것도 재미있고, 자신의 환경에 맞는 아이디어를 떠올릴 수도 있습니다.


i 징가는 출시 첫 24시간 동안 290,000명이 시티빌을 플레이했다고 공개적으로 밝혔습니다(https://www.insidesocialgames.com/2010/12/06/cityville-claims-cityville-is-its-fastest-growing-game/)

ii https://www.internetworldstats.com/stats.htm

iii https://www.useit.com/alertbox/response-times.html

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

Author

Posted by 제임스 필립스

제임스 필립스는 카우치베이스의 공동 창립자이자 CEO, CSO입니다. 제임스 필립스는 20년 이상의 소프트웨어 업계 경력을 보유하고 있습니다. James는 Apple II 및 TRS-80 마이크로컴퓨터 플랫폼용 소프트웨어를 작성하면서 경력을 시작했습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.