Cloudant WEB UI 개편

Cloudant WEB UI를 활용하면 RESTful Interface를 사용하는 것보다 쉽게 데이터베이스를 조작할 수 있습니다. Cloudant WEB UI를 통해서 클라우던트 운영 작업을 간편하게 수행할 수 있습니다. 최근에 Cloudant WEB UI가 개편되었습니다. Cloudant WEB UI가 제공하는 기능은 다음과 같습니다.

  • 데이터베이스 생성 및 목록 조회
  • 문서 등록, 조회, 수정, 삭제
  • 데이터베이스 별 Secondary index와 Search index 추가, 조회, 수정
  • 추가한 Secondary index와 Search index 실행 테스트
  • 활성화된 타스크(프로세스) 조회
  • 계정 정보 조회 및 수정

새로 개편된 WEB UI는 http://www.cloudant.com에 로그인한 후 이용 가능합니다. (Cloudant 계정을 만드는 방법에 대해서는 다음 포스트를 참조하시기 바랍니다. “ Getting Started With Cloudant DBaaS“) 개편된 Cloudant WEB UI의 메인 페이지는 다음과 같습니다.

Cloudant WEB UI 메인 페이지

Cloudant WEB UI 메인 페이지

Cloudant WEB UI의 메인 메뉴는 다음과 같습니다.

  • Databases
  • Replication
  • Active Tasks
  • Documentation
  • Support
  • Account

Databases

Cloudant(CouchDB)에서 Database는 관계형 데이터베이스의 테이블에 해당합니다. 이 데이터베이스에 저장된 한건의 데이터를 Document라고 합니다. 다음 테이블에서는 Cloudant와 관계형 데이터베이스이 용어를 비교하고 있습니다.

관계형 데이터베이스 Cloudant(CouchDB)
Table Database
Recode or Row Document
Column Attribute

Databases 메뉴에서는 현재 계정이 소유하고 있는 데이터베이스를 조회, 생성, 삭제 그리고 접근 권한 설정을 할 수 있고 특정 데이터베이스에 데이터(Document)를 추가하고 결과를 조회할 수 있습니다. 추가적으로 현재 계정에 공유된 데이터베이스를 조회할 수 있습니다.

Database 만들기

Database를 만들기 위해서는 왼편 “Database” 메뉴를 통해서 Database 페이지로 이동한 후 “Add New Database” 버튼을 클릭해야 합니다.

"Add New Database" 버튼 클릭하여 데이터베이스 추가

“Add New Database” 버튼 클릭하여 데이터베이스 추가

“Add New Database” 버튼을 클릭하면 다음과 같이 데이터베이스 명을 요청하는 팝업이 나타납니다. 여기에 데이터베이스 명을 입력하고 “승인” 버튼을 클릭하면 데이터베이스가 생성됩니다. 그리고 생성된 데이터베이스를 세부적으로 제어할 수 있는 페이지로 이동합니다.

Database 명 설정

Database 명 설정

"user" Database 상세 페이지

“user” Database 상세 페이지

왼편 Database 메뉴를 다시 클릭하면 다음과 같이 Database 메인 페이지로 이동합니다. 메인 페이지에서 user 데이터베이스의 사이즈와 저장된 Document 갯수를 확인할 수 있습니다.

Database 목록 조회 페이지

Database 목록 조회 페이지

Database에 데이터 추가하기

Database 메인 페이지의 데이터베이스 목록에서 데이터베이스 명(“user”)을 클릭하면 해당 데이터베이스의 상세 페이지로 이동합니다.

"user" Database 상세 페이지

“user” Database 상세 페이지

이 페이지에서는 신규 Document, Secondary Index 그리고 Search Index 생성, 데이터베이스 삭제, Document 조회 기능을 제공합니다.

앞에서 만든 “user” 데이터베이스에 Document를 추가하기 위해서는 “user” 데이터베이스 페이지의 상단에 있는 “New”버튼을 클릭한 후 나타나는 “Document” 메뉴를 클릭해야 합니다.

Document 추가 메뉴

Document 추가 메뉴

Document 메뉴를 클릭하면 다음과 같은 페이지로 이동합니다..

Document 추가 페이지

Document 추가 페이지

클라우던트의 데이터베이스에 저장되는 데이터 포멧은 JSON입니다. 위 이미지를 보면 신규 데이터로 “_id” 속성만을 포함하는 JSON이 포함되어 있는것을 확인할 수 있습니다.

Document 속성 추가

