[문제] 마이크로서비스 아키텍처가 확산되면서 서비스 간 통신 관리의 복잡성이 증가하고 있다. 다음을 설명하시오.
가. 서비스 메시(Service Mesh)의 개념과 등장 배경
나. 서비스 메시의 아키텍처 (Control Plane / Data Plane)
다. 서비스 메시의 주요 기능
라. Istio 기반 서비스 메시 구현과 도입 시 고려사항
가. 서비스 메시(Service Mesh)의 개념과 등장 배경
나. 서비스 메시의 아키텍처 (Control Plane / Data Plane)
다. 서비스 메시의 주요 기능
라. Istio 기반 서비스 메시 구현과 도입 시 고려사항
I. 개요
마이크로서비스 아키텍처(MSA)에서 수십~수백 개의 서비스가 상호 통신할 때, 재시도·타임아웃·암호화·트레이싱 로직을 서비스마다 개별 구현하면 코드 중복과 관리 복잡성이 폭발한다. 서비스 메시는 이 통신 관련 로직을 애플리케이션 코드에서 분리하여 인프라 레이어에서 투명하게 처리하는 아키텍처 패턴이다.
가. 서비스 메시 개념과 등장 배경
서비스 메시(Service Mesh)란 마이크로서비스 간의 통신을 처리하는 전용 인프라 레이어로, 경량 네트워크 프록시(Sidecar)를 각 서비스에 배치하여 서비스 디스커버리·트래픽 관리·보안·관측가능성을 코드 변경 없이 제공하는 아키텍처이다.
등장 배경
- MSA 폭발적 확산: Netflix, Uber 등에서 수천 개 마이크로서비스 운영 → 서비스 간 통신 문제가 운영의 핵심 이슈로 부상
- 공통 로직의 중복 구현: 재시도·회로 차단기·mTLS를 각 서비스 팀이 별도 구현 → 언어·프레임워크별 불일치
- 관측 가능성 확보 어려움: 분산 시스템에서 요청 흐름 추적·장애 원인 파악을 위한 표준화된 텔레메트리 필요
- Zero Trust 보안 요구: 서비스 간 통신에도 상호 TLS(mTLS) 인증·암호화 의무화
나. 서비스 메시 아키텍처
- Control Plane: 서비스 메시 전체를 조율하는 중앙 관리자. 정책 설정, 인증서 발급, 서비스 디스커버리 정보를 Data Plane 프록시에 배포
- Data Plane: 각 서비스 Pod에 사이드카(Envoy 프록시)를 붙여 실제 트래픽을 가로채 처리. 애플리케이션은 프록시 존재를 인식하지 못함 (투명한 개입)
- Sidecar 패턴: 모든 인바운드·아웃바운드 트래픽이 Envoy를 통과. 로드밸런싱·보안·트레이싱이 자동으로 적용됨
다. 서비스 메시의 주요 기능
| 기능 영역 | 세부 기능 | 상세 내용 |
|---|---|---|
| 트래픽 관리 | 로드밸런싱 | Round-robin, Least-connection, Consistent Hashing |
| 트래픽 분할 | 카나리 배포·A/B 테스트: 트래픽 비율로 버전 간 분배 (예: v1:90%, v2:10%) | |
| 회로 차단기 | 장애 서비스로의 요청 차단 → Fallback 응답으로 전파 방지 | |
| 보안 | mTLS | 서비스 간 상호 TLS 인증·암호화 자동 적용. 인증서 수명주기 자동 관리 |
| 인가 정책 | AuthorizationPolicy로 서비스 A → 서비스 B 통신 허용 여부를 선언적으로 관리 | |
| 관측가능성 | 분산 추적 | Jaeger·Zipkin 연동. 전체 요청 경로의 레이턴시·오류율 자동 추적 |
| 메트릭 | Prometheus 자동 수집. 서비스별 RPS·오류율·P99 레이턴시 모니터링 | |
| 액세스 로그 | 모든 서비스 간 호출 로그 자동 기록. 보안 감사 및 장애 원인 분석에 활용 |
라. Istio 기반 구현과 도입 고려사항
Istio는 Kubernetes 환경에서 가장 널리 사용되는 서비스 메시 구현체다. istiod가 Control Plane을 담당하고, 각 Pod에 Envoy 프록시가 자동 주입(auto-injection)된다.
- 성능 오버헤드: 사이드카 프록시가 모든 트래픽을 처리하므로 CPU·메모리 추가 사용. 레이턴시 약 1~3ms 증가 → 성능 임계값 서비스에서는 Ambient Mesh(사이드카 없는 모드) 검토
- 복잡도: Istio 설정 오류가 전체 서비스 통신 장애로 이어질 수 있음 → 운영자 전문 교육 필수
- 점진적 도입: 모든 서비스에 동시 적용하지 말고 비즈니스 중요도가 낮은 서비스부터 단계적 적용
- 대안 검토: Linkerd(경량, 성능), Consul Connect(HashiCorp 생태계), Cilium(eBPF 기반 사이드카리스)도 함께 비교 평가
✅ 핵심 암기 포인트
서비스 메시 = 사이드카 프록시(Envoy)로 통신 로직을 애플리케이션에서 분리
Control Plane: 정책 관리·인증서·서비스 디스커버리 | Data Plane: 실제 트래픽 처리
3대 기능: 트래픽 관리(카나리·회로차단기) · 보안(mTLS) · 관측가능성(분산추적)