Serfとは?
Serfは,
登場背景と利用シーン
クラウドコンピューティングを使ったシステムの普及と,
このようにインフラ部分が動的に変わることが当たり前になりつつある一方,
PSSHであれば複数台のサーバに同時ログインするための仕組みがありました。しかし,
これらの問題を解決するためにSerfが役立ちます。Serfであれば,
任意のコマンドを実行できることから,
- ChefやAnsible等の構成管理ツールを一斉実行するタイミングの自動化
- 特定のサーバのプロセスを,
リモートから一斉に再起動 - 障害発生を検出時,
ロードバランサーの設定から自動削除, 復旧時は自動回復 - NagiosやSensu,
Munin等の監視対象の追加・ 削除の自動化
Serfの3つの主な機能
Serfは複数台のサーバを管理するために,
- メンバー管理
クラスタを構成する各サーバの死活や,
メンバー(serfエージェントが稼働するサーバ)のホスト名, IPアドレス, タグを管理 - 障害検出
メンバーとの通信途絶時は障害情報を共有し,
定期的に復帰を確認して疎通が回復できれば, クラスタへ自動復旧 - イベント
メンバー管理や障害検出だけでなく,
任意のタイミングで発生するイベントをクラスタ全体で瞬時に共有(100サーバでは約2秒で伝播)
このようなクラスタを構成できるのは,
Serfの他にもクラスタを形成するツールがありますが,
クラスタを形成する方法も簡単です。サーバ上でSerfエージェントを起動し,
また,