【コンサル】

Consul とは?

💡 マイクロサービスの"電話帳"兼"交通整理係"
📌 このページのポイント
Consul → サービスディスカバリ & ヘルスチェック Consul サービスレジストリ KVストア / ヘルスチェック 注文サービス 正常 在庫サービス 正常 登録 登録 ヘルスチェック(定期監視) HTTP / TCP / gRPC → 異常検知で自動除外 → 復旧で自動復帰 サービスディスカバリ(問い合わせ) 注文サービス 「在庫サービスどこ?」 Consul 「10.0.1.5→8080」 → 直接通信
Consulのサービスディスカバリとヘルスチェック
ひよこ ひよこ

サービスディスカバリって何?サービスを探すってどういうこと?

ペンギン先生 ペンギン先生

マイクロサービスが増えると、「注文サービスはどのIPアドレスで動いてるの?」っていう問題が出てくるんだ。Consulはその電話帳みたいな役割で、各サービスが自分を登録して、他のサービスがConsulに聞けば相手の場所がわかる仕組みだよ。

ひよこ ひよこ

固定のIPアドレスを設定ファイルに書いておけばいいんじゃないの?

ペンギン先生 ペンギン先生

コンテナクラウドの環境では、サービスが起動するたびにIPアドレスが変わることがあるんだ。手動で管理してたら追いつかないよね。Consulなら自動的に最新の情報が反映されるから、設定ファイルの更新作業から解放されるんだ。

ひよこ ひよこ

ヘルスチェックって何をチェックするの?

ペンギン先生 ペンギン先生

「このサービスはちゃんと動いてますか?」って定期的に確認する仕組みだよ。HTTPエンドポイントを叩いたり、TCPポートの応答を確認したりする。異常が見つかったら、そのサービスへのトラフィックを自動的に止めてくれるから、障害が他に波及しにくくなるんだ。

ひよこ ひよこ

KubernetesにもService Discoveryがあるけど、何が違うの?

ペンギン先生 ペンギン先生

いい質問だね。Kubernetesサービスディスカバリはクラスタ内限定だけど、Consulはデータセンターをまたいだマルチクラスタ・マルチクラウド環境で使えるのが強みだよ。VM上のレガシーアプリとKubernetes上のアプリを同じサービスメッシュで管理できるのは、Consulならではの特徴だね。

ひよこ ひよこ

サービスメッシュって最近よく聞くけど、Consulのは他と何が違うの?

ペンギン先生 ペンギン先生

IstioLinkerdと比べて、ConsulのサービスメッシュKubernetes以外の環境でも動くのがポイントだね。Envoyプロキシをサイドカーとして使い、mTLSで通信を暗号化し、Intentionsという仕組みで「どのサービスがどのサービスと通信していいか」を宣言的に定義できるんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Consul」って出てきたら「サービス同士が互いを見つけて安全に通信する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Consul」 = 領事・相談役
💬 ローマ時代の最高行政官「コンスル」が語源で、分散システム全体を統括する役割をイメージしているよ
← 用語集にもどる