IBM 클라우드 개발환경 NoSQL DB 구축서비스 사용기

 

 

안녕하세요 엔돌슨입니다. 개발자다 보니 요즘 뜨는 클라우드에서 빠르게 구축할 수 있는 개발환경에 대해서 관심이 있어 살펴보게 되었습니다. 얼마 전에도 한번 소개하였던 IBM클라우드 개발환경 Cloudant입니다. NoSQL DB로 제한 없는 환경을 제공하며, 무료로 50GB용량을 사용할 수 있는 체험도 가능한 제품입니다.
 
서버입고부터 구축까지 다소 시간이 걸리는 점과 절차상의 어려움, 관리상 운영 포인트도 문제가 되는 부분으로 인해서 많은 기업에서 클라우드 개발환경을 선호하고 있습니다.

또한, Cloudant는 빠르게 확장되는 대규모의 웹, 모바일 앱 같은 흔히 발생하는 방대한 양의 데이터의 동시 읽기, 쓰기 워크로드를 최적화된 처리를 하는 NoSQL 데이터베이스이기 때문에, 최근 주목을 받고 있습니다.
  
오늘은 NoSQL DB 사용법과 IBM클라우드 개발환경 Cloudant에서 몇 가지 API 및 DB를 구축하여 보겠습니다.
 

 

 

 

 

 

 

NoSQL DBaaS 선택하는 이유?

 

Cloudant는 IBM SoftLayer와 같은 퍼블릭 클라우드 플랫폼에서 완전 관리형 DBaaS(Database-as-a-Service)로 실행하면서 사용하거나 고객이 원하는 프라이빗, 퍼블릭, 하이브리드 클라우드 플랫폼에서 Cloudant Local이라는 사내 구축형 버전으로 직접 실행하여 사용할 수 있습니다.
 

1) 데이터 시트: NoSQL을 사용해야 하는 이유 기존 관계형 데이터베이스의 훌륭한 대안 혹은 보완책으로 NoSQL 데이터베이스를 확인해보세요
 
2) 데이터시트: DBaaS를 선택하는 이유 고객이 신규 개발 및 비즈니스 성장에 전념할 수 있도록 Cloudant DBaaS에서 어떻게 확장성을 제공하고 급증하는 데이터의 요구사항을 연중무휴로 지원하는지 알아보십시오.
 
3) 데이터시트: Cloudant DBaaS 서비스 개요 걱정 없는 데이터 관리를 위한 NoSQL 서비스로서의 데이터 베이스 cloudant를 알아보십시오
 
4) 백서: Cloudant DBaaS 전격 해부 최고의 성능을 제공할 데이터 관리 플랫폼을 선택하려면 많은 조사와 계획이 필요합니다.
 

직접 IBM Cloudant 를 신청하여 사용해 보았습니다.

 

 

IBM Cloudant 사용하기

 

 

 

Databases(데이터베이스) 구축을 위해서 신규 데이터베이스를 생성하였습니다. NoSQL로 웹 상에서 클릭 몇 번만으로 신규 DB인 'gwerp' 를 생성하였습니다.
 

 

 

 

 

[All Documents] 에서 (+) 을 눌러서 New Doc 를 생성하였습니다.

 

 

 

 

JSON Data 샘플을 하나 입력해 보았습니다. 데이터 형식에서 상당히 자유로운 문자열이죠. 직접 웹 상에서 추가 편집이 가능합니다.
 

 

 

 

#샘플코드

 

"_id" : "aaaaaaaaaaaaaaa",


    "glossary": {
        "title": "example glossary",
"GlossDiv": {
            "title": "S",
"GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
                    },
"GlossSee": "markup"
                }
            }
        }
    }

 

샘플코드를 붙여 넣어도 동작을 합니다. _id, _rev는 필수 값으로 id값으로 구별되며 편집할 때마다 리비전이 증가되게 JSON Data가 반영을 받더군요.

 

 

 

혹시 대량의 데이터가 있다면 Attachment (첨부)하여 업로드 할 수 있게 제공합니다. 쉐어포인트에서 운영되는 대량의 거래처, 사용자 연동데이터 역시 JSON Data로 되어 있는 데 이런 대량의 데이터는 첨부하는 것이 편리하죠.

 

 

 

gwerp 데이터베이스에 제가 추가한 Doc 가 생성되었군요.

 

 

 

 

또하나의 추가 데이터를 생성하였습니다.

 

 

 

여러 개로 생성된 데이터는 Query 질의를 통해서 원하는 필터링하여 데이터를 볼 수 있게 제공하여 줍니다.

대량의 자료의 경우 쿼리(Query) 질의를 통해서 원하는 결과만 추출하기 적당한 View를 제공하고 있습니다.
 
