OSS編~オーケストレーションツール Consul 01 インストール編~


今回は『OSS編~オーケストレーションツール Consul 01 インストール編~』と題して、オーケストレーションのConsulでインストールから起動までを試してみたいと思います。

Consulとは

VagrantやSerfで有名なHashiCorp社がGo言語で開発しているサービスディスカバリーとコンフィグレーションのための分散型ツールです。

Consul

以下の4つの特徴があります。

・Service Discovery
Consulのクライアントは「api」や「mysql」のような与えられた名前を持つサービスを提供し、他のクライアントがConsulを利用してサービスの提供者を探す事が出来ます。
アプロケーションはDNSまたはHTTPインターフェースを利用する事で簡単にサービス検出を行う事が出来ます。

・Health Checking
Consulクライアントは多くのヘルスチェックを提供します。
(“is the webserver returning 200 OK”)や (“is memory utilization below 90%”)等の提供されているサービスの情報と連携する事が出来ます。
上記の情報を利用してオペレータはクラスタのヘルス状態を監視出来たり、サービス検出コンポーネントを利用して障害ホストへのトラフィックをルーティングしたり出来ます。

・Key/Value Store
アプリケーションはConsulの階層的なKey/Valueストアを利用出来ます。
動的構成やリーダー選定等の為に利用でき、シンプルなHTTP APIで簡単に出来ます。

・Multi Datacenter
複数のデータセンターでの利用をサポートしています。
ユーザーは複数のデータセンターによるConsulの階層等は気にせずに利用することが出来ます。

Serfとの違い

Serfはノードベースのサービスディスカバリーやオーケストレーションのツールであり、
Consulはサービスレベルでのサービスディスカバリーとコンフィグレーションです。
また、SerfはCAPでいうAP(可用性のために一貫性を犠牲にしている)システムですが、
ConsulはSerfより高度なサービスレベルの抽象化に特化しており、複数のデータセンターでのヘルスチェックやKVSのような高レベルを提供する為にCP(一貫性のために可用性を犠牲にしている)システムとなります。

一長一短があり、利用シーンによりどちらが適しているかが決まると思います。

Consulのインストール

1.バイナリファイルの取得
バイナリファイルを取得してパスを通します。

バージョンを確認します。

Consulの起動

1.エージェントの起動
ConsulをServerエージェントで起動してみます。

2.メンバーリストの取得
別ターミナルからメンバーリストを取得してみます。

3.HTTP,DNSインターフェースによる取得
httpによる取得を試してみます。

続いてDNSによる取得を試してみます。

いかがでしたでしょうか?
次回もお楽しみに!!!