Couchbaseの起動からクラスタ設定まで

CouchbaseはCouchDBの作者であるDamien Katz氏が始めたCouchOne社と、Membaseを提供するMembase社が合併して出来たCouchbase社が提供するオープンソースのNoSQL DBです。

てっきりCouchDBの延長線上だと思っていたのですが、実際には新たに起こされた実装で、CouchDBの中でパフォーマンスのネックとなっていた部分をCやC++で書き直したり、Membaseとの統合でIn-memory DBと同等の応答性能を提供したり、非常に運用しやすいピアベースのクラスタリングをサポートしたりと、非常にモダンなNoSQL DBとのこと。

知ったきっかけはラスベガスで行われたAWS re:Inventの展示ブースだったのですが、その後日本国内で開かれたCouchconfに参加して同社のエンジニアと話したりする中でどんどん親しみが湧いてきて、早速試してみたくなりました。

日本での知名度はまだまだあまり高くなさそうだし、日本語の情報もまだまだ少なそうなので、知名度向上の一助になればという思いも含め、書いています。

インストールについて

Couchbaseのインストールですが、特に難しいことは無いと思います。

本家のページでdebパッケージやrpmパッケージが提供されてるし、Downloadページに行けばMac OS向けのダウンロードリンクが表示されたりするので楽々感たっぷり。

でもせっかくなのでクラスタリング等試したいですし、それを考えるとパッケージ入れたノードをいくつも作るのはめんどくさいですし、どのポートを開けないと動かないとかとりあえず試すだけなのに考えるのはいやです。

そこでありそうだな〜と思いつつ、AWS Marketplaceでおもむろにcouchbaseとたたいてみました。

ああ、あるある。

無料でインストール済みのEC2インスタンスが1-clickで立ち上げられるというわけです。

せっかくなのでこれで立ち上げましょう。

AWS Marketplace からの起動

Screen Shot 2013-03-24 at 7.02.21 PM

一番上のCommunity Editionならライセンス費はかからない模様。

それを選んで進みます。

Screen Shot 2013-03-24 at 7.04.15 PM

Continueをクリックして次の画面へ。

Screen Shot 2013-03-24 at 7.06.05 PM

リージョンにTokyo、インスタンスタイプにm1.mediumを選んで”Launch with 1-Click”。
(できればt1.microで行きたかったのですが、どうもt1.microだとサーバは立ち上がるものの、セットアップ途中からスペック不足らしく、まともに動作しません。m1.smallが選べればちょうどいいのですが。Couchbase folks, why don’t you enable m1.small instead of t1.micro which cannot run Couchbase well? The next choice is m1.medium and that is kind of expensive to just give it a try…)

これだけでセットアップ済みのCouchbaseノードが立ち上がります。

嬉しいのはセキュリティグループ(EC2インスタンスに設定するファイアウォールのテンプレートのようなもの)もCouchbaseにあわせて最初から設定されているので、必要なポート番号について悩む必要もなく、ポート全通しのような暴挙に出る必要もなく、サーバが立ち上げられます。(昔は1つソフトウェアを試すだけで大変でしたが、いい時代になったものですね。。)

下記のような画面が出れば完了です。

Screen Shot 2013-03-24 at 7.13.26 PM

上記画面にはこの後のインストラクションなどが書いてあってとっても親切。

でもまあ読むよりも試したいという方も多いと思いますので(自分含め)とりあえず真ん中くらいの”Your Software”と書いたリンクをクリックしましょう。

そして出てくる下記のような画面で、”Access Software”を選びます。

Screen Shot 2013-03-24 at 7.14.24 PM

すると何と言うことでしょう!

既にCouchbaseのWebコンソールの中です!

繰り返しになりますが、いい時代になったものですねぇ。

Couchbaseのコンソールでサンプルデータの投入と初めてのクラスタ設定

 

Screen Shot 2013-03-24 at 7.16.28 PM

 

早速ログインしてみましょう。

Username: Administrator

Password: <起動したEC2インスタンスのID>

パスワードはわかりにくいので要注意です。

起動したEC2インスタンスのIDを調べて入力して下さい。1つ手前のページに出ているi-XXXXXXXというやつがそれです。

わからなければAWSのマネージメントコンソールで確認しましょう。

Screen Shot 2013-03-24 at 11.52.48 PM

 

ログインすればもうそこはCouchbasenの管理用GUI。

このコンソールを使えばデータ用のバケットを作成したり、クラスタ内の各ノードのステータスを管理したり、Viewを管理したり、クラスタにノードを追加したり、何でも出来ます。

リージョンを越えて地球の裏側のノードにレプリケーションを行うことだって出来ちゃいます(Cross Data Center Replication, XDCR)。

いろいろクエリを試す為のサンプルバケットを追加することもコンソールから簡単に出来ます。

Settings –> Sample Buckets と選び、beer-sampleやgamesim-sampleにチェックを入れて、Createを押せばサンプルデータが読み込まれたバケットが出来上がります。

Screen Shot 2013-03-24 at 11.50.48 PM

試しにもう1つ同じようにインスタンスを追加して、そのインスタンスと2ノードでクラスタを組んでみましょう。

まずは同じ手順でもう1つインスタンスを起動。

Screen Shot 2013-03-24 at 11.48.40 PM

Couchbaseのコンソールに戻り、”Server Nodes”のタブに入り、”Add Servers”のボタンを押します。

クラスタに足すべきノードのホスト名あるいはIPアドレスと、Username, Passwordを聞かれるので入力します。

(クラスタを組むにはTCP 21100番ポートと通信出来る必要があるので、セキュリティグループを調整しておきましょう)

Screen Shot 2013-03-25 at 12.03.25 AM

 

これだけで何と2台のノードを含むクラスタの設定が完了です。

Screen Shot 2013-03-25 at 12.13.22 AM

後はRebalanceが行われれば2台で負荷を分散し合う形になります。

下記の図はRebalancingを手動でキックした際の様子。

Screen Shot 2013-03-25 at 12.18.37 AM

なお、Couchbaseのクラスタのノード間にはマスタ/スレーブの関係はなく、すべてのノードが同等のピアになっています。

そのため、どのノードにログインしてもクラスタのマネージメントが出来ます。

クライアントからはライブラリにクラスタのノードを渡しておけば、後はうまくやってくれるというわけです。

すばらしい!

ドキュメント指向のDBとして利用したり、Memcachedプロトコルもサポートしているので、キャッシュの置き換えとして利用したり、いろいろ使えそうですね!

 

About these ads

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中