데이터 플레인과 컨트롤 플레인의 분리 아키텍처
Envoy 기반 Service Mesh는 데이터 플레인과 컨트롤 플레인으로 논리적으로 분리됩니다. 데이터 플레인은 각 마이크로서비스와 함께 사이드카로 배포되는 Envoy 프록시들로 구성되며, 모든 마이크로서비스 간 네트워크 통신을 중개하고 제어하면서 동시에 메시 트래픽의 원격 측정 데이터를 수집합니다. 컨트롤 플레인은 이 프록시들을 관리하고 트래픽 라우팅을 위한 설정을 배포하는 역할을 담당하므로 실제 데이터 패킷을 직접 처리하지 않습니다.
계층별 필터링 메커니즘과 프로토콜 지원
Envoy의 핵심 아키텍처는 L3/L4 네트워크 프록시 위에 L7 HTTP 필터 계층을 계층화한 구조로 이루어져 있습니다. L3/L4 필터 체인은 TCP 프록시, UDP 프록시, 원시 네트워크 처리 등을 플러그인 방식으로 지원하며, HTTP L7 필터 계층은 버퍼링, 속도 제한, 라우팅/포워딩 등의 고급 기능을 제공합니다. 이 구조는 HTTP/1.1과 HTTP/2 간의 투명한 양방향 프록시뿐만 아니라 gRPC 요청의 라우팅과 로드 밸런싱도 지원합니다.
런타임 동적 설정과 xDS API
Envoy는 컨트롤 플레인으로부터 동적 설정 API(xDS)를 통해 런타임 중에 설정을 업데이트합니다. 이는 클러스터 정의, 엔드포인트 정보, HTTP 라우팅 규칙, 리스닝 소켓, 인증서 등의 계층화된 업데이트를 지원하므로 배포 중단 없이 메시 전체의 동작을 재구성할 수 있습니다.
고급 로드 밸런싱과 복원력 기능
Envoy는 자체 프로세스로서 자동 재시도, 서킷 브레이킹, 글로벌 속도 제한, 요청 섀도잉, 아웃라이어 탐지 등의 고급 로드 밸런싱 기법을 구현합니다. 활성 건강 체크와 수동 건강 체크(아웃라이어 탐지)를 함께 지원하여 서비스 검색의 최종 일관성 모델을 보완하며, 이를 통해 신뢰할 수 있는 업스트림 대상 선택이 가능합니다.