“구글의 빅데이터 처리 15년치 노하우…‘구글 클라우드DB’”

가 +
가 -

데이터가 빠르게 증가하고 있다. 인터넷과 스마트폰의 등장, 다양한 사회관계망서비스(SNS) 출현, 사물인터넷(IoT)이 퍼지면서 전과는 비교도 되지 않을 정도로 급속도로 데이터가 늘고 있다. 기업 인프라에서 데이터를 관리하는 데이터베이스(DB) 중요성은 커졌고, 계속 커지고 있다.

급증하는 데이터를 두고, 구글도 고민을 했다. 지금은 모두가 다 아는 기업이지만, 구글에게도 스타트업 시절이 있었다. 서비스 초창기에는 검색엔진에서 1등도 아니었고, 오히려 경쟁사에 밀렸다. 글로벌 서비스가 아니라 미국 한정 서비스로, 미국에서 발생하는 트래픽 관리에 더 신경을 많이 썼다. 배치, 레이턴시에 민감하지 않은 인덱싱 프로세스였다. 문서 ‘스니펫’(단일검색) 서비스에 집중했다.

20여년이 흐르고 상황이 달라졌다. 지금은 10억명이 사용하는 클라우드 제품이 구글 안에 8개나 존재한다. 구글 검색, 안드로이드, 구글 지도, 지메일, 플레이 스토어, 유튜브, 크롬 웹브라우저, 구글 드라이브 등 소비하고 처리할 데이터 천지인 서비스가 잔뜩이다. 구글 검색은 전세계 트래픽을 지속적으로 크롤링하고 인덱싱 프로세싱하는 서비스가 됐다. 지메일은 많은 양을 검색하고 레이턴시에 민감한 애플리케이션이 됐다. 구글 문서는 개인간, 개인-그룹 공유 기능이 활성화되면서 데이터 일관성이 중요해졌다.

자연스레 구글 안에서도 데이터베이스를 어떻게 늘릴 수 있을지, 어떻게 인프라를 설계해서 운영할지 고민이 튀어나왔다. 그리고 이 고민의 결과물들은 현재 구글이 서비스 중인 클라우드 데이터베이스 서비스에 고스란히 녹아 있다.

네트워크, DB 기술 발전에서 빼놓을 수 없는 부분

“과거 로컬 저장 장치 시절엔 앱과 파일시스템, 스토리지가 하드웨어 박스 하나에 모두 담겨 있었습니다. 이런 상황에서 데이터가 계속 늘어나다 보니, 이런 인프라 방식을 계속 쓸 순 없겠다고 생각했지요. 자연스레 구글도 컴퓨팅과 스토리지를 분리하는 아키텍처로 인프라를 설계했습니다. 이 과정에서 SAN이나 NAS 등 네트워크를 중간에 끼워서 애플리케이션과 파일시스템, 스토리지를 분리했지요. 그 결과 데이터가 늘어날 때마다 스토리지 공간이 필요할 때마다 확장할 수 있는 인프라가 만들어졌습니다.”

에이미 크리쉬나모한 구글 클라우드 프로덕트 마케팅 매니저는 구글 DB의 변천사를 설명하면서, 네트워크 중요성도 빼놓을 수 없다고 강조했다. 저장이 아무리 잘 되어 있어도 빨리 데이터를 불러오지 못하면 애플리케이션이 원활하게 작동할 수 없다. 애플리케이션과 데이터베이스 간 네트워크 속도가 빨라야 앱이 데이터에 수월하게 접근해 정보를 처리할 수 있기에, 구글은 초창기 데이터베이스 인프라를 구축하면서 네트워크에 많은 투자를 기울였다.

| 에이미 크리쉬나모한 구글 클라우드 프로덕트 마케팅 매니저

| 에이미 크리쉬나모한 구글 클라우드 프로덕트 마케팅 매니저

특히 구글은 페타바이트(PB)급 데이터가 들어올 때, 대용량 데이터를 네트워크가 충분히 감당할 수 있도록 가용성 부분에 신경을 많이 썼다. 사용자가 구글에 들어올 때 ‘로딩 중’이라는 화면을 보지 않게 범용 하드웨어를 구입해, 일반 스위치를 아주 많이 연결해서 네트워크 기반을 만들었다. 비싼 제품을 만들기보다는 범용 하드웨어로 확장성을 노린 셈이다. 내부에서 ‘슈퍼게이트’라고 이름 붙인 이 범용 하드웨어는 1.6Pbps를 지원하고 100G WAN 기술을 적용했다.

