ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클라우드 기반의 NoSQL 데이터베이스 서비스, IBM Cloudant
    Cloud service 2015. 10. 12. 17:56
    반응형

    엔터프라이즈 시장에까지 진입하기 시작한 클라우드 플랫폼


    엔터프라이즈 시스템들이 점점 클라우드 환경으로 넘어오고 있다. 과거 MS 오피스나 한컴오피스와 같은 오피스 어플리케이션들은 대부분이 데스크탑이나 노트북에서 윈도 OS에 설치해서 사용되어 왔고 지금도 많은 기업들이 오피스 어플리케이션들을 설치해서 사용하고 있다. 물론 최근에는 패키지 상품으로 사서 쓰는 것이 아닌 구독(subscription) 방식으로 바꿔서 사용하고 있는 추세기는 하지만 이 역시도 설치해서 사용하는 컨셉은 동일하다. 하지만 이런 어플리케이션들이 웹 기반으로 넘어오면서 SaaS(Software as a Service) 형식으로 제공받아서 쓰는 경우가 많아졌다. 구글이 제공하는 구글앱스 안의 문서, 스프레드시트, 프리젠테이션 등이 그런 역할을 하며 MS의 오피스 365나 한컴의 넷피스24와 같은 서비스가 바로 오피스 어플리케이션을 웹 기반의 SaaS로 제공해주는 서비스다.

    오피스 어플리케이션 뿐 만이 아니다. CRM, ERP 솔루션들까지도 클라우드 환경에서 동작하는 SaaS 형식으로 제공되고 있다. 세일즈포스닷컴은 대표적인 CRM의 SaaS로 해외뿐 만이 아니라 국내에서도 많이 사용되고 있다. 이런 소프트웨어를 서비스로 제공받는 시대에서 그런 소프트웨어를 만들 수 있도록 플랫폼을 제공하는 PaaS(Platform as a Service)나 클라우드 인프라를 제공해주는 IaaS(Infrastructure as a Service)까지 다양한 클라우드 플랫폼들이 엔터프라이즈 영역에서 그 역량을 발휘하고 있는 중이다. 이른바 XaaS(Anything as a Service) 시리즈 들이 엔터프라이즈 시스템 영역으로 들어오고 있는데 그 중에 하나가 데이터베이스 부분이다. DBaaS(Database as a Service)도 본격적으로 엔터프라이즈 시장에 적용되기 시작했다는 얘기다.


    서비스로서의 데이터베이스 시스템(DBaaS)


    DBaaS. 서비스로서의 데이터베이스라는 얘기인데 데이터베이스를 서비스로 제공하겠다는 얘기다. 가만 보면 예전부터 웹 기반 데이터베이스들은 많이 나왔다. MySQL이나 MariaDB와 같은 웹 콘솔을 제공해주는 데이터베이스들은 도메인을 연결시켜주면 어디서든지 접속해서 쓸 수가 있다. 이것도 넓은 의미에서 DBaaS라고 할 수 있을 것이다. 하지만 최근 얘기가 나오고 있는 DBaaS는 앞서 얘기한 MySQL과 같은 RDBMS가 아닌 NoSQL 영역에서 그 이야기가 나오고 있다. 이유는 대용량의 데이터들을 빨리 핸들링해야 하는 빅데이터 시스템에서 사용하는 데이터베이스를 어디서든지 사용할 수 있는 클라우드 환경으로 올려서 사용하도록 한다는 개념이 적용되면서 DBaaS의 이야기가 나오기 시작했기 때문이다(물론 이 부분에 대해서는 반론의 여지가 많을 수 있다. 일단 개인적인 의견이라고 생각해주면 좋겠다).


    NoSQL 기반의 DBaaS, IBM Cloudant


    IBM의 Cloudant 서비스가 있다. NoSQL 기반의 빅데이터를 다루는 데이터베이스 시스템이다. Cloudant는 클라우드 기반에서 동작하는 데이터베이스 시스템이기 때문에 서비스로서 데이터베이스를 이용할 수 있다는 장점이 있다. 데이터베이스를 클라우드 플랫폼 위에서 제공하면 어떤 점이 좋을까? 일반적으로 데이터베이스는 서버와 스토리지에 분산해서 설치된다. 데이터베이스 엔진은 서버에, 데이터 저장은 스토리지에서 진행되는 것이 일반적이다. 그리고 서버와 스토리지를 합쳐서 하나의 서버에서 다 이뤄지는 경우도 많다. 보통 데이터베이스의 규모가 작으면 서버 한대에 여러 HDD를 설치해서 사용하고 규모가 크면 스토리지를 이용하여 저장부분만 분리시켜서 사용한다. 어찌되었던 스토리지나 서버의 용량에 따라 저장할 수 있는 데이터베이스 크기가 결정된다. 그런데 갑자기 데이터베이스의 용량을 증설해야 할 경우라면 손이 많이 가게 된다. 일단 서버를 더 구입해서 OS를 설치하고 기존 서버에서 데이터베이스의 연결 부분을 따로 바꿔줘야 한다. 능숙한 전문가라면 손쉽게 할 수 있는 작업이라고 할 수 있겠지만 어찌되었던 손이 많이 가는 작업임은 분명하다. 그리고 서버 구입 및 설치 등의 자원 비용이 들어가는 것도 무시할 수 없다.

    하지만 클라우드 플랫폼 위에서 동작하는 데이터베이스라면 어떨까? 클라우드 플랫폼의 강점은 어디서 접속하든 하나의 플랫폼 위에서 동작하는 것처럼 보이게 한다는 것이다. 즉, 한국에서 접속해도, 미국에서 접속해도 같은 데이터를 바라보면서 사용할 수 있다는 얘기다. 데이터베이스 역시 클라우드 플랫폼 위에서 동작하게 되면 어디서 접속하든 상관없이 같은 데이터를 핸들링 할 수 있다는 것이 장점이다. 그리고 클라우드 플랫폼 위에서 동작하기 때문에 얼마든지 용량을 늘리고 또 줄이는 것이 용이하다. Cloudant는 12개국 이상, 35개 이상의 데이터센터에서 서비스를 운영하고 있기 때문에 기본적으로 제공되는 용량의 폭이 다르다. 즉, 어지간한 데이터베이스 확장은 문제없이 진행될 수 있다는 얘기다. 그렇기 때문에 앞서 얘기했던 것처럼 데이터베이스 증설을 위해 서버를 구매해서 설정하는 작업이 필요 없어진다.

    또한 Cloudant는 NoSQL 기반의 데이터베이스이기 때문에 XML, Json과 같은 형식을 통해서 데이터들이 핸들링된다. 모바일이나 IoT 제품에서 나오는 데이터들을 손쉽게 데이터베이스화 시켜서 입력할 수 있다는 장점이 있다. 실제로 빅데이터 시스템의 상당수 소스들은 모바일이나 IoT를 통해서 들어오는데 정형화된 데이터들이 아닌 비정형화된 데이터들이 생성되어 들어오기 때문에 RDBMS보다는 NoSQL 기반의 데이터베이스들이 더 유리한 부분은 있다. Cloudant는 다양한 소스들을 손쉽게 저장하고 분석할 수 있도록 플랫폼을 제공해주며 특히 모바일과 IoT 데이터를 핸들링하는데 강점을 보인다. 클라우드 플랫폼 기반이기 때문에 더 손쉽게 접근이 가능하다는 것도 장점이라고 할 수 있을 듯싶다.

    그렇다면 Cloudant를 어떻게 사용해보는지 살짝 체험해봤는데 그 부분을 얘기해보려고 한다.



    Cloudant에 가입한 후에는 기본적으로 _replicator와 _users 데이터베이스가 생긴다. 특수한 용도로 사용되는 데이터베이스이기 때문에 건드리지 않고 새로 데이터베이스를 만들어서 사용해보려고 한다.



    우측 상단의 Add New Database를 눌러서 새로 데이터베이스를 하나 만들었다.



    새 데이터베이스가 만들어졌는데 데이터가 아무것도 없다. 그래서 이제부터 데이터를 집어넣으려고 한다. All Documents를 눌러서 New Doc를 누르면 데이터를 입력할 수 있는 에디터 화면이 뜨게 된다.



    Json 형식으로 입력할 수 있는데 여기에 자기가 원하는 방식으로 데이터를 입력한다. NoSQL 기반의 데이터베이스가 갖는 장점 중 하나는 형식에 구애받지 않고 데이터를 입력할 수 있다는 점이다. 위의 입력한 내용을 보면 Json 형식으로 key : value 방식으로 입력을 하는데 value 부분에 보면 문자열도 입력할 수 있고 숫자도 입력이 가능하다. 게다가 다중 key : value 방식으로 입력도 할 수 있으며 배열 형식으로도 입력이 가능하다. RDBMS에서는 이런 입력 방식이 좀 어렵다. 위와 같이 입력하고 저장을 눌렀다.



    저장된 내용이 위와 같이 나온다. 같은 방식으로 다른 데이터들을 넣어봤다.



    위와 같이 2개의 데이터가 들어가게 되는 것을 확인할 수 있다. 그렇다면 과연 쿼리(Query)는 잘 진행이 될까? Query를 눌러서 검색을 진행해봤다.



    Cloudant Query 부분에 검색을 원하는 항목과 출력 항목을 설정하고 Run Query를 눌렀더니 위와 같이 나온다. Cloudant는 Full Text Searching이 되는 것이 특징인데 그것도 꽤 빨리 된다고 한다. 테스트 때문에 많은 데이터를 넣지는 못했지만 수백GB 용량의 데이터를 넣어보고 테스트를 해보면 어느 정도인지 체감할 수 있지 않을까 싶다. 어찌되었던 다양한 형식의 데이터들이 들어있는데 내가 원하는 데이터만 찾아서 보여주는 것이 가능하다는 것이 NoSQL 기반의 데이터베이스인 Cloudant의 특징이라고 할 수 있다.


    정리를 해보자. IBM의 DBaaS인 Cloudant는 NoSQL 기반의 데이터베이스로 손쉽게 접근이 가능하며 Json 형식으로 데이터를 입력하기 때문에 개발하는 입장에서도 손쉽게 데이터베이스의 사용이 가능하다. 그리고 NoSQL 데이터베이스의 장점을 그대로 가져오면서도 데이터베이스 용량 확장이 손쉽고(Scale-out이 간단하다) 어느 지역에서든지 접근이 가능하며 같은 데이터베이스를 바라보면서 사용할 수 있기 때문에 사용하는 입장에서나 개발하는 입장에서 꽤 매력적인 데이터베이스라는 생각이 든다.


    현재 50GB까지 무료로 이용할 수 있는 기회가 있으니, 직접 이용해보시면 좋을 것 같다.
    http://ibm.co/1irHs91 신청은 해당 링크에서 가능하다.


    이 포스팅은 한국 IBM의 의뢰로 원고료를 받아 주관적으로 작성되었습니다.

    반응형

    댓글

Designed by Tistory.