Istio란 무엇인가 — 서비스 메시의 시작

Istio란 무엇인가 — 서비스 메시의 시작

Istio는 기존 분산 애플리케이션 위에 투명하게 얹히는 오픈소스 서비스 메시예요. 서비스 코드를 거의 바꾸지 않고도 로드밸런싱, 서비스 간 인증, 모니터링 같은 기능을 통일된 방식으로 제공해 주죠. 마이크로서비스가 늘어날수록 터지는 "어떻게 안전하게 연결하고 지켜볼까"라는 문제를 인프라 계층에서 풀어주는 도구라고 생각하시면 돼요.

출처: What is Istio? — Istio 공식 문서

Istio가 주는 것

Istio는 클러스터 안에서 다음을 한 번에 챙겨줘요.

  • 보안 통신: 상호 TLS(mTLS) 암호화와 강력한 ID 기반 인증·인가로 서비스 간 통신을 안전하게 만들어요.
  • 자동 로드밸런싱: HTTP, gRPC, WebSocket, TCP 트래픽을 자동으로 분산해요.
  • 세밀한 트래픽 제어: 풍부한 라우팅 규칙, 리트라이, 페일오버, 폴트 주입으로 트래픽 동작을 정밀하게 조정할 수 있어요.
  • 플러그형 정책 계층: 접근 제어, 레이트 리밋, 쿼터를 지원하는 설정 API를 제공해요.
  • 자동 텔레메트리: 클러스터 안의 모든 트래픽(인그레스·이그레스 포함)에 대해 메트릭, 로그, 트레이스를 자동 생성해요.

어떻게 동작하나

Istio는 프록시로 모든 네트워크 트래픽을 가로채서, 설정해 둔 대로 애플리케이션을 인식하는 다양한 동작을 펼쳐요.

  • 컨트롤 플레인이 원하는 설정과 서비스에 대한 뷰를 받아 프록시 서버를 동적으로 프로그래밍해요. 규칙이나 환경이 바뀌면 프록시도 함께 갱신되죠.
  • 데이터 플레인은 서비스 사이의 실제 통신이에요. 서비스 메시가 없다면 네트워크는 지나가는 트래픽이 어떤 종류인지, 누가 누구에게 보내는 건지 이해하지 못해요.

Istio는 두 가지 데이터 플레인 모드를 지원해요.

  • 사이드카 모드: 클러스터에서 시작하는 각 파드 옆에 Envoy 프록시를 함께 배포해요. VM에서 도는 서비스 옆에도 붙일 수 있어요.
  • 앰비언트 모드(ambient mode): 노드마다 L4 프록시를 두고, L7 기능은 네임스페이스마다 선택적으로 Envoy 프록시를 사용해요.

컨트롤 플레인은 쿠버네티스 위에서 돌고, 같은 클러스터의 앱뿐 아니라 다른 클러스터나 쿠버네티스 밖의 VM·엔드포인트까지 메시로 묶을 수 있어요. 에코시스템이 넓어서 직접 설치할 수도 있고, 상용 제품의 관리형 Istio를 쓸 수도 있죠.

더 알아보기 (Learn more)