Post
EN

Service mesh

Service Mesh는 마이크로서비스 아키텍처에서 서비스 간의 네트워크 통신을 관리하기 위한 인프라스트럭처 레이어입니다. 마이크로서비스 아키텍처에서는 애플리케이션이 작고 독립적인 서비스들로 나뉘어져 있으며, 각 서비스는 네트워크를 통해 서로 통신합니다. Service Mesh는 이러한 서비스들의 복잡한 통신을 단순화하고, 보안, 관찰성, 운영 효율성을 증진시켜주는 역할을 합니다.

Service Mesh의 핵심 구성 요소는 다음과 같습니다:

- 사이드카(Sidecar) 프록시: 각 마이크로서비스에 대해 동작하는 경량화된 네트워크 프록시로, 서비스 인스턴스와 함께 배포됩니다. 사이드카 프록시는 서비스 간의 모든 네트워크 통신을 중계하고, 이를 통해 트래픽 관리, 보안, 서비스 검색 등의 기능을 제공합니다.

- 컨트롤 플레인(Control Plane): Service Mesh의 관리 및 구성을 담당하는 중앙 구성 요소로, 사이드카 프록시들을 제어하고, 정책을 적용하며, 서비스 메시 전체의 동작을 조정합니다.

Service Mesh의 주요 기능은 다음과 같습니다:

- 트래픽 관리: 요청 라우팅, 부하 분산, 장애 조치(failover), A/B 테스팅, 카나리 배포와 같은 고급 트래픽 관리 기능을 제공합니다.

- 보안: 상호 TLS(mTLS)를 통한 암호화된 서비스 간 통신, 액세스 제어, 정책 기반의 보안 규칙을 제공합니다.

- 관찰성: 로깅, 모니터링, 추적 기능을 통해 시스템의 성능을 관찰하고 문제를 진단할 수 있습니다.

- 복원성: 리트라이 로직, 타임아웃, 회로 차단기(circuit breaker) 등을 통해 시스템의 복원력을 높여줍니다.

- 서비스 검색: 서비스 레지스트리를 통해 서비스 인스턴스를 자동으로 검색하고, 동적으로 요청을 라우팅합니다.

Service Mesh는 애플리케이션 코드로부터 네트워크 관련 로직을 분리하여 개발자가 비즈니스 로직에 집중할 수 있도록 해줍니다. Istio, Linkerd, Consul Connect와 같은 서비스 메시 구현체들이 있으며, 클라우드 네이티브 환경에서 널리 사용됩니다.

This article is licensed under CC BY 4.0 by the author.