Day 75 · 4/5
🌳 고급 인프라

서비스 메시가 뭔가요?

쉽게 이해하기

서비스 메시는 도시의 교통 관제 시스템과 같아요. 각 차량(마이크로서비스)이 어디로 가는지 추적하고, 길이 막히면 우회로를 안내하고, 사고가 나면 즉시 감지해요. 개별 운전자(개발자)는 운전만 하면 되고, 교통 흐름 관리는 관제 시스템이 알아서 해줘요.

핵심 정리

서비스 메시는 마이크로서비스 간 통신을 관리하고 모니터링하는 인프라 계층이에요.

자세히 알아보기

마이크로서비스 아키텍처에서는 수십~수백 개의 작은 서비스가 서로 통신해요. 문제는 이 통신을 관리하는 게 점점 복잡해진다는 거예요. 각 서비스가 다른 서비스를 호출할 때 재시도 로직, 타임아웃, 보안, 모니터링 등을 구현해야 하는데, 이걸 모든 서비스에 중복으로 넣으면 유지보수가 악몽이 돼요. 서비스 메시는 이런 통신 로직을 애플리케이션 코드에서 분리해서 인프라 레벨에서 처리해요. 가장 유명한 건 Istio와 Linkerd예요. 서비스 메시를 사용하면 각 서비스 옆에 프록시(사이드카)가 붙어서 모든 네트워크 트래픽을 가로채요. 이 프록시가 암호화, 인증, 로드밸런싱, 재시도, 서킷 브레이커 같은 기능을 자동으로 처리해줘요. 예를 들어 서비스 A가 서비스 B를 호출하면, 실제로는 A의 사이드카가 B의 사이드카와 통신해요. 중간에 사이드카가 mTLS로 암호화하고, 요청이 실패하면 자동으로 재시도하고, 응답 시간을 측정해서 모니터링 시스템에 보내요. 개발자는 코드에 이런 로직을 넣을 필요 없이, 비즈니스 로직만 작성하면 돼요. 서비스 메시의 또 다른 장점은 가시성이에요. 모든 서비스 간 통신을 추적할 수 있어서 어느 서비스가 느린지, 어디서 에러가 많이 나는지 한눈에 볼 수 있어요. Grafana나 Kiali 같은 도구로 시각화하면 복잡한 마이크로서비스 구조도 쉽게 이해할 수 있죠. 물론 서비스 메시는 복잡도와 오버헤드를 추가하니까, 마이크로서비스가 충분히 많을 때 도입하는 게 좋아요.