“_id”속성만 갖는 JSON에 몇 가지 속성을 추가하고 “Save” 버튼을 클릭하면 Document는 저장되고 다음과 같은 결과를 출력합니다. 클라우던트 데이터베이스에 저장된 Document에는 “_rev”속성이 추가되어 있을 것을 확인 할 수 있습니다. “_rev” 속성은 Docuemnt를 현재 버전을 관리하는 중요한 속성입니다.

스크린샷 2014-02-19 오후 9.03.23

“Back to _all_docs”를 클릭하면 다음과 같이 데이터베이스 페이지로 이동하게 됩니다. 오른편의 Document를 클릭하여 Document를 수정하는 페이지로 이동할 수 있습니다.

데이터베이스 메인 페이지

Database에 Design Document 추가하기

데이터베이스에 Document를 추가하면 자동으로 Primary Index가 내부적으로 생성됩니다. 데이터베이스의 검색 기능을 강화하기 위해서는 추가적으로 Secondary Index와 Search Index를 만들어야 합니다.

Primary Index는 “_id”속성의 값을 이용하여 index를 만드는 것을 의미합니다. Secondary Index는 “_id” 속성이의 다른 속성을 이용하여 검색하기 위해서 만든 부가적인 인덱스 입니다. 마지막으로 Search Index는 Document의 전문 검색으로 부터 데이터를 검색하고자 할때 사용하는 Index입니다.

Cloudant(CouchDB)의 데이터베이스에는 여러개의 Secondary Index 혹은 Search Index를 정의할 수 있습니다. 이 두가지 인덱스는 JavaScript 함수 형태 (map/reduce)로 JSON Document에 저장됩니다. 이렇게 인덱스를 정의하는 특수한 형태의 JSON Document를 Design Document라고 합니다.

Secondary Index를 추가하기 위해서는 다음과 같이 데이터베이스 페이지에서 “+New” 메뉴를 클릭합니다.

Secondary Index 추가 메뉴

Secondary Index 추가 메뉴

앞에서 “+New” 메뉴를 클릭하면 다음과 같이 인덱스 생성 페이지로 이동합니다. 인덱스 생성 페이지에서는 현재 정의할 인덱스가 포함될 Desing Document 명과 인덱스 명을 정의하고 인덱스로 사용될 Map 함수와 Reduce 함수를 정의할 수 있습니다. Secondary Index에서 Map 함수는 필수 함수이며 Reduce 함수는 선택사항입니다. 여기서 Map/Reduce 함수는 자바스크립트로 정의 됩니다.

인덱스 생성 페이지

인덱스 생성 페이지

위에서 예제로 사용한 secondary index는 가장 간단한 형태의 인덱스 입니다. user 데이터베이스에 저장된 Document의 name 속성을 이용해서 검색이 가능하도록 인덱스를 구성하는 예제입니다. 위 예제는 reduce는 사용하지 않고 map 함수로만 구성됩니다. map 함수의 코드는 다음과 같습니다.

function(doc) {
  if(doc.name) {
    emit(doc.name, null);
  }    
}

위 map 함수는 user 데이터베이스에 Document가 저장될 때마다 점진적(Incremental & Async)으로 실행됩니다. user 데이터베이스에 Document가 저장되면, 이 Document의 JSON이 map 함수의 doc 인자로 전달되어 실행됩니다. 이때 doc에 name 속성이 있으며 emit 함수를 실행하여 인덱스를 만들고 종료합니다. name속성이 없다면 해당 문서는 인덱스를 만들지 않습니다.

이와 같이 Design Document명, 인덱스 명, map 함수를 정의하고 “Save & Build Index” 버튼을 클릭하면 인덱스는 다음과 같이 저장되고 인덱스가 생성됩니다.

index  생성 결과

index 생성 결과

Secondary 인덱스는 오른쪽 상단의 “+Query Options” 텝에서 테스트할 수있습니다. 다음과 “도민준”이라는 값으로 테스트한 결과 입니다.

Secondary Index 테스트 결과

Secondary Index 테스트 결과

Secondary Index와 동일한 방법으로 Search Index도 생성하고 테스트할 수 있습니다.

Replication

Cloudant의 CouchDB는 NoSQL중에서도 뛰어난 Replication 기능으로 유명한 NoSQL입니다. 강력한 데이터베이스 Replication 기능을 기본적으로 제공하며 데이터베이스 전체, 특정 조건, 단방향, 양방황, Batch Mode, Continuous Mode, Push Style, Pull Style등 다양한 방식의 Replication을 지원합니다.

Cloudant WEB UI를 사용하면 이러한 설정을 간단히 설정하고 관리할 수 있습니다.
예제로 이전에 만들었던 user 데이터베이스를 같은 계정의 user_rep 데이터베이스에 지속적으로 복제하는 설정을 해보겠습니다.

