|

[기고] 구글의 새로운 데이터베이스, ‘AlloyDB’ 리뷰

구글이 올해 자체 개발자대회인 Google I/O 에서 AlloyDB for PostgreSQL (이하 AlloyDB )을 발표하였습니다. 이번 컬럼에서는 구글의 AlloyDB를 간략하고 알기 쉽게 리뷰하고, 다시 한 번 구글의 기술력에 감탄하는 시간을 가져보려고 합니다. 

구글은 왜 데이터 저장 시스템에 진심일까?

AlloyDB를 이해하려면 먼저 구글이라는 회사를 이해해야 합니다.

구글은 기본적으로 검색회사이며, 초대규모 데이터를 저장하고 다루는데 뛰어난 회사입니다. 구글의 사명 자체가 이세상의 모든 데이터를 다루겠다는게 목표일 정도이니까요.

그런 구글은 초기부터 데이터를 다루기 위해서 다양한 데이터 저장 시스템에 대해 매우 진심이었습니다. 오늘 이야기하게될 AlloyDB의 경우는 그 데이터 저장에 대한 부분을 그대로 물려받은 제품입니다.

좀 더 많은 이야기를 시작하기 전에 우리가 데이터를 저장할때 용량도 늘리고 속도도 빠르게 하는 흔한 방법인 RAID (레이드 ) 라는 것을 간단히 설명하고 시작하겠습니다.

예를들어, 1초에 100 글자를 저장할 수 있는 디스크가 있다고 가정하겠습니다.

단순히 이 디스크를 2개를 연결하면 여전히 1초에 저장할 수 있는 글자수는 100 글자입니다. 그런데, 여기서 RAID라는 기술을 사용해 보면 이야기가 달라집니다.

“안녕하세요”라는 문장을 저장하는데, 1번 디스크에는 “안” “하” “요” 를 저장하고, 2번 디스크에는 “녕” “세” 를 저장하는 식으로 1글자 마다 번갈아 가면서 저장할 수 있다면 읽고 쓰는 속도는 2배가 될것입니다. 이런식으로 디스크를 3개 4개 … 늘리면 그 만큼 속도가 빨라지는것이죠. 이게 레이드라는 기술의 접근 방법입니다.

그런데 여기서 문제가 있습니다. 만약에 많은 디스크중에 한대라도 문제가 생기면 모든 데이터를 날리게 되는 문제가 발생합니다. 그래서 실제로는 중간 중간에 에러를 검증하기 위한 데이터를 저장하는 디스크를 넣습니다. 또 여기서 데이터를 어느정도 중복으로 저장하고, 또 저장하는 방식을 글자 단위가 아니라, 단어 단위, 문장 단위, 더 나아가 파일 단위로 여러개를 나누는 방법들도 있습니다.

구글의 파일시스템들인 GFS와 콜로서스는 여기에서 출발합니다. 물론 이렇게 간단한 방법이 아니라, 아주 복잡한 공학적, 수학적 기법들이 들어가 있습니다.

여기서 중요한 부분은 “대용량 분산 처리 시스템”입니다. 전체적으로 읽어 오는 속도를 빠르게 하기 위해서, 디스크를 아주 많이 사용하고, 그 디스크들을 안전하게 이중 삼중으로 서로 보완을 하고, 많은 시스템,서버에서 동시에 해당 데이터 처리 시스템에 엑세스를 하는 구조인것이죠.

이러한 강력한 처리 시스템 덕분에 구글은 다양한 서비스들을 만들 수 있었습니다.

누구나 흔히 접할 수 있는 구글의 G메일, 구글의 광고시스템은 물론이고, 우리가 자주 시청하는 유투브등도 이러한 시스템 위에서 동작합니다.

AlloyDB의 특징 간단 리뷰

이 콜로서스를 기반으로 구글은 다양한 데이터 서비스를 구글 클라우드 플랫폼(GCP)에서 제공합니다.

GCS(Google Cloud Storage : AWS S3 에 대응)에서는 이것을 이용해 초대규모 데이터 스토리지를 제공합니다. 데이터 센터 내에는 물론이고, 대륙 단위로 데이터 저장을 확장하는 것도 가능합니다. 구글은 이와 같은 강력한 파일시스템을 이용하여 연산과 데이터 저장을 분리하여 다양한 SaaS 서비스들을 제공합니다.

GCS외에도 BigTable  과 BigQuery 가 있고, Cloud Spanner 등의 다양한 SaaS 서비스들이 있습니다.

출처=구글 블로그

 

재미있는것은 이 빅쿼리(BigQuery)는 GCP가 아닌 AWS를 사용하는 개발자들도 애용하는 구글의 클라우드 서비스라는 점입니다.

워낙에 성능이 탁월하고 비교 불가하다보니 다른 클라우드를 사용하는 개발자도 같이 사용하곤 합니다. 그러한 구글이 이번에는 AlloyDB 라는 데이터 베이스를 출시했습니다.

기존에 구글은 자체적으로 만든 데이터베이스들을 제외하고도 MySQL , MS SQL 그리고 PostgreSQL 등의 다양한 데이터베이스들을 서비스로 제공했습니다.

그중 완전한 오픈소스인 PostgreSQL은 조금 남다릅니다. 마이크로소프트에서 제공하는 MS SQL이나 혹은 오라클의 MySQL은 더 이상 서비스를 확장할 수 없기에 오픈소스인 PostgreSQL은 구글이 가장 사랑하는 SQL서비스가 되고 있습니다. 

이번 AlloyDB for PostgreSQL이 라인업에 추가됨으로써 구글은 PostgreSQL을 사용할 수 있는 데이터베이스가 크게 세 가지가 되었습니다.

아주 간단히 AlloyDB의 특징을 살펴보겠습니다.

AlloyDB는 기본적으로 PostgreSQL을 기반으로 하는 또 하나의 RDBMS서비스입니다. 그런데, 가장 큰 차이라면 데이터 스토리지를 관리하는 방식의 차이가 있습니다. 일반적인 RDBMS라면 하나의 머신에서 스토리지에 있는 데이터를 CPU가 접속하여 처리하는 방식으로 되어 있습니다.

그런데 이 AlloyDB는 그와는 다르게 하나의 데이터 스토리지 시스템이 있고 그 데이터 스토리지 시스템에 많은 머신들이 접속하여 동시에 고속으로 동작할 수 있도록 합니다.

앞에서 이야기 했던 RAID와 같은 방식으로 대용량의 데이터를 저장하거나 처리할 수 있고, 그것을 다시 많은 머신들이 접속할 수 있도록 함으로써 획기적인 수준으로 성능을 끌어 올릴 수 있는것이죠.

가격적인 측면으로 살펴보면 일반적인 SQL 서비스보다는 조금 더 비쌉니다. 하지만 비싼 만큼 이상의 성능을 가지고 있죠.

간단히 정리하면 작은 스타트업들이 소규모 서비스를 할때는 Cloud SQL을 통해서 DB를 사용하기 시작하고, 규모가 커지고 사용량이 늘어나면 AlloyDB로 업그레이드 하면 가격대 성능비가 매우 좋을 것입니다.

앞으로 구글이 콜로서스를 통해서 또 어떤 서비스들을 제공할지 기대가 됩니다.

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다