더북(TheBook)

2.4.3 서비스 등록과 디스커버리: 클라이언트가 마이크로서비스와 통신하는 방법

마이크로서비스 소비자 관점에서 마이크로서비스는 위치 투명성을 가져야 한다. 클라우드 기반 환경에서 서버는 일시적(ephemeral)이기 때문이다. ‘일시적’이라는 말은 서비스를 호스팅하는 서버 수명이 기업 데이터센터에서 실행되는 서비스보다 더 짧다는 것을 의미한다. 클라우드 기반 서비스는 실행될 서버에 완전히 새로운 IP 주소를 할당받고 신속히 시작하고 제거될 수 있다.

서비스를 일시적이며 폐기 가능한 객체로 취급해야 한다는 주장 덕분에 마이크로서비스 아키텍처는 많은 서비스 인스턴스를 실행하며 고수준의 확장성과 가용성을 얻을 수 있었다. 상황에 따라 신속하게 서비스에 대한 요구와 회복성을 관리할 수 있다. 모든 서비스에는 고유하고 비영구적인 IP 주소가 할당된다. ‘일시적’ 서비스의 단점은 끊임없이 서비스의 시작과 종료를 반복하는 상황에서 일시적 서비스를 대량으로 수동 또는 직접 관리하면서 장애가 발생할 수 있다는 것이다.

마이크로서비스 인스턴스는 제3자 에이전트에 스스로 등록해야 하는데 이 등록 과정을 서비스 디스커버리(service discovery)라고 한다(그림 2-6의 세 번째 단계다). 마이크로서비스 인스턴스를 서비스 디스커버리 에이전트에 등록할 때 인스턴스의 물리적인 IP 주소 또는 도메인 주소와 애플리케이션이 서비스 검색에 사용할 논리적인 서비스 이름, 이 두 가지 정보를 에이전트에 전달한다. 어떤 서비스 디스커버리 에이전트는 상태 확인(health check)을 하는 데 필요한 URL을 등록하려는 서비스에 요구하기도 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.