정보처리기사 기출 핵심 [53] 서비스 메시 Istio와 관찰 가능성 완전 정복

서비스 메시와 Istio란?

서비스 메시는 마이크로서비스 간 통신을 인프라 레벨에서 관리하는 전용 인프라 계층입니다. Istio는 가장 널리 사용되는 서비스 메시 구현체로, 정보처리기사에서 핵심 개념으로 출제됩니다.

Istio 아키텍처

데이터 플레인

  • Envoy Proxy: 각 Pod에 사이드카로 주입. 모든 인바운드·아웃바운드 트래픽 처리
  • xDS API: Envoy가 컨트롤 플레인으로부터 설정 수신. LDS·RDS·CDS·EDS
  • 사이드카 주입: namespace 레이블(istio-injection=enabled) 또는 Pod 어노테이션으로 자동 주입

컨트롤 플레인 (istiod)

  • Pilot: 서비스 디스커버리. Envoy에 라우팅 규칙 배포
  • Citadel: 인증서 관리. SPIFFE/SPIRE 기반 서비스 ID. mTLS 자동 설정
  • Galley: 설정 유효성 검증·배포

Istio 트래픽 관리

  • VirtualService: 요청 라우팅 규칙. 헤더·URI·가중치 기반 라우팅. 재시도·타임아웃·결함 주입
  • DestinationRule: 트래픽 정책. 로드밸런싱·연결 풀·Circuit Breaker·TLS 설정
  • Gateway: 메시 경계의 인바운드 트래픽 관리. ingress/egress gateway
  • ServiceEntry: 외부 서비스를 메시 레지스트리에 등록. 외부 API 트래픽 제어

Istio 보안

  • mTLS: 서비스 간 상호 인증·암호화. PeerAuthentication으로 STRICT/PERMISSIVE/DISABLE 설정
  • AuthorizationPolicy: L7 접근 제어. 네임스페이스·서비스어카운트·HTTP 메서드별 허용·거부
  • JWT 검증: RequestAuthentication으로 JWT 발급자·JWKS URI 설정. End-user 인증

관찰 가능성(Observability)

세 가지 기둥

  • 메트릭(Metrics): Prometheus로 수집. 요청 수·지연시간·오류율. Grafana 대시보드 시각화
  • 로그(Logs): Envoy 접근 로그. 구조화 JSON 형식. ELK Stack으로 집계
  • 트레이싱(Traces): 분산 추적. Jaeger·Zipkin. B3 Propagation 헤더로 Span 연결

분산 트레이싱 개념

  • Trace: 하나의 요청이 여러 서비스를 거치는 전체 경로
  • Span: Trace의 단위 작업. 시작시간·종료시간·태그·로그 포함
  • Context Propagation: B3 헤더(X-B3-TraceId, X-B3-SpanId, X-B3-Sampled)로 컨텍스트 전달
  • OpenTelemetry: 메트릭·로그·트레이싱 통합 표준. Collector·SDK·Exporter

시험 핵심 포인트

  • Envoy 사이드카: 애플리케이션 코드 수정 없이 트래픽 제어·관찰
  • mTLS STRICT: 평문 트래픽 거부, 서비스 간 모든 통신 암호화
  • VirtualService + DestinationRule: 카나리 배포·서킷브레이커 구현 조합
  • OpenTelemetry: 메트릭·로그·트레이스의 통합 계측 표준

마무리

서비스 메시는 애플리케이션 코드 변경 없이 서비스 간 통신에 보안·관찰 가능성·회복탄력성을 추가합니다. 다만 사이드카로 인한 오버헤드와 운영 복잡성을 고려해야 합니다.

Leave a Comment