Router Mesh Model, 마이크로서비스 참조 아키텍처
NGINX 마이크로서비스 참조 아키텍처(MRA)에서 Router Mesh Model 은 세 가지 모델 중에서 중간에 위치하며 세 가지 모델 모두 NGINX Plus 고가용성(HA) 서버 클러스터를 리버스 프록시 위치에 사용합니다.
모델은 추가적인 NGINX Plus 서버를 사용하는지 여부와 그 방법에 따라 다릅니다.
- Proxy Model은 가장 간단한 모델로서 애플리케이션의 마이크로서비스 간 트래픽이 아닌 들어오는 및 나가는 트래픽만 관리하는 데 초점을 둡니다. 리버스 프록시 위치에 있는 NGINX Plus HA 서버 클러스터가 마이크로서비스 서버 앞에 위치합니다. NGINX Plus 서버 클러스터는 인터넷 트래픽을 버퍼링하고 서비스 인스턴스로 로드 밸런싱하며 데이터를 캐시하고 기타 마이크로서비스 관련 작업을 수행합니다.
- 중간 모델인 Router Mesh Model 은 리버스 프록시 위치에 NGINX Plus HA 서버 클러스터를 사용한 후, 특정 마이크로서비스를 실행하는 서버들의 중앙에 Router Mesh 허브로써 두 번째 서버 클러스터를 배치합니다. Router Mesh Model 은 상대적으로 구현하기 쉽고 강력하며 효율적이며 빠릅니다.
- Fabric Model은 세 가지 모델 중에서 가장 정교한 모델로서 리버스 프록시로 NGINX Plus 서버 클러스터를 사용하고 각 서비스 인스턴스마다 추가적인 NGINX Plus 인스턴스를 사용합니다. (NGINX Plus 인스턴스와 서비스 인스턴스 모두 일시적으로 생성되고 실행 시 필요에 따라 파괴됩니다.) Fabric Model은 컨테이너 수준에서 로드 밸런싱과 트래픽 관리를 구현하여 서비스 인스턴스 간의 지속적이고 빠른 SSL/TLS 연결을 제공하여 암호화된 HTTP 네트워크에서 최고의 성능을 제공합니다.
NGINX는 세 가지 모델이 발전을 이루는 것으로 봅니다. 새로운 마이크로서비스 애플리케이션을 구현하거나 기존 모놀리식 앱을 마이크로서비스로 변환하는 경우, Proxy model로 충분할 수 있습니다.
그런 다음 Router Mesh Model 로 이동하여 성능과 제어력을 높일 수 있습니다. 수많은 마이크로서비스 앱의 요구 사항을 처리합니다. 가장 큰 앱과 전송 계층에서 SSL/TLS가 필요한 앱의 경우 패브릭 모델을 사용하십시오.
다음 그림은 NGINX Plus가 Router Mesh Model 에서 두 가지 역할을 수행하는 방식을 보여줍니다.
하나의 NGINX Plus 클러스터는 프론트엔드 역할의 리버스 프록시로 작동하며, 다른 NGINX Plus 클러스터는 라우팅 허브로 작동합니다. 이 구성은 최적의 요청 분배와 목적에 맞는 관심사 분리를 가능하게 합니다.

