마이크로서비스 통신 분산 환경 유도‧프록시 컨테이너 등 사이드카 기능

서비스 메시는 쿠버네티스 혹은 API 아키텍처의 대체재인가, 보완재인가. 이에 대한 평가가 한때 전문가들 사이에 엇갈리긴 했지만 최근엔 쿠버네티스와 API 아키텍처의 기능을 확장시키는 역할을 한다는데에 의견이 일치하고 있다.

애플리케이션은 마이키로서비스로 잘게 분해한 후 애플리케이션을 다른 서버로 원활하게 이동시킬 수 있도록 한다. 이로 인해 어느 한 서비스의 여러 인스턴스가 다양한 로컬서버나 클라우드 서버에서 실행될 수 있다. 이때 해당 서비스는 클라우드 상의 컨테이너에서 실행되는데 쿠버네티스가 이들 컨테이너의 상호 통신을 관리하며 오케스트레이션을 하게 된다.

‘클라우드 엑스포 코리아’의 홍보 이미지
‘클라우드 엑스포 코리아’의 홍보 이미지

 

자동으로 서칭 작업 처리해줘

그렇다면 쿠버네티스의 기능은 서비스 메시와 무엇이 다른가. 이에 대해 클라우드 전문가들은 “분산된 개별 마이크로서비스들이 서로 통신해야 하는 또다른 서비스를 찾기 위해 활발하게 서칭해야 하는데 그 과정에서 복잡하게 얽히거나 제대도 찾지 못하는 경우가 발생한다”는 것이다.

그래서 앱 개발자가 일일이 개별 마아크로서비스에서 서칭 작업을 해야하는 경우도 발생한다. 엄청난 작업 부하인 셈이다. 이때 서비스 메시가 그런 어려움을 덜어준다. 즉 마이크로서비스가 연결되어야 하는 다른 서비스를 자동으로 찾아주는 역할을 하는 것이다.

 

과부하 인스턴스 차단으로 통신 원활하게

또 쿠버네티스와 서비스메시의 작동 원리도 다르다. 쿠버네티스는 단순히 서비스들이 분산된 상태를 검색하고 오케스트레이션하는, 이른바 순차 순환 대기(round-robin) 방식으로 작동한다. 이에 비해 서비스 메시는 그런 방식은 물론 한발 나아가서 보안이나 암호화 관리, 속도 조절을 위해 부하가 큰 인스턴스를 요청하는 과정을 차단시키는 회로 차단, 그리고 무엇보다 중요한 부하 분산 등의 복합적인 기능을 수행한다.

다시 말해 서비스 메시 역시 쿠버네티스와 같은 오케스트레이션 시스템이 필요하되 대체가 아닌 확장된 기능을 제공하는 것이다. 그 중에서도 부하를 분산시키는 마이크로서비스 환경을 유도하는 것이 가장 큰 장점으로 꼽힌다.

 

마이크로서비스 앱 안에서 서비스 요청 중개

서비스 메시는 API 게이트웨이와도 분명하게 역할이 구분된다. 흔히 서비스 요청자는 잘개 쪼개진 마이크로서비스로 구성된 애플리케이션을 활용하고 있다는 점을 인식하지 못하며 또 그럴 필요도 없다.

이는 API 게이트웨이가 분산된 마이크로서비스 그룹의 바깥에서 서비스 요청자 혹은 사용자의 서비스 요청 사항을 라우팅하며 그야말로 ‘게이트키핑’ 역할을 하기 때문이다.

서비스메시 역시 마이크로서비스 요청을 중개하는 역할을 하고 있다. 그러나 API 게이트웨이와는 달리 마이크로서비스 애플리케이션 안에서 요청을 전달하고 중개함으로써 그 구성요소를 알 수 있게 하는 점이 다르다.

 

프록시 컨테이너로 분산된 앱 간소화

서비스 메시는 이처럼 쿠버네티스나 API 게이트웨이의 기능과 병렬하며 그 역할과 기능을 확장시켜주는 셈이다. 특히 애플리케이션 컨테이너와 함께 실행되는 사이드카 컨테이너 패턴은 서비스 메시의 가장 두드러진 특징이다. 즉 모든 마이크로서비스 컨테이너마다 이와 병렬하는 또 다른 프록시 컨테이너가 있는 사이드카 방식이다.

마이크로서비스 통신에 필요한 모든 논리가 마이크로서비스에서 추출되어 사이드카로 입력되는 것이다. 즉 각종 워크로드나 네트워킹 정보가 또 하나의 컨테이너에 배치됨으로써 분산된 앱을 간소화하는 역할을 하는 것이다. 그럴경우 복잡하게 마이크로서비스간의 혼란스런 서칭 과정이 필요없게 되고, 논리적으로 부합되는 특정 마이크로서비스만을 조준하게 되는 것이다.

 

날로 기술 발달, AWS앱메시도 시장 공략 중

이처럼 서비스 메시는 서비스 메시는 부하를 분산시키는 방식으로 마이크로서비스를 원활하게 동적으로 연결하는 기능이 탁월하다. 그래서 날이 갈수록 그 기술도 발달하고 있는데 현재까지 대체로 서너 개 정도의 오픈소스 프로그램이 시중에서 많이 활용되고 있다.

현재는 ‘링커디(linker-d)’, ‘엔보이(Envoy)’, ‘이스티오(Istio)’, ‘해시코프 콘설(HashiCorp Consul)’ 등이 대표적인데 그 중 링커디와 이스티오의 기능이 비교적 넒은 것으로 평가받는다.

그러나 지난 2018년 11월부터 AWS가 서비스 메시의 공개 프리뷰를 제공하면서 판도가 달라기지 시작했다. 특히 아마존 퍼블릭 클라우드의 시장 장악력이 덧붙여 질 경우 AWS 앱 메시(AWS App Mesh)가 이들을 제압할 것이란 전망도 설득력을 얻고 있다.

저작권자 © 애플경제 무단전재 및 재배포 금지