はじめに
もはやチートレベルの仕様ではないかとマイブームになっているArangoDBですが、Rancher上での構築についてご紹介してみたいと思います。
何がチートレベルなのか?
まず、ArangoDBのチート感を簡単にご紹介します。
- Key-Value、ドキュメント、グラフと複数のデータモデル対応のNoSQL DB
- NoSQLデータベースなのにJOIN対応(事実上RDBの領域を侵食)
- トランザクションもある
- SPOFがないCP master/master型のクラスタが組める
- AQLという独自クエリ言語だが、プログラム的で書きやすい
- デフォルトでWebUIがついてるので別途管理ツールを用意する必要がない
- パフォーマンスもいい
- スケールアウトでリニアに性能UP
- Dockerでクラスタも簡単構築
- JavascriptフレームワークのFoxxでマイクロサービスを直接埋め込める
いかがでしょうか?
ちょっと言ってる意味がわからないくらい異次元ですね。
立ち上げてみよう
公式でdocker imageを用意してくれていますので、早速Rancher上で立ち上げてみましょう!
今回は空のスタックを用意し、RancherのGUI上で組み立てていきます。
空のスタックで「サービスを追加」ボタンを押したら、まずはサイドキックでデータボリュームコンテナを定義しておきます。
本体側は、ランダムなrootパスワードを生成するための環境変数を設定しておきます。
「ボリューム」タブで、先ほどサイドキックで用意したデータボリュームコンテナを選択しておきます。
以上で完了です。
GUIで組み立てましたが、docker-compose.yml
とrancher-compose.yml
だとこのようになります。
無事起動できました!
先ほどランダム生成にしたrootパスワードは、コンテナのログで確認することができます。
ロードバランサでアクセス経路の確保
次に、ArangoDBのWebUIに接続する経路を確保します。
おすすめは、ロードバランサ用のスタックを別に用意し、そこでロードバランサを追加することです。
ArangoDBのポートは8529
がデフォルトなので、ロードバランサでは、8529
へのアクセスをarangodbスタックに入れてあるarangodb-instanceの8529
に流すようにします。
ArangoDBのWebUI
ブラウザでhttp://[ロードバランサのパブリックIP]:8529
にアクセスすれば、Web UIのログイン画面が表示されます。
まずはrootユーザでログインしてみましょう。
パスワードはコンテナのログに出力されています。
ログイン後は、似たような画面でDBの選択が促されますが、ひとまずデフォルトのままで問題ないです。
ダッシュボードはいきなりパフォーマンス状況がわかるという素敵な作りになっていますね。
機会があればArangoDBの利便性に触れながら、Rancherを使ったマルチホストでのクラスタ構築をご紹介したいと思います。