サービスディスカバリ(さーびすでぃすかばり)
最終更新:2026/4/25
サービスディスカバリは、ネットワーク上で利用可能なサービスを自動的に検出し、その情報を提供する仕組みである。
別名・同義語 サービス登録サービス検出
ポイント
クラウド環境やマイクロサービスアーキテクチャにおいて、動的に変化するサービス環境に対応するために重要な役割を果たす。従来の固定IPアドレスによる接続方法の課題を解決する。
サービスディスカバリとは
サービスディスカバリは、アプリケーションやシステムが互いに発見し、通信するためのメカニズムです。特に、動的な環境(クラウド、コンテナ、マイクロサービスなど)においては、サービスのIPアドレスやポート番号が頻繁に変化するため、従来のハードコードされた設定では対応が困難になります。サービスディスカバリは、これらの課題を解決し、アプリケーション間の疎結合性を高めることを目的とします。
サービスディスカバリの仕組み
サービスディスカバリの基本的な流れは以下の通りです。
- サービス登録: サービスインスタンスが起動すると、自身の情報(IPアドレス、ポート番号、サービス名など)をサービスレジストリに登録します。
- サービス検出: アプリケーションがサービスを利用する際に、サービスレジストリに問い合わせて、利用可能なサービスインスタンスの情報を取得します。
- サービス利用: アプリケーションは、取得した情報に基づいてサービスインスタンスに接続し、通信を行います。
サービスディスカバリの種類
サービスディスカバリには、主に以下の種類があります。
- クライアントサイドディスカバリ: クライアントが直接サービスレジストリに問い合わせてサービス情報を取得します。
- サーバーサイドディスカバリ: クライアントはロードバランサなどのプロキシを経由してサービスにアクセスし、プロキシがサービスレジストリに問い合わせてサービス情報を取得します。
代表的なサービスディスカバリツール
- Consul: HashiCorpが提供するサービスメッシュソリューションの一部として、サービスディスカバリ機能を提供します。
- etcd: 分散型のKey-Valueストアであり、サービスディスカバリにも利用されます。
- ZooKeeper: Apacheが提供する分散調整サービスであり、サービスディスカバリにも利用されます。
- Kubernetes DNS: Kubernetes環境で利用可能なサービスディスカバリ機能です。