3.2.4 서비스 디스커버리
REST API가 있는 어떤 서비스를 호출하는 코드를 개발한다고 합시다. 이 서비스를 호출하는 코드는 서비스 인스턴스의 네트워크 위치(IP 주소 및 포트)를 알고 있어야 요청을 할 수 있습니다. 물리적인 하드웨어를 기반으로 실행되는 기존 애플리케이션은 서비스 인스턴스의 네트워크 위치가 대부분 정적입니다. 어쩌다 한 번 업데이트되는 구성 파일에서 네트워크 위치를 읽어 오면 되죠. 하지만 요즘 클라우드 기반의 마이크로서비스 애플리케이션은 네트워크 위치가 훨씬 동적이라서 이를 식별하는 일이 결코 간단하지 않습니다(그림 3-4).
서비스 인스턴스마다 네트워크 위치가 동적 배정되고, 서비스 인스턴스는 자동 확장, 실패, 업그레이드 등 여러 가지 사유로 계속 달라지므로 클라이언트 코드는 서비스 디스커버리를 사용할 수밖에 없습니다.
▲ 그림 3-4 서비스 인스턴스 IP는 동적 할당된다