クラウド環境内のCouchbase Serverを使用している場合、サーバインスタンスは、プライベートアドレス及びグローバルアドレスを利用できます。このため、IPアドレスの代わりにDNSのエントリを使って設定する必要があります。
デフォルトでは、Couchbaseのサーバは一意に認識する識別子としてIPアドレスを使用します。IPが変更された場合は、個々のノードは自身の設定を識別することができなくなり、クラスタを構成する他のノードはそれにアクセスすることができなくなります。クラウド上でのCouchbaseインスタンスの設定には、IPアドレスの代わりにDNSを用いるべきです。具体的には、次の手順に従って設定します。ちなみにCouchbaseが提供するRightScaleのサーバー・テンプレートでは、自動的にDNS設定もやってくれます。
ノードのDNSエントリを設定するときのポイントは以下のとおりです。
ホスト名が常にIPアドレスに名前解決されることを確認してください。これはIPアドレスが変更された場合にホスト名を自動的に更新できるDNSMadeEasyのような動的DNSサービスを利用して実現できます。
ホスト名で登録されたIPアドレスに他のノードとアプリケーションのマシンが通信できるように、ホスト名と登録されるIPアドレスはノードのプライベートIP(Amazonによって配布される外部IPではなく)を設定してください。
以下の手順で完全にノードから全てのデータと設定を消去し、フレッシュな状態でCouchbaseを開始することができます。 既に実行中のクラスタの場合、リバランスにより容易にクラスタからノードを切り離し、ノードを変更後、再度リバランスによりクラスタへ戻すことができます。 同一のクラスタにIP指定のノードとホスト名指定のノードが共存できます。
明示的にこの方法でIPアドレスを指定する場合は、クラスタ内の複数のノードのための識別子として localhost
または127.0.0.1
を指定しないでください。
代わりに、ホストの正しいIPアドレスを使用します。
Linuxの場合:
Couchbase Serverのインストール
次を実行します:
sudo /etc/init.d/couchbase-server stop
/opt/couchbase/bin/couchbase-server
にあるstart()
を編集します。
以下の行の下に:
-run ns_bootstrap -- \
新しい行を追加します。
-name ns_1@hostname
\
hostname
はこのサーバにリスンさせたいDNS名もしくはIPアドレスです('ns_1@' プリフィックスは必須)。例:
... -run ns_bootstrap -- \ -name ns_1@couchbase1.company.com \ -ns_server config_path "\"/opt/couchbase/etc/couchbase/static_config\"" \ ...
また、IPアドレスの設定ファイル(/opt/couchbase/var/lib/couchbase/ip
)を編集する必要があります。一度クラスタに入ったノードのIPアドレスがこのファイルに書かれています。ファイルを開き、ここまでの手順で設定したホスト名
を含む一行を追加します。
下記のファイルを削除します。
/opt/couchbase/var/lib/couchbase/data/*
/opt/couchbase/var/lib/couchbase/mnesia/*
/opt/couchbase/var/lib/couchbase/config/config.dat
次を実行します:
sudo /etc/init.d/couchbase-server start
Manage Serversページの下にホスト名として正しく識別されたノードをを確認できます。構成がクリアーされてから、再度セットアップウィザードが表示されますが、ウィザードを完了した後にノードが適切に識別されます。
Windowsの場合
Couchbase Serverソフトウェアをインストールします。
下記を実行してサービスを停止します:
shell> C:\Program Files\Couchbase\Server\bin\service_stop.bat
下記を実行してサービスの登録を解除します
shell> C:\Program Files\Couchbase\Server\bin\service_unregister.bat
管理者として、以下のスクリプトを編集しますC:\Program Files\Couchbase\Server\bin\service_register.bat
:
7行目は次のとおり:NS_NAME=ns_1@%IP_ADDR%
と設定します。
%IP_ADDR%
を使用するホスト名/IPに書き換えます。
以下のファイルのIPアドレスを編集します,C:\Program Files\Couchbase\Server\var\lib\couchbase\ip
. 一度クラスタに入ったノードのIPアドレスがこのファイルに書かれています。ファイルを開き、ここまでの手順で設定したホスト名
を含む一行を追加します。
修正したスクリプトを使ってサービスに登録します:
C:\Program Files\Couchbase\Server\bin\service_register.bat
次の配下にあるファイルを削除します::C:\Program Files\Couchbase\Server\var\lib\couchbase\mnesia
.
下記を実行してサービスを起動します:
shell> C:\Program Files\Couchbase\Server\bin\service_start.bat
GUIのManage Serversページからノードが自身を正しく識別しているか確認します。(設定がクリアされているためにセットアップウィザードに戻りますが、ウイザードが完了するとノード名は正しく表示されます)