🔗 Service Mesh 패턴
패턴 개요
Service Mesh는 마이크로서비스 간 통신을 전용 인프라 레이어로 추상화하여, 서비스 로직과 통신 로직을 분리하고 보안, 관찰 가능성, 복원력을 제공하는 아키텍처 패턴입니다.
중요도: ⭐⭐⭐ 2026년 표준
2026년 현재 Service Mesh는 10개 이상의 마이크로서비스를 운영하는 환경에서 표준 인프라로 자리 잡았습니다.
📑 목차
1. 핵심 개념
🎯 정의
Service Mesh는 마이크로서비스 간의 모든 네트워크 통신을 관리하는 전용 인프라 계층입니다.
핵심 특징:
- 통신 추상화: 애플리케이션 코드에서 통신 로직 분리
- Sidecar 패턴: 각 서비스에 프록시 컨테이너 배치
- 제어 플레인/데이터 플레인: 관리와 트래픽 처리 분리
- 透明性 (Transparency): 애플리케이션 무관한 통신 제어
📊 기본 아키텍처
┌─────────────────────────────────────────────────────────────┐
│ Control Plane │
│ (Service Discovery, Configuration, Policy) │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │
│ │ Pilot │ │ Citadel │ │ Galley │ │
│ │ (Config) │ │ (Security) │ │ (Traffic) │ │
│ └─────────────┘ └──────────────┘ └─────────────┘ │
└─────────────────┬───────────────────────────────────────────┘
│ Configuration
▼
┌─────────────────────────────────────────────────────────────┐
│ Data Plane │
│ (Actual Traffic) │
│ │
│ Service A ←→ Envoy ←→ Service B │
│ (Proxy) (Proxy) (Proxy) │
│ │
│ Service C ←→ Envoy ←→ Service D │
│ (Proxy) (Proxy) (Proxy) │
└─────────────────────────────────────────────────────────────┘
동작 방식:
- Control Plane: 전체 메시의 설정과 정책 관리
- Data Plane: 실제 트래픽을 처리하는 프록시 (Envoy 등)
- 애플리케이션: 프록시를 통해 통신, 메시 존재 인지 불필요
2. 문제와 해결
🚨 해결하려는 문제
문제 1: 복잡한 서비스 통신 관리
전통적인 방식:
Service A ──┐
├── TCP/TLS 직접 구현
Service B ──┤
├── mTLS 설정 복잡
Service C ──┤
└── Circuit Breaker, Retry 직접 구현
문제점:
- 각 서비스마다 통신 로직 중복 구현
- 언어별 라이브러리 호환성 문제
- 보안 정책 일관성 유지 어려움
문제 2: 운영 복잡도
- 가시성 부족: 서비스 간 통신 상태 추적 어려움
- 장애 진단: 어느 서비스에서 문제 발생했는지 파악 곤란
- 성능 최적화: 개별 서비스 최적화의 한계
문제 3: 보안 및 정책 관리
- mTLS (mutual TLS) 설정 각 서비스별로 필요
- 접근 제어 정책 분산
- 컴플라이언스 요구사항 충족 어려움
✅ Service Mesh의 해결 방법
해결 1: 통신 중앙화
Service A ──┐
├── Envoy Proxy (자동 TLS)
Service B ──┤
├── Envoy Proxy (자동 Retry)
Service C ──┤
└── Envoy Proxy (자동 Circuit Breaker)
- 모든 통신 로직을 프록시로 이관
- 애플리케이션은 비즈니스 로직에만 집중
- 언어 독립적인 통신 관리
해결 2: 완전한 가시성
- 분산 트레이싱: Jaeger, Zipkin으로 전체 요청 경로 추적
- 메트릭 수집: Prometheus로 통신 성능, 에러율 모니터링
- 로깅: 모든 통신 로그 중앙 수집
해결 3: 선언적 정책 관리
- mTLS 자동화: 인증서 자동 발급, 갱신, 분배
- 접근 제어: YAML/JSON으로 정책 선언적 정의
- 규제 준수: 자동으로 보안 표준 준수
3. 아키텍처 구조
📐 전체 아키텍처
┌─────────────────────────────────────────────────────────────┐
│ Service Mesh │
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Control Plane │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │Pilot │ │Citadel │ │Galley │ │ │
│ │ │(Config) │ │(Security)│ │(Traffic) │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────────────────┘ │
│ │ │
│ Configuration/Policy │
│ ▼ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Data Plane │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │Service A│ │Service B│ │Service C│ │ │
│ │ │ │ │ │ │ │ │
│ │ ┌─────┐ │ │ ┌─────┐ │ │ ┌─────┐ │ │ │
│ │ │Envoy│ │ │ │Envoy│ │ │ │Envoy│ │ │ │
│ │ │Proxy│ │ │ │Proxy│ │ │ │Proxy│ │ │ │
│ │ └─────┘ │ │ └─────┘ │ │ └─────┘ │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
🔄 트래픽 플로우 예시
서비스 A에서 서비스 B로 요청:
1. Service A 애플리케이션
↓ localhost:8080 (프록시로 요청)
2. Envoy Proxy (Service A Sidecar)
├── mTLS 확인 (Service C와 인증)
├── 라우팅 규칙 확인
├── Circuit Breaker 확인
├── Retry 정책 확인
└── Service B로 전송
3. Envoy Proxy (Service B Sidecar)
├── mTLS 확인 (Service A 인증)
├── 접근 제어 확인
├── 로깅/메트릭 수집
└── Service B 애플리케이션으로 전달
4. Service B 애플리케이션
← 비즈니스 로직 처리
4. 핵심 구성 요소
1️⃣ Control Plane (제어 플레인)
역할: 전체 메시의 설정, 정책, 관리를 담당
주요 컴포넌트 (Istio 기준):
Pilot
- 역할: 서비스 디스커버리 및 트래픽 관리
- 기능:
- Kubernetes API로 서비스, 엔드포인트, 파드 정보 수집
- Envoy 프록시 설정 동적 갱신
- 트래픽 라우팅 규칙 배포
# VirtualService 예시 (Pilot이 Envoy에 배포)
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: jason
fault:
delay:
percentage:
value: 100
fixedDelay: 7s
route:
- destination:
host: reviews
subset: v2
- route:
- destination:
host: reviews
subset: v1Citadel
- 역할: 보안 및 ID 관리
- 기능:
- mTLS 인증서 자동 발급
- 인증서 로테이션 및 갱신
- 서비스 간 상호 인증
Galley
- 역할: 설정 검증 및 배포
- 기능:
- 설정 유효성 검증
- Kubernetes CRD (Custom Resource) 관리
- 설정 변경 감지 및 전파
2️⃣ Data Plane (데이터 플레인)
역할: 실제 트래픽을 처리하는 프록시 계층
Envoy Proxy
- 역할: 고성능 프록시로 모든 통신 처리
- 핵심 기능:
- HTTP/2, gRPC, TCP 프로토콜 지원
- 동적 설정: Pilot 설정 실시시 적용
- 보안: mTLS, JWT 검증
- 복원력: Circuit Breaker, Retry, Timeout
- 관찰: 메트릭, 분산 트레이싱
Envoy 필터 체인:
Request → Network Filter → HTTP Filter → Router Filter
↓
- TLS termination
- RBAC check
- Rate limiting
- Routing decision
↓
Response → Upstream → Downstream
3️⃣ Sidecar 패턴
역할: 각 서비스에 프록시를 동반 컨테이너로 배치
구조:
# Kubernetes Pod 예시
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: myapp
image: myapp:1.0
ports:
- containerPort: 8080
- name: istio-proxy
image: istio/proxyv2:1.0
ports:
- containerPort: 15090 # Prometheus metrics
- containerPort: 15000 # Envoy admin
- containerPort: 15001 # Inbound
- containerPort: 15006 # Outbound장점:
- 애플리케이션 코드 수정 불필요
- 언어/프레임워크 독립적
- 자동 인젝션으로 배포 간편
5. 주요 기능들
1️⃣ 트래픽 관리 (Traffic Management)
라우팅 및 부하 분산
# 90% v1, 10% v2 트래픽 분배 (Canary 배포)
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v1
weight: 90
- destination:
host: reviews
subset: v2
weight: 10요청 미러링 (Mirroring)
# 테스트 환경으로 트래픽 복사
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: httpbin
spec:
hosts:
- httpbin
http:
- mirror:
host: httpbin
subset: v2
route:
- destination:
host: httpbin
subset: v1장애 주입 (Fault Injection)
# 50% 요청에 5초 지연 주입 (테스트용)
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: ratings
spec:
hosts:
- ratings
http:
- fault:
delay:
percentage:
value: 50
fixedDelay: 5s
route:
- destination:
host: ratings
subset: v12️⃣ 보안 (Security)
mTLS 자동화
# PeerAuthentication - 서비스 간 mTLS 강제
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: default
spec:
mtls:
mode: STRICT # 모든 트래픽에 mTLS 요구JWT 검증
# RequestAuthentication - JWT 검증
apiVersion: security.istio.io/v1beta1
kind: RequestAuthentication
metadata:
name: jwt-example
spec:
selector:
matchLabels:
app: httpbin
jwtRules:
- issuer: "https://example.com"
jwksUri: "https://example.com/.well-known/jwks.json"접근 제어 (Authorization)
# AuthorizationPolicy - 접근 제어
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: allow-viewer
spec:
selector:
matchLabels:
app: productpage
rules:
- from:
- source:
principals: ["cluster.local/ns/default/sa/bookinfo-productpage"]
- to:
- operation:
methods: ["GET"]3️⃣ 관찰 가능성 (Observability)
분산 트레이싱
# Jaeger 트레이싱 활성화
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-control-plane
spec:
values:
tracing:
sampling: 100 # 100% 트레이싱
jaeger: # Jaeger 사용
endpoint: http://jaeger-collector:14268/api/traces메트릭 수집
# Prometheus 메트릭 활성화
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-control-plane
spec:
values:
telemetry:
v2:
enabled: true
prometheus:
enabled: true로깅
- Envoy Access Logs: 모든 요청/응답 상세 기록
- istio-agent: 로그 수집 및 전송
- 통합: ELK Stack, Splunk와 연동
4️⃣ 복원력 (Resilience)
Circuit Breaker
# DestinationRule - Circuit Breaker 설정
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: httpbin
spec:
host: httpbin
trafficPolicy:
connectionPool:
tcp:
maxConnections: 100
http:
http1MaxPendingRequests: 50
maxRequestsPerConnection: 10
outlierDetection:
consecutive5xxErrors: 3 # 3번 연속 5xx 에러 시
interval: 30s
baseEjectionTime: 30s
maxEjectionPercent: 100Retry & Timeout
# VirtualService - Retry & Timeout 설정
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: httpbin
spec:
hosts:
- httpbin
http:
- retries: 3
perTryTimeout: 2s
timeout: 10s
route:
- destination:
host: httpbin6. 실제 구현
🛠️ 기술 스택
주요 Service Mesh 제품:
| 제품 | 특징 | 사용 사례 | 난이도 |
|---|---|---|---|
| Istio | 기능 풍부, CNCF 표준 | 대규모 엔터프라이즈 | 중급 |
| Linkerd | 경량화, Rust 기반 | 중소규모, 성능 중시 | 초급 |
| Consul Connect | HashiCorp 생태계 | Consul 기반 인프라 | 중급 |
| AWS App Mesh | AWS 네이티브 | AWS 환경 | 중급 |
| Kuma/Kong Mesh | 유니버셜, 다중 클라우드 | 멀티클라우드 | 중급 |
💻 Istio 설치 및 설정 예시
1. Istio 설치
# Istio CLI 다운로드
curl -L https://istio.io/downloadIstio | sh -
cd istio-1.19.0
# 환경 변수 설정
export PATH=$PWD/bin:$PATH
# Kubernetes 클러스터에 설치
istioctl install --set profile=default -y
# 자동 사이카 인젝션 활성화
kubectl label namespace default istio-injection=enabled2. 샘플 애플리케이션 배포
# productpage.yaml
apiVersion: v1
kind: Service
metadata:
name: productpage
labels:
app: productpage
spec:
ports:
- port: 9080
name: http
selector:
app: productpage
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: productpage
spec:
replicas: 1
selector:
matchLabels:
app: productpage
template:
metadata:
labels:
app: productpage
spec:
containers:
- name: productpage
image: istio/examples-bookinfo-productpage-v1:1.16.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080# 배포 및 확인
kubectl apply -f productpage.yaml
kubectl get pods -l app=productpage
# 자동 주입된 sidecar 확인
kubectl describe pod <pod-name> | grep istio-proxy3. 트래픽 관리 설정
# reviews-virtual-service.yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: jason
route:
- destination:
host: reviews
subset: v2
- route:
- destination:
host: reviews
subset: v1
---
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
trafficPolicy:
loadBalancer:
simple: LEAST_CONN
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v24. 모니터링 설정
# kiali.yaml - Kiali 대시보드
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-control-plane
spec:
values:
kiali:
enabled: true
---
# jaeger.yaml - Jaeger 트레이싱
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-control-plane
spec:
values:
tracing:
enabled: true
jaeger: # Jaeger 사용
endpoint: http://jaeger-collector:14268/api/traces5. 접근 및 확인
# Kiali 대시보드 접속
istioctl dashboard kiali
# Jaeger 트레이싱 접속
istioctl dashboard jaeger
# Envoy 프록시 설정 확인
kubectl exec -it <pod-name> -c istio-proxy -- curl localhost:15000/config_dump
# 메트릭 확인
kubectl exec -it <pod-name> -c istio-proxy -- curl localhost:15090/stats/prometheus🚀 Linkerd 설치 예시 (경량화 대안)
1. Linkerd 설치
# Linkerd CLI 설치
curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh
# 검증
linkerd check
# Kubernetes에 설치
linkerd install | kubectl apply -f -
# 네임스페이스에 자동 인젝션
kubectl annotate namespace default linkerd.io/inject=enabled2. 애플리케이션 배포
# 기존 배포에 Linkerd 주입
kubectl get deploy -o yaml | linkerd inject - | kubectl apply -f -
# 대시보드 접속
linkerd viz dashboardLinkerd 장점:
- 경량화: Istio 대비 50% 이하 리소스 사용
- 설치 간편: 단일 명령어 설치
- 성능: Rust 기반으로 높은 성능
- 단순성: 적은 기능으로 학습 곡선 완만
7. 장단점
✅ 장점
-
통신 로직 분리
- 애플리케이션은 비즈니스 로직에만 집중
- 언어/프레임워크 독립적인 통신 관리
- 개발 생산성 향상
-
완전한 가시성
- 분산 트레이싱으로 전체 요청 경로 추적
- 실시간 메트릭 및 로그 수집
- 빠른 장애 감지 및 진단
-
강력한 보안
- mTLS 자동화로 서비스 간 암호화
- 선언적 접근 제어 정책
- 자동 인증서 관리
-
고급 복원력
- Circuit Breaker, Retry 자동 적용
- Traffic Splitting으로 안전한 배포
- Fault Injection으로 안정성 테스트
-
운영 효율성
- 중앙화된 정책 관리
- 선언적 설정으로 일관성 유지
- 자동화된 운영 기능
❌ 단점
-
복잡도 증가
- 새로운 추상화 계층 학습 필요
- Control Plane/Data Plane 개념 이해
- 트러블슈팅 복잡성 증가
-
리소스 오버헤드
- 각 파드에 Sidecar 프록시 추가
- 메모리 사용량 증가 (약 100-200MB/파드)
- 네트워크 레이턴시 증가
-
성능 영향
- 추가 네트워크 홉 (Sidecar 경유)
- CPU 사용량 증가
- 마이크로초(ms) 단위 레이턴시 민감 시스템에 부적합
-
운영 부담
- Control Plane 고가용성 운영 필요
- 설정 복잡성 증가
- 모니터링 대상 확장
-
벤더 종속성
- 특정 벤더 Lock-in 가능성
- 마이그레이션 비용
- 표준화 진행 중이지만 아직 미완성
8. 사용 시기
✅ 적합한 경우
-
대규모 마이크로서비스 (10개 이상)
- 서비스 간 통신 복잡도 증가
- 중앙화된 통신 관리 필요
- 운영 자동화 효과 극대화
-
높은 보안 요구사항
- mTLS 필수 (금융, 헬스케어)
- 접근 제어 정책 복잡
- 컴플라이언스 요구사항
-
실시간 모니터링 필요
- 분산 트레이싱 필수
- 성능 메트릭 실시간 수집
- 빠른 장애 감지 및 복구
-
다중 언어/프레임워크 환경
- 통신 라이브러리 표준화 필요
- 언어 독립적 통신 관리
- 개발팀별 기술 스택 다양
-
Canary/Blue-Green 배포 자동화
- 트래픽 기반 점진적 배포
- A/B 테스트 자동화
- 롤백 자동화 필요
❌ 부적합한 경우
-
소규모 마이크로서비스 (3-5개 미만)
- Service Mesh 오버헤드 > 이점
- 간단한 설정으로 충분
- 운영 복잡도 증가
-
성능 극도로 중요한 시스템
- 마이크로초(ms) 단위 레이턴시 민감
- 추가 네트워크 홉 불가
- High-Frequency Trading, 게임 서버
-
단일 언어/프레임워크
- 통신 라이브러리 표준화 용이
- Service Mesh 필요성 낮음
- 기존 방식으로 충분
-
제한된 인프라 리소스
- Sidecar 프록시로 리소스 부족
- 에지 디바이스, IoT 환경
- 비용 제약 엄격한 환경
9. 2026년 표준 스택
🏆 추천 구성
┌─────────────────────────────────────────────────────────────┐
│ Load Balancer │
│ (AWS ALB, GCP LB) │
└─────────────────────┬─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Ingress Gateway │
│ (Istio Gateway) │
└─────────────────────┬─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Service Mesh Cluster │
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Control Plane │ │
│ │ Istiod (Pilot, Citadel, Galley) │ │
│ └─────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Data Plane │ │
│ │ │ │
│ │ Service A ←→ Envoy ←→ Service B │ │
│ │ (Proxy) (Proxy) │ │
│ │ │ │
│ │ Service C ←→ Envoy ←→ Service D │ │
│ │ (Proxy) (Proxy) │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Observability Stack │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Kiali │ │Jaeger │ │Prometheus│ │
│ │(Topology)│ │(Tracing)│ │(Metrics) │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Grafana │ │ELK Stack│ │Alertmgr │ │
│ │(Dashboard)│ │(Logging)│ │(Alerts) │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
📦 주요 도구
1. Service Mesh 제품
Istio (표준 선택)
- 버전: 1.19+ (2026년 안정 버전)
- 환경: Kubernetes, EKS, GKE, AKS
- 특징: 기능 풍부, CNCF 표준
Linkerd (경량화 선택)
- 버전: 2.14+ (Edge 버전)
- 환경: Kubernetes, 간단한 설치
- 특징: Rust 기반, 높은 성능
2. 관찰 가능성 스택
Kiali
- 메시 토폴로지 시각화
- 트래픽 흐름 분석
- 설정 유효성 검증
Jaeger
- OpenTelemetry 표준 분산 트레이싱
- 성능 병목 분석
- 서비스 디펜던시 맵
Prometheus + Grafana
- 메트릭 수집 및 시각화
- SLA 모니터링
- 자동 알림 설정
3. 보안
Citadel (Istio)
- 자동 mTLS 인증서 관리
- SPIFFE/SPIRE 표준
- 인증서 로테이션
External CA
- 기업 PKI 통합
- HSM (Hardware Security Module) 지원
🚀 2026년 트렌드
-
Ambient Mesh (Sidecar-less)
- Istio 1.18+ 도입
- Sidecar 없는 경량화 모드
- 에지 디바이스, 리소스 제한 환경
-
eBPF 기반 Service Mesh
- Cilium, Calico Enterprise
- 커널 레벨 트래픽 처리
- 극도로 낮은 오버헤드
-
멀티 클라우드 지원
- Kuma/Kong Mesh
- Consul Connect
- 하이브리드 클라우드 환경
-
AI/ML 기반 최적화
- 트래픽 패턴 학습
- 자동 라우팅 최적화
- 이상 탐지 및 자동 복구
10. 실전 사례
🏢 실제 기업 사례
Airbnb
규모:
- 수천 개의 마이크로서비스
- 수백 개의 Kubernetes 클러스터
- 전 세계 여러 리전 배포
아키텍처:
External Traffic
↓
AWS ALB
↓
Istio Ingress Gateway
↓
Service Mesh (Istio)
├─ Search Service
├─ Booking Service
├─ Payment Service
└─ Notification Service
성과:
- mTLS 적용으로 보안 사고 70% 감소
- 분산 트레이싱으로 장애 진단 시간 60% 단축
- Canary 배포로 다운타임 90% 감소
Goldman Sachs
사용 사례:
- 금융권 엄격한 보안 요구사항
- 실시간 거래 처리 시스템
Service Mesh 구성:
Trading Platform
↓ Istio Service Mesh
├─ Order Matching Service
├─ Risk Management Service
├─ Market Data Service
└─ Compliance Service
특징:
- 완전한 mTLS 암호화
- 제로 트러스트 아키텍처
- 실시간 감사 추적
Spotify
특징:
- 음악 스트리밍 플랫폼
- 높은 트래픽 볼륨
- 다양한 클라이언트 지원
Service Mesh 활용:
- 스트리밍 품질 최적화
- 글로벌 트래픽 라우팅
- A/B 테스트 자동화
📊 성능 데이터
Service Mesh 도입 전후 비교:
| 메트릭 | 도입 전 | 도입 후 | 개선율 |
|---|---|---|---|
| 보안 설정 시간 | 2주/서비스 | 1일/전체 | 93% ↓ |
| 장애 감지 시간 | 15분 | 2분 | 87% ↓ |
| 배포 실패율 | 8% | 1% | 87% ↓ |
| 통신 오버헤드 | 0ms | 2-5ms | +2-5ms |
| 메모리 사용량 | 200MB/파드 | 350MB/파드 | +75% |
📚 참고 자료
🔗 관련 패턴
- Sidecar 패턴 - Service Mesh의 기반 패턴
- API Gateway 패턴 - 외부 통신 관리
- Circuit Breaker 패턴 - 장애 격리
- Retry & Timeout 패턴 - 재시도 전략
📖 추가 학습 자료
- Istio Documentation
- Linkerd Documentation
- Service Mesh Performance - CNCF
- Building Service Mesh - O’Reilly
상위 문서: 통신 패턴 폴더 마지막 업데이트: 2026-01-05 다음 학습: Database per Service 패턴