3.4.3 서비스 등록과 디스커버리: 클라이언트가 마이크로서비스와 통신하는 방법
마이크로서비스 소비자 관점에서 마이크로서비스는 위치 투명성을 가져야 한다. 클라우드 기반 환경에서 서버는 일시적(ephemeral)이기 때문이다. ‘일시적’이라는 것은 서비스를 호스팅하는 서버가 일반적으로 기업 데이터 센터에서 실행되는 서비스보다 수명이 짧다는 것을 의미한다. 클라우드 기반 서비스는 자기 서버에 완전히 새로운 IP 주소를 할당받아 신속하게 시작되고 종료될 수 있다.
서비스를 수명이 짧고 폐기 가능한 객체로 다루자는 주장 덕분에 마이크로서비스 아키텍처는 많은 서비스 인스턴스를 실행하며 높은 수준의 확장성과 가용성을 얻을 수 있었다. 그리고 상황이 허락되는 한 신속하게 서비스 요구와 회복탄력성을 관리할 수 있다. 모든 서비스에는 고유하고 비영구적인 IP 주소가 할당되어 있다. ‘일시적’ 서비스의 단점은 끊임없이 서비스 시작과 종료를 반복하는 상황에서 대규모 서비스를 수동 또는 직접 관리하면서 장애를 초래할 수 있다는 것이다.
마이크로서비스 인스턴스는 제삼자 에이전트에 자신을 등록해야 하는데, 이 등록 과정을 서비스 디스커버리(service discovery)라고 한다. 그림 3-9의 3단계를 참고하고 세부 내용은 그림 3-12에서 볼 수 있다. 마이크로서비스 인스턴스가 서비스 디스커버리 에이전트에 등록될 때, 인스턴스는 에이전트에 다음 두 가지 정보를 제공한다.
• 물리적 IP 주소(또는 서비스 인스턴스의 도메인 주소)
• 애플리케이션이 서비스를 찾을 때 사용되는 논리적 이름