基本情報
概要
Consul(コンサル/コンスル)とは、クライアントサーバ型のクラスタ管理ツールです。同様ツール「Serf」よりも汎用的で、サービス検出(ヘルスチェック)用途などにも活用できます。
基本説明
Consulは、「サービス検出と設定のためのソリューション」とされているクラスタ管理ツールです。
各種サービス(Web、データベース、メール、各種デーモンなど)の監視とヘルスチェックを行い、キーバリューストアを通じて情報を提供します。
サービスの状況変化をトリガーとして、さまざまな自動処理への応用が可能です。
経緯
Consulは、クラスタ管理ツール「Serf」などを開発しているHashicorp社によるオープンソースプロダクトです。
2014年春に初リリースされました。
「Serf」と「Consul」の関係
「Consul」は、「Serf」と同様の機能に加え、サービス監視をしやすい機能を備えている点が特徴です。
ポイント
・汎用的クラスタ管理ツール
・Go言語実装
・クライアントサーバ型
・サーバはキーバリューストアを保持し、複製が可能
・HTTPインターフェース+DNSインターフェース
・サービス検出/設定が容易
・高可用性
・データセンタークラスに対応できるスケール性能
主な特徴
インストール
対象となる各サーバにエージェントを配置するだけで、インストール完了です。
クライアント・サーバ型
エージェントには、「サーバ用エージェント」と「クライアント用エージェント」の2種類があります。
・「サーバ用エージェント」がクラスタを形成
・「クライアント用エージェント」は、受け取ったリクエストの処理を「サーバ用エージェント」に委託
スケーラブル(マルチデータセンタ対応)
複数のConsulサーバが、ネットワークをまたがったクラスタを構築できます。
そのため、複数のデータセンターをまたがるような巨大なクラスタにも対応できます。
メンバー管理機能
クラスタのメンバー管理機能として、Serfと同様な機能を有しています。
サービス検出機能
Consulは各種サービス管理を行います。「クラスタ内のどのサーバでどのようなサービスが稼働しているか」「それは正常動作しているのか」を管理できます。
「このサービスはどのサーバで動いているのか?」などの問い合わせも可能です。
障害検知(ヘルスチェック)機能
「サービス検出(ヘルスチェック)機能」で、障害発生時の自動対応が可能です。
キーバリューストレージ
Consulサーバには、シンプルなキーバリューストアが内包されています。
「システム領域」と「ユーザ領域」があり、さまざまな用途に利用できます。
REST API
REST APIを通してキーバリューストア情報の取得/編集が可能です。
DNS API
DNSインターフェースを備えており、ホスト名の名前解決が可能です。
WebUI
視覚的にサービス状態を参照できるWebUIが用意されています。
同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Apache Mesos」「Pacemaker」など。
ライセンス情報
Consulのライセンスは「Mozilla Public License Version 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
参考元サイト
・Consul
・POCKETSTUDIO.JP LOG3 →Consulを使ってみた
・GREE Engineers' Blog →オーケストレーション入門 – 多種多様化するサービスをConsulで連携させる
・Gunosy Tech Blog →3分でまとめ読むSerfとConsulの基本機能
・gihyo.jp →Serf/Consulで管理を自動化! ~実践的な手法を紹介~ →第4回 Consulのサービス検出と様々なインターフェース
・ぺーぺーSEのブログ →Consul入門
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。