【コンサル】

Consul とは?

最終更新:
💡 マイクロサービスの"電話帳"兼"交通整理係"

HashiCorp製のサービスディスカバリ・設定管理ツール。分散システムでサービス同士が互いを自動的に発見し、安全に通信するためのサービスメッシュ機能を提供する。

📌 このページのポイント
Consul:登録・探索・接続を区別 Consul 登録先を管理 IP・状態など 注文サービス 正常 在庫サービス 正常 登録 登録 ヘルスチェックの結果を探索へ反映 注文サービス 問い合わせ側 Consul 登録を参照 在庫サービスはどこ? 10.0.1.5:8080 取得した接続先へ直接通信 注文サービス 在庫サービス
探索だけを利用する例。青は登録と取得後の直接通信、橙は問い合わせ、緑は接続先の返答。チェック設定・間隔やキャッシュによる遅れがあり、固定IPへの通信を遮断する仕組みではありません。メッシュの認証・暗号化には別途設定が必要です。
ひよこ ひよこ
サービスディスカバリって何?サービスを探すってどういうこと?
ペンギン先生 ペンギン先生
マイクロサービスが増えると、「注文サービスはどのIPアドレスで動いてるの?」っていう問題が出てくるんだ。Consulはその電話帳みたいな役割で、各サービスが自分を登録して、他のサービスがConsulに聞けば相手の場所がわかる仕組みだよ。
ひよこ ひよこ
固定のIPアドレスを設定ファイルに書いておけばいいんじゃないの?
ペンギン先生 ペンギン先生
コンテナやクラウドの環境では、サービスが起動するたびにIPアドレスが変わることがあるんだ。手動で管理してたら追いつかないよね。Consulに登録する仕組みと、DNSやAPIで問い合わせる仕組みを組み合わせれば、接続先を個別に書き換える作業を減らせるよ。
ひよこ ひよこ
ヘルスチェックって何をチェックするの?
ペンギン先生 ペンギン先生
「このサービスはちゃんと動いてますか?」って定期的に確認する仕組みだよ。HTTPエンドポイントを叩いたり、TCPポートの応答を確認したりする。チェック結果をDNSの応答やプロキシの接続先選択に反映できるよ。固定IPへの直接通信まで止めるわけではなく、チェック間隔やキャッシュによる遅れにも注意が必要なんだ。
ひよこ ひよこ
KubernetesにもService Discoveryがあるけど、何が違うの?
ペンギン先生 ペンギン先生
ConsulはVMやKubernetesなどの異なる実行環境をまたいで、サービスの登録・探索・メッシュを管理できるよ。既存のKubernetesの仕組みで足りるか、クラスタ外とも連携したいかで検討するんだ。
ひよこ ひよこ
サービスメッシュって最近よく聞くけど、Consulのは他と何が違うの?
ペンギン先生 ペンギン先生
サービス探索だけの利用と、メッシュを有効にした利用を分けて考えるとわかりやすいよ。Envoyプロキシをサイドカーとして使い、mTLSで通信を暗号化し、Intentionsという仕組みで「どのサービスがどのサービスと通信していいか」を宣言的に定義できるんだよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Consul」って出てきたら「サービスの所在を管理し、メッシュ設定で通信の認証・暗号化も支援する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Consul」 = 領事
💬 consulには領事という意味があるよ。ここではHashiCorpのサービス接続を管理する製品名なんだ。

参考資料

← 用語集にもどる