edit 를 통해서 Indexes 를 편집할 수 있습니다.
 

 

 

 

생성한 JSON Data는 바로 API URL로 제공될 수 있습니다.

 

 

API URL 을 복사하여 웹 브라우저에 호출하니 바로 호출하니 데이터구조가 보여지는 것을 확인 할 수 있었습니다. 많은 응용프로그램에서 사용하는 API를 관리하고 제공하는 목적으로 사용하기 적당하였습니다. 빈번한 수정과 데이터 수정 시 리비전까지 자동으로 생성되어 편리하게 관리할 수 있어 보입니다.

 

 

 

데이터베이스의 권한(퍼미션; Permissions)은 읽기, 쓰기, 관리, 복제 권한으로 데이터베이스마다 권한지정이 가능하였습니다. 또한 Share Database(공유 데이터베이스)의 경우 API Keys를 생성하여 Key, password를 통해서 인증하여 사용할 수 있게 제공됩니다.

 

 

 

복제 관리

 

 

 

 

웹사이트 트래픽이 있듯이 빈번한 API 호출을 통한 데이터 제공의 한계가 있다면 복제하여 확장하는 것이 적합합니다. 예를 들어 웹사이트를 확장할 경우 API의 확장이 필요하다면 DB 복제 역시 쉽게 가능합니다. 기존 DB를 Target DataBase 에 New/기존 데이터베이스를 적용하여 복제시도를 할 수 있습니다.

 

 

복제시 비밀 번호를 한번 더 물어서 권한 확인하는 작업이 있습니다.

 

 

 

 

진행중인 복제 작업은 바로 확인이 가능합니다. All Replications 를 통해서 전체 복제과정을 실시간으로 확인 할 수 있습니다. status 가 Completed 건 완료 작업입니다.

 

 

 

IBM Warehousing

 

 

 

Warehousing 는 창고라는 의미로 보관을 할 수 있는 기능입니다. 일단 시작을 해 보았습니다.

 

 

 

 

 

 

등록 작업을 진행하여 줍니다.

 

 

이메일 주소로 인증 처리를 요청되었다고 합니다. 해당부분은 매뉴얼을 참고해서 상세한 정보는 얻어 보시길 바랍니다. 저역시 아래의 개발 링크를 눌러서 해당정보를 본 정도입니다.

 

 

 

계정관리

 

 

 

 

계정간리를 통해서 프로필관리, 패스워드 변경, 버추얼 호스트 설정, 크로스도메인 처리, 사용량 체크, 신용카드 결제, 데이터위치 설정등을 정할 수 있습니다.

 

 

Virtual Hosts 는 버추얼 호스트를 통해서 다른 곳으로 호출 시 연동을 할 수 있게 포워딩 할 수 있습니다. 제가 가지고 있는 도메인을 클라우드 서버 또는 특별한 경로로 포워딩되게 설정하는 것입니다.

 

 

 

크로스 도메인 처리로 Enable CORS 를 체크해주면 동작합니다.
All domains 를 처리할 것인지 Restrict to speciflic domains (엄격한 도메인 설정)을 통해서 크로스도메인을 허용할 지 정할 수 있습니다.
 
만약 내가 허용하지 않은 곳에서 API URL로 호출이 들어오면 막아 줘야겠죠? 이런 설정을 할 수 있는 것입니다.

 

 

 

사용량은 실시간으로 얼마의 요청이 있었는지 날짜별로 취합이 됩니다. 그래프로 보기 좋게 나오네요.

 

 

한국 하고 가까운 곳은 아무래도 홍콩, 싱가포르 정도가 되겠네요. 아시아 지역으로 데이터 위치를 변경할 수도 있습니다. 혹시 모르는 민감한 속도 문제가 발생할 경우 위치를 변경해보는 것도 좋을 듯합니다.

 

 

 

체계적인 IBM Cloudant 문서

 

 

 

https://docs.cloudant.com/


를 통해서 IBM Cloudant 에 대한 상세한 레퍼런스를 얻을 수 있습니다. 직접 몇 가지 API를 운영 및 구축을 해보니 편리하게 반영할 수 있는 IBM Cloudant 가 왜 편리한지 알 것 같더군요.
 
절차상 불편한 부분이 없어지며, 빠르게 프로젝트에 반영할 API를 생성할 수 있다는 점에서 상당히 매력적이었습니다. 또한 관리 포인트 역시 적어진다는 점에서 운영에 상당한 이점이 되지 않을까 생각합니다.

 

50GB까지 무료로 제공되니 IBM Cloudant를 우선 체험해보길 권해드립니다.

 

 

 

IBM클라우드 (클릭)

 

 

 


 

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