[Rancher実践] RancherでArangoDB Vol.1

はじめに

もはやチートレベルの仕様ではないかとマイブームになっているArangoDBですが、Rancher上での構築についてご紹介したいと思います。

何がチートレベルなのか?

ArangoDBのチート感を簡単にご紹介します。

  1. Key-Value、ドキュメント、グラフと複数のデータモデル対応のNoSQL DB。
  2. NoSQLデータベースなのにJOIN対応。(事実上RDBの領域を侵食)
  3. トランザクションもある。
  4. SPOFがないCP master/master型のクラスタが組める。
  5. AQLという独自クエリ言語だけど、プログラム的で書きやすい。
  6. デフォルトでWebUIがついてるので別途管理ツール用意しなくていい。
  7. パフォーマンスもいい。
  8. スケールアウトでリニアに性能UP。
  9. Dockerでクラスタも簡単構築。
  10. JavascriptフレームワークのFoxxでマイクロサービスを直接埋め込める。

いかがでしょうか?ちょっと言ってる意味がわからないくらい異次元ですね。

まずは立ち上げてみる

公式のdocker imageも用意してくれていますので、早速Rancher上で立ち上げてみましょう!

今回は空のスタックを用意し、RancherのGUI上で組み立てていきます。空のスタックで「サービスを追加」ボタンを押したら、まずはサイドキックでデータボリュームコンテナを定義しておきます。

本体側は、ランダムなrootパスワードを生成するための環境変数を設定しておきます。

「ボリューム」タブで、先ほどサイドキックで用意したデータボリュームコンテナを選択しておきます。

以上で完了です。GUIで組み立てましたが、docker-compose.ymlrancher-compose.ymlだとこのようになります。

無事起動できました!先ほどランダム生成にしたrootパスワードは、コンテナのログで確認することができます。

ロードバランサでアクセス経路の確保

次に、ArangoDBのWebUIに接続する経路を確保します。おすすめは、ロードバランサ用のスタックを別に用意し、そこでロードバランサを追加することです。

ArangoDBのポートは8529がデフォルトなので、ロードバランサでは、8529へのアクセスをarangodbスタックに入れてあるarangodb-instanceの8529に流すようにします。

ArangoDBのWebUI

ブラウザでhttp://[ロードバランサのパブリックIP]:8529にアクセスすれば、Web UIのログイン画面が表示されます。まずはrootユーザでログインしてみましょう。パスワードはコンテナのログに出力されています。

ログイン後は、似たような画面でDBの選択が促されますが、ひとまずデフォルトのままで問題ないです。

ダッシュボードはいきなりパフォーマンス状況がわかるという素敵な作りになっていますね。

次回はArangoDBの利便性に触れながら、Rancherを使ったマルチホストでのクラスタ構築をご紹介したいと思います。

APN Consulting Partner
スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。