서비스 메쉬에 대해 알아보자

이eun·2025년 1월 20일

서비스 메쉬(Service Mesh)란?

서비스 메쉬는 마이크로서비스 아키텍쳐에서 서비스 간 통신을 관리하는 인프라 계층이다.
이는 주로 데이터 플레인과 컨트롤 플레인으로 구성되어 있으며, 서비스 간의 트래픽 관리, 보안, 모니터링을 제공한다.

역할

  1. 서비스 간 통신 관리
  • 서비스 A와 서비스 B가 서로 통신할 때, 서비스 메쉬는 이들간의 트래픽을 제어하고 최적화한다.
  1. 보안강화
  • 서비스 간의 TLS(Transport Layer Security) 암호화 및 인증을 자동화
  1. 트래픽 제어
  • 서비스 요청을 라우팅, 로드 밸런싱, 실패 복구(Resilience) 처리
  1. 가시성 및 모니터링
  • 각 서비스의 통신 상태를 모니터링하고 장애가 발생하면 원인을 분석
  1. 정책 적용
  • 접근 제어, QoS 정책 등을 서비스 수준에서 일관되게 적용

서비스 메쉬가 필요한 이유

  1. 마이크로서비스의 복잡성 관리
  • 마이크로서비스 아키텍쳐에서 서비스의 수가 증가하면 통신, 인증, 로깅, 모니터링 관리가 복잡해진다.
  • 서비스 메쉬는 이를 단순화하고 중앙에서 제어한다.
  1. 개발자와 운영자 간 역할 분리
  • 개발자는 애플리케이션 코드에 비즈니스 로직에만 집중할 수 있고, 네트워크 관리, 보안 등의 복잡한 작업은 서비스 메쉬가 담당한다.
  1. 표준화된 통신 패턴
  • 서비스 메쉬를 사용하면 서비스 간 통신, 보안 로깅, 모니터링이 일관된 방식으로 수행한다.

구성 요소

  1. 데이터 플레인(Data Plane)
  • 서비스 간 트래픽을 실제로 처리하는 레이어
  • 각 서비스 인스턴스 옆에 프록시가 배치되어 트래픽을 제어
  • 예) Envoy, Linkerd
  1. 컨트롤 플레인 (Control Plane)
  • 데이터 플레인을 관리하고 정책을 전달하는 레이어
  • 네트워크 정책, 트래픽 라우팅 규칙, 보안 설정 등을 중앙에서 제어
  • 예) Istio, Consul, Kuma

주요 기능

  1. 트래픽 관리
  • 라우팅, 로드밸런싱, 요청 재시도, 지연(back off) 처리
  • 예) 요청이 실패하면 자동으로 다른 인스턴스로 재시도.
  1. 보안
  • 서비스간 mTLS를 통해 데이터 암호화 및 인증
  1. 관찰성
  • 서비스 간 요청의 추적, 메트릭 수집, 로깅
  • 장애나 성능 문제를 빠르게 진단
  1. 정책 관리
  • 접근 제어, 트래픽 분리, QoS 정책 등을 설정
  1. 서비스 탄력성(Resilience)
  • 서킷 브레이커, 지연 및 제한 처리 제공

대표 도구

  1. Istio
  • 가장 널리 사용되는 서비스 메쉬 도구
  • Envoy 프록시를 데이터 플레인으로 사용
  1. Linkerd
  • 경량 서비스 메쉬로 간단한 설정과 빠른 성능을 제공
  1. Consul
  • HashiCorp의 서비스 메쉬 솔루션으로 서비스 등록/발견과 메쉬 기능 제공
  1. Kuma
  • CNCF프로젝트로, 여러 플랫폼에서 사용할 수 있는 서비스 메쉬
  1. AWS App Mesh
  • AWS 클라우드 환경에 최적화된 서비스 메쉬

0개의 댓글