이 외에도 소프트웨어 정의 네트워킹 기술을 적용해 라우팅 및 제어 소프트웨어가 네트워크 외부 구글 서버에서 실행되는 구조를 만들었다. 링크 활용도를 극대화하는 동시에 비즈니스 우선순위 및 SLO를 유지하기 위한 최적화 알고리즘도 탑재했다. 그 결과 기존 MPLS/RSVP 보다 빠른 컨버전스가 가능해졌다.

“그 결과 트래픽이 5년새 100배 증가하는 동안 가용성은 99.99999%로 더 높아졌습니다. 1년에 다운타임이 5분 정도 일어나는 수준입니다. 적은 비용으로 가장 빠른, 고가용성 인프라를 구축한 셈이지요.”

관계형, 비관계형 구분 없이 ‘클라우드 스패너’로 데이터 확장

현재 구글이 클라우드로 제공하는 DB 서비스는 총 6개에 이른다. 빠른 데이터처리를 위한 인메모리형 ‘클라우드 메모리스토어’, 비관계형 데이터 처리를 위한 ‘클라우드 파이어스토어’, ‘클라우드 빅테이블’, 관계형 데이터 처리를 위한 ‘클라우드SQL’, ‘클라우드 스패너’, 데이터웨어하우스(DW)용 ‘빅쿼리’ 등이 대표적이다.

지난 20-30여년 동안엔 관계형DB(RDB)가 DB 시장을 꽉 잡고 있었다. 데이터가 많아지면 DW를 구축해서 일주일에 한 번, 또는 저녁에 한 번 배치로 데이터를 로딩하는 경우가 많았다. 그러나 기업이 처리하는 데이터가 최근 5-10년 사이 늘어나면서 모든 데이터를 RDB로 처리하기엔 한계에 다다랐다. 구글 역시 비디오나 큰 파일을 어떻게 저장할지, 비구조화된 데이터를 어떻게 처리할지 고민하기 시작했다. 그 결과 하둡과 같은 비정형 데이터 시스템, NoSQL 같은 확장성이 높은 시스템 관련 논문을 연달아 발표하고, 개발하고 오픈소스로 선보이기 시작했다.

“DB를 새로 개발해야겠다고 생각했어요. 초창기엔 구글 클라우드가 존재하지 않았기에 GFS, 맵리듀스 쪽으로 논문을 발표했지요. 이런 논문이 나중에 오픈소스 쪽에서 하둡이나 HBASE, 아파치 드릴 등으로 진화했습니다. 내부에서도 데이터 수집이나 통합, 처리를 위해 ‘클라우드 펍섭’, ‘클라우드 데이터프롬’, ‘클라우드 데이터프랩’, ‘클라우드 데이터퓨전’, ‘클라우드 데이터플로우’, ‘빅쿼리’, ‘빅테이블’ 등을 지원하게 됐습니다.”

에이미 크리쉬나모한 매니저는 구글 클라우드 데이터베이스가 제공하는 여러 가지 서비스 중에서 가장 강력한 기능으로 ‘클라우드 스패너’를 꼽았다. 클라우드 스패너는 클라우드 전용으로 설계된 확장 가능한 분산형 DB다. 관계형 DB 구조와 비관계형 수평적 확장 이점을 결합해 고성능 트랜잭션과 행, 리전, 대륙 전체에 걸친 일관성을 보장하면서 99.9999% 가용성 SLA, 다운타임 없는 보안 기능을 제공한다. 동시에 구글 안에서 가장 많이 사용하는 DB이기도 하다.

“2012년 개발을 시작해서, 2년전 출시가 되고 현재 많은 기업에서 관계형 SQL을 쓰면서 서비스 확장을 위해 클라우드 스패너를 도입해 사용하고 있다”라며 “클라우드 스패너는 데이터 일관성 유지를 위해 스패너에서 사용하는 GPS 시계, 스패너 시계만 담당하는 하드웨어가 따로 존재할 정도로 완벽한 데이터 일관성을 제공하는 인프라를 지원한다”라고 설명했다.

네티즌의견(총 0개)