前編GMOクラウド株式会社の芦田です。Cassandra」です。クラウドを利用してスケーラビリティーの高いシステムを構築する上でネックになりやすいのがデータベースの存在です。従来型のリレーショナルデータベース(RDB)は、その構造から柔軟なスケーリングを実現することが難しく、クラウドのメリットを生かせないケースが多いからです。そこで注目されているのがリレーショナルでないデータベース、いわゆる「NoSQL」です。Cassandra」をインストールしてみます。Cassandra(以下、Cassandra)は、オープンソースで開発されている分散データベース管理システムです。リレーショナルデータベースのような関係モデルを持たない構造でデータを保持するのでNoSQLの一種とされています。Cassandraでは複数のノードで分散してデータを保持します。このノードの集まりのことを「クラスタ」と呼び、外部からはこれが1つのデータベースに見えるわけです。1つのデータは複製されて複数のノードで保持されます。そのため、一部のノードに障害が発生してもデータが完全に失われるわけではなく、運用を継続することができます。一方で、データに変更が加えられた場合、それがクラスタ全体に同期されるまでの間、一時的にデータの一貫性が損なわれるという問題があります。一貫性の保持を犠牲にして可用性や柔軟性を確保しているというわけです。Cassandraのインストールそれでは、実際に仮想サーバーにCassandraをインストールしてみましょう。x86」テンプレートで新規作成した仮想サーバーを使うことにします。ホスト名は「kumolabo-cassandra」として、これ自体は外部には公開せず、外部公開されている「kumorabo-test」からローカルネットワーク経由でアクセスできる構成にします。したがって、作業はすべてkumorabo-test経由でsshログインして行います。JDKはオープンソース版が公開されており、yumを使ってインストールできます。パッケージ名は「java-1.6.0-openjdk.i386」(x64版のOSを使っている場合にはjava-1.6.0-openjdk.x86_64)です。Cassandraのダウンロードと配置Cassandraのバイナリは公式サイトのダウンロードページより入手できます。wgetコマンドでtar.gzアーカイブをダウンロードして、解凍してインストールしたい場所にフォルダごと移動しましょう。今回は本体を「/usr/local/apache-cassandra-1.0.6/」に配置し、シンボリックリンクを使って「/usr/local/cassandra/」でアクセスできるようにしました。IPアドレスの設定Cassandraの設定ファイルは、conf/ディレクトリ以下にある「cassandra.yaml」です。ほとんどはデフォルトの設定のままで大丈夫ですが、IPアドレスに関する以下の3箇所については、自分の仮想サーバーのIPアドレスに修正してください。「listen_address」は他のノードから自ノードへのアクセスを受け付けるためのアドレスです。「rpc_address」はThriftインターフェースがクライアントからのアクセスを受け付けるためアドレスです。rpc_addressには「0.0.0.0」を設定することもできて、その場合は使用可能なすべてのインターフェースでアクセスを受け付けます。Cassandraのノードがクラスタに参加するためには、すでに参加済みのノードのアドレスをあらかじめ1つ以上知っている必要があります。これを「seed」と呼びます。「seeds」にはseedのアドレスを記述します。コンマ区切りで列挙することで複数のseedを指定することもできます。最初の1台目のノードでは自分のアドレスを指定すればOKです。ホスト名の解決ドメイン名の設定がデフォルトのままだと起動時にエラーになることがあるので、/etc/hostsを修正して以下のようにドメイン名の部分を付け加えておきましょう(IPアドレスとドメイン名は各自のホストのものを記述してください)。特定のドメインを使用していない場合は「localdomain」を使います。ファイアウォールの設定Cassandraをインストールしたホストとクライアントホスト(本稿の例ではkumolabo-cassandraとkumolabo-host)との通信を許可し、それ以外の通信を遮断するように、それぞれファイアウォールの設定を変更します。ポートを指定してアクセスを制限したい場合には、Cassandraが使うポートについて知っておく必要があります。Cassandraは、目的に応じて次の3つのポートを使います。7199番)このうち、通常のクライアントとの通信に関連するのはThriftクライアントの9160番ポートです。その他に、複数ノードで運用する場合には7000番ポートを許可する必要があります。JMXはCassandraの内部状態を調べるためのプログラムが使うエージェントで、もしこれを利用する場合に7199番ポートへのアクセスを許可しなければいけません。起動と終了それではCassandraを起動してみましょう。/usr/local/bin/cassandraが起動スクリプトです。これを使って次のように起動します。コンソールにはログメッセージがたくさんの出力されるはずです。「-f」をつけることで、Cassandraはフォアグウランドのプロセスとして実行されます。したがって通常のプログラムと同様に[Ctrl]+[x]を入力すれば終了できます。Cassandraをデーモンとして実行したい場合には、次のように「-p」オプションを使って任意のファイル名を指定しておきます。このファイルには実行されたCassandraプロセスのプロセスIDが記録されます。デーモンとして起動したCassandraを終了するにはkillコマンドを使います。その際に、次のように起動時に指定したファイルに記録されているプロセスIDを利用すれば安全に終了させることができます。次回は、Cassandraに対してデータの書き込みや読み出しを行ってみます。複数のノードによるクラスタの構成の仕方も紹介します。技術者向けの導入ガイドGMOクラウドのパートナーさまコラムアフィリエイトクラウド紹介制度サイトマップGMOクラウド株式会社は、ISMS(情報セキュリティマネジメントシステム)の国際規格を2006年11月に取得しました。27017」を2018年10月に認証取得しました。