목차
1. 리버스 프록시 및 부하 분산 서버 기능
2. Router Mesh Model 구현
2-1. Router Mesh Model 예제
3. 결론
1. Router Mesh Model 리버스 프록시 및 부하 분산 서버 기능
Router Mesh Model 에서 NGINX Plus 프록시 서버 클러스터는 들어오는 트래픽을 관리하지만 서비스 인스턴스에 직접 전달되지 않고 Router Mesh 서버 클러스터에 요청을 보냅니다.
리버스 프록시 서버 클러스터의 기능은 두 그룹으로 나뉩니다. 첫 번째 기능 그룹은 성능 관련 기능입니다.
두 번째 그룹의 기능은 보안을 강화하고 애플리케이션 관리를 더 쉽게 만듭니다.
첫 번째 서버 클러스터 리버스 프록시 서비스를 제공하는 동안 두 번째 서버 클러스터는 다음을 제공하는 라우터 메시 허브 역할을 합니다.
2. Router Mesh Model 구현
라우터 메시 모델을 사용하여 마이크로서비스 아키텍처를 구현하는 과정은 다음과 같은 네 단계로 이루어집니다.
- 프록시 서버 클러스터 설정
- 오케스트레이션 도구의 인터페이스 코드와 함께 두 번째 서버 클러스터를 라우터 메시 허브로 배포
- 로드 밸런싱할 서비스를 지정
- 서비스에 사용하는 서비스의 새로운 Endpoint를 알려줌
첫 번째 단계에서는, 프록시 모델이나 전형적인 리버스 프록시 서버와 같은 방식으로 프록시 서버 클러스터를 설정합니다.
이후의 단계에서는, 라우터 메시 마이크로서비스 허브에 사용할 컨테이너를 배포합니다. 이 컨테이너에는 사용하는 서비스 레지스트리와 오케스트레이션 도구에 적합한 NGINX Plus 인스턴스와 적절한 에이전트가 포함되어 있습니다. 컨테이너를 배포하고 확장한 후, 각 서비스의 정의에 환경 변수를 추가하여 로드 밸런싱할 서비스를 지정합니다.
LB_SERVICE=true
이 허브는 서비스 레지스트리와 새 서비스 및 인스턴스 생성, 수정 및 소멸될 때 발생하는 Event stream을 모니터링 합니다.
성공적으로 통합하기 위해서는, 라우터 메시 허브가 시중에서 사용 가능한 다양한 레지스트리 및 오케스트레이션 도구와 함께 작동하기 위한 어댑터가 필요합니다.
현재 NGINX는 Docker Swarm 기반 도구, Mesos 기반 시스템 및 Kubernetes와 함께 Router Mesh Model을 사용하고 있습니다.
라우터 메시 허브의 NGINX Plus 서버는 서비스 인스턴스를 위한 로드 밸런싱 영역을 지원합니다.
서비스 인스턴스로 요청을 보내기 위해, 라우터 메시 허브의 NGINX Plus 서버로 요청을 라우팅하고, 서비스 이름을 URI 경로의 일부로 사용하거나 서비스 이름으로 사용합니다.
2-1. Router Mesh Model 예제
예를 들어 그림 1에서 Pages 웹 프론드엔드의 URL은 다음과 같습니다.
http://router-mesh-internal.mra.com/pages/index.php
쿠버네티스와 Mesos/DCOS 시스템을 통해 Router Mesh Model 은 경로를 위치가 아닌 서버로 구현합니다. 이 버전에서 위의 경로는 다음과 같이 액세스할 수 있습니다.
http://pages.router-mesh.internal.mra.com/index.php
이를 통해 일부 내부 참조를 포함하는 Payload (예: HTML)은 링크를 수정하지 않고도 요청을 보낼 수 있습니다.
대부분의 JSON Payload의 경우, 원래의 경로 기반 형식이 잘 작동합니다.
Router Mesh Model에서 NGINX Plus를 사용하는 이점 중 하나는 시스템이 이를 필요로 하는 모든 서비스에 대해 회로 차단기 패턴(Circuit Breaker Pattern)을 구현할 수 있다는 것입니다.
사용자가 구성할 수 있는 URI를 모니터링하기 위해 Active Health Check가 자동으로 생성 되므로 서비스 인스턴스의 상태를 쿼리할 수 있습니다.
NGINX Plus는 비정상적인 인스턴스로부터 트래픽을 전환하여 복구할 수 있는 기회를 제공하거나, 복구할 수 없는 경우 재활용할 수 있도록 합니다.
모든 서비스 인스턴스가 다운되거나 사용할 수 없는 경우 NGINX Plus는 캐시된 데이터를 제공하여 서비스 연속성을 유지할 수 있습니다.
3. 결론
마이크로서비스를 위한 Router Mesh Model 네트워킹 아키텍처는 NGINX 마이크로서비스 참조 아키텍처의 중간 옵션입니다. Proxy Model과는 달리 모든 관련 기능을 하나의 NGINX Plus 인스턴스에 넣는 대신, Router Mesh Model은 서로 다른 역할을 위해 구성된 두 개의 NGINX Plus 서버 클러스터를 사용합니다. 하나의 서버 클러스터는 프록시 서버로 작동하고, 다른 하나는 마이크로서비스를 위한 라우터 메시 허브로 작동합니다.
서로 다른 유형의 기능을 두 개의 서버 클러스터로 분리함으로써 속도, 제어 및 보안 최적화 기회를 제공합니다. 두 번째 서버 클러스터에서는 서비스 디스커버리(서비스 레지스트리 도구와의 협력)와 로드 밸런싱을 빠르고 강력하게 구성 가능합니다. 모든 서비스 인스턴스에 대한 Health Checks는 시스템 전체를 더 빠르고 안정적이며 탄력적으로 만듭니다.
NGINX Plus를 사용하여 Router Mesh Model 을 직접 시도해 보려면 오늘부터 무료 30일 체험을 시작하거나 사용 사례에 대해 논의하기 위해 NGINX STORE에게 문의하십시오. 요구 사항을 점검하고 Router Mesh Model 을 구현하는 데 도움을 받을 수도 있습니다.
아래 뉴스레터를 구독하고 NGINX와 NGINX STORE의 최신 정보들을 빠르게 전달 받아보세요.
댓글을 달려면 로그인해야 합니다.