Replication 페이지

상단의 “+New Replication”을 클릭하고 다음과 같이 설정을 합니다.

  • “Source Database”에서 “My Database”를 선택하고 데이터베이스로 “user” 설정
  • “Target Database”에서 “New Database”를 선택하고 “My Database”를 선택한후 데이터베이스로 user_rep 설정
  • “Make this replication continuous” 체크
  • “Replicate” 버튼 클릭
Replication 설정

Replication 설정

“Replicate” 버튼을 클릭하면 패스워드 입력창이 나타나고 현재 계정의 패스워드를 입력하면 Replication 설정은 완료됩니다.

설정이 완료되면 다음과 같이 “Active Replications”에서 현재 활성화된 Replication 타스크를 확인할 수 있습니다.

Replication을 위한 패스워드 입력창

Replication을 위한 패스워드 입력창

데이터베이스 페이지에서도 다음과 같이 user_rep 데이터베이스가 생성되었고 _replicator 데이터베이스가 추가로 생성된 것을 확인할 수 있습니다. _replicator 데이터베이스는 replicator 타스크를 관리하기 위해서 생성된 데이터베이스 입니다.

Replication 설정 결과

Replication 설정 결과

Active Task

“Active Task”에서는 현재 계정에서 활성화되어 있는 Task를 확인할 수 있습니다. Cloudant에는 크게 4가지의 타스크가 있습니다 .

  • Replication: 앞에서 알아본 데이터베이스 복제 타스크
  • Database Compation: 데이터베이스의 Document 중 오래된 버전 데이터를 삭제하는 타스크
  • Indexer: 인덱스 생성 타스크
  • View Compaction

Active Task에서는 현재 계정에 활성화된 타스크의 상태를 확인할 수 있습니다.

Active Task 조회

Active Task 조회

Documentation

Cloudant의 공식 문서화 사이트가 오픈됩니다. Cloudant를 사용하는 방법과 RESRful Interface 정의, API 사용법등이 정리되어 있습니다.

스크린샷 2014-02-19 오후 10.58.45

Support

Cloudant 서비스 이용 중 발생한 이슈에 대한 서비스 요청을 문의하고, Cloudant로 부터 응답을 확인하는 메뉴입니다.

스크린샷 2014-02-19 오후 11.00.27

Account

Account에서는 다음과 같은 기능을 제공합니다.

  • Announcements
  • Usage: 사용량 측정
  • Profile: 계정 정보 관리
  • Password
  • CreditCard: 신용카드 등록, 첫달 무료, 월 5불이하 과금 없음
  • Location for your data: 클러스터의 위치치 확인 및 변경 요청
  • Virtual Hosts: 가상 호스크 설정, 자신의 Domain 설정 가능

“Usage”에서 데이터베이스 사이즈와 Request 기준 월 사용량을 확인할 수 있습니다.

스크린샷 2014-02-19 오후 11.25.44

Advertisements

Getting Started with Cloudant DBaaS

Getting Started with Cloudant DBaaS

Tutorial 1. Cloudant 사용자 등록하기

DBaaS 그리고 Agility

클라우던트는 DBaaS의 컨셉을 통해서 누구나 쉽게 데이터베이스를 이용할 수 있도록 돕는 서비스를 제공합니다. 클라우던트가 갖는 여러가지 가치 중에서 가장 중요한 한가지는 Agility(민접성)입니다.

일반적으로 어떤 시스템을 개발한다고 할 때, 기획한 시스템 예상 부하량을 예측하고, 향후 시스템의 성장률을 예상합니다. 그 예측에 따라서 하드웨어 사이징과 소프트웨어를 사이징합니다. 이때 어떤 데이터베이스를 사용할 지 그리고 어떻게 구성할지를 어느정도 결정하게 됩니다. 그 다음에 하드웨어 및 소프트에어를 구매하고 하드웨어에 소프트웨어를 설치하는 과정을 거칩니다.

이러한 과정은 여러가지 예측을 통해서 진행되며 그 과정에서 여러가지 불확실한 변수가 만들어집니다. 때로는 과도한 사이징으로 추고 투자비용이 급격히 상승하는 문제를 만들기도하고 반대로 너무 사이징을 작게하여 시스템 오픈 후 바로 업그레이드를 해야하는 문제가 발생하기도 합니다. 물론 지속적인 확장성에 효과적으로 대응하는 것 역시 어려운 일입니다.

DBaaS의 강점은 바로 여기에 있습니다. 누구나 서비스에 가입만 하면 바로 데이터베이스를 확보할 수 있고 별도의 하드웨어, 소프트웨어 구매 및 설치 그리고 전문 관리 인력 조차도 필요가 없습니다. 새로운 시스템을 기획한 후 바로 개발 및 운영에 사용될 인프라를 확보할 수 있다는 것입니다. 여기에 초기에 발생하는 비용의 집중이나 부담도 없으며, 향후 확장성에 대한 고민도 덜 수 있습니다. 이것이 바로 DBaaS가 제공하는 Agility(민첩성)의 가치입니다. 애플리케이션을 빠르게 기획하고 빠르게 시작하고, 애플리케이션의 상태에 따라서 효과적으로 데이터베이스 사이징을 최적화 할 수 있습니다. DBaaS 사용자는 민첩하게 시작하고 도전할 수 있는 IT 환경을 확보 할 수 있습니다.

Cloudant의 DBaaS를 사용하고자 한다면 Cloudant 공식 홈페이지(http://www.cloudant.com)에서 사용자 계정을 등록하기만 하면 됩니다. 사용자 등록을 마치는 것만으로도 사용자는 지정한 지역(Region & Cloudant 플렛폼)에 위치의 Multitenancy(멀티테넌시, 공동사용) 클러스터에 접근하고 개발을 진행 할 수 있습니다. 이 데이터베이스를 이용하여 바로 개발을 진행할 수 있으며 향후 단독 클러스터 모드(Singletenancy 클러스터)로 전환 그리고 노드 확장이 애플리케이션 중단없이 진행될 수 있습니다.

Cloudant는 Apache CouchDB를 분산환경으로 확장한 서비스로 Apache CouchDB와 100%호환성을 갖습니다. Cloudant는 5Gbyte 이하에 대해서는 과금을 하지 않습니다. 따라서 Document DB 혹은 Apache CouchDB의 학습 목적으로도 활용 될 수 있습니다.

Cloudant 사용자 등록하기

Cloudant 메인 사이트(http://www.cloudant.com)의 우측 상단에 “Sign Up” 버튼을 통해서 가입 페이지에 접근할 수있습니다.

“Sign Up” 버튼을 클릭하면 계정 등록 페이지로 이동합니다.

“Sign Up” 페이지에 등록폼을 완성하고 “I agree, sign me up” 버튼을 클릭하면 등록은 완료 됩니다.

계정 등록에 입력 정보

  • Username
  • Password
  • First name
  • Last name
  • Company
  • Username
  • Email
  • Select a location for your data

계정 등록을 위해서는 위와 같은 정보를 입력해야 합니다. “User name”의 경우 알파벳 대소문자, 숫자, 대쉬(-)만을 허용합니다. “Select a location for your data”의 경우 어떤 Multitenancy 클러스터에 내 데이터를 저장할 것인가를 선택하는 단계이다. 우리가 선택할 수 있는 클러스터는 다음과 같다.

여기에서 선택한 클러스터는 나중에 변경 가능하며, 데이터가 입력된 후에도 마이그레이션 개념으로 클러스터 변경을 지원합니다.

계정 등록 후 Cloudant의 주요 페이지

계정 등록 단계가 완료되면 “Welcome” 페이지로 이동합니다. 상단에 메뉴를 통해서 “Databases”, “Stats”, “Virtual Hosts”, “Account” 페이지로 이동 가능합니다.

Welcome 페이지

Welcome 페이지에서 기본적인 메뉴얼과 사용법 가이드 링크를 확인할 수 있습니다.

Databases 페이지

데이터베이스 조작과 관련된 대부분의 작업을 이 페이지에서 할 수 있습니다. 데이터베이스를 만들고 데이터베이스 목록을 조회할 수 있습니다. 데이터베이스 별로 검색 권한 설정, Document(Doucment DB에서는 데이터를 Document라고 함)를 조작할 수 있습니다. 또한 Cloudant를 사용하는 다른 계정에 데이터베이스 별로 Read, Create, Write, Admin권한을 설정할 수 있습니다.

Stats 페이지

현재 사용하는 계정의 일반적인 시스테 통계를 확인 할 수 있습니다.

Virtual Hosts 페이지

Cloudant에 자신만의 domain을 설정할 수 있습니다.

Account 페이지

Cloudant의 클러스터 위치를 변경하거나 사용자 정보를 수정할 수 있습니다. 과금을 위한 카드 등록 및 사용량 리포트를 확인 할 수 있습니다.

과금 리포트

다음과 같은 과금 리포트를 실시간 제공합니다.

최종 업데이트: 2013-07-03
김태완 (alvin@cloudant.com, alvin.kim082@gmail.com)