대시보드 없는 자동차
지금 운전하는 자동차에 대시보드의 속도 계시판과 각종 계기 정보 없이 운전을 해야 한다고 상상해 보세요. 현재 속도는 물론, 휘발유가 얼마나 남았는지, 엔진은 과열되어 있는지 알수 없는 상황입니다. 물론 운전은 가능하지만, 많은 부분 감으로 운전을 해야하는 위험을 감수해야 합니다. 아마도 길 한가운데 휘발유가 떨어지거나, 엔진 과열로 차가 퍼져서 멈춰선 채 차량 서비스를 기달리게 될지도 모릅니다.
쿠버네티스, 대시보드가 없는 엔진
이런 상황을 현대화된 마이크로서비스 애플리케이션과 비교해 보면, 유사한 점을 발견할 수 있습니다. 쿠버네티스를 강력한 자동차 엔진이라고 가정합니다. 쿠버네티스의 엔진으로서의 성능은 다른 설명이 필요 없을만큼 강력합니다. 그러나 실제 내부에서 일어나는 일을 확인하려면 애플리케이션을 멈춘 뒤 직접 끝도없는 로그를 살펴보아야 합니다. 대시보드 없이 운영되는 쿠버네티스 시스템에서는 중요한 고객 정보가 유출되고 있을 수도 있고, 마이크로서비스에 필요한 자원이 갑자기 부족하거나, 트래픽을 리다이렉트 해주는 자동화가 부재할 수도 있습니다.
모니터링 헬: 로그 vs. 대시보드
서비스 메시가 없다면 쿠버네티스 환경을 모니터링하는 것은 눈을 가린채 미궁 속을 헤매는 것과 비슷합니다. 바로 끝도 없는 로그를 들여다보면서 잘못된 부분을 찾아내야 합니다. 이는 시간 소모적이고 실수가 발생하기 쉬우며, 엔지니어 입장에서 참 재미없는 일입니다. 아래는 가장 전형적인 쿠버네티스의 로그 화면입니다.
이와 대조적인 스크린 샷을 보여드리겠습니다. 한눈에 알아보기 쉽게 잘 정리된 Grafana 대시보드의 Istio 정보입니다. Istio를 사용하면 실시간 메트릭을 직관적이고 읽기 쉬운 형식으로 시각화할 수 있습니다.
Istio의 Grafana 대시보드를 통해 운영중인 마이크로스비스를 실시간으로 모니터링하고 성능 메트릭을 추적하고 이슈가 확장되기 전에 재빠르게 발견할 수 있습니다. 애플리케이션에 최첨단 통제 센터를 두고 모든 것이 안정적이고 효율적으로 운영할 수 있는 기반을 마련하는 것입니다.
성능 이슈 해결하기: Istio Ambient 모드
Istio가 2017년 처음 패턴을 소개한 시점부터 서비스 메시 기능은 사이드카를 이용해왔습니다. 사이드카는 프록시 서버로 쿠버네티스 클러스터 내의 모든 포드(Pod)에 배포됩니다. 이런 방식은 자원의 활용과 운영 비용이 증가하는 대가가 따릅니다. 또, 프록시 서버를 운영하기 위해 Istio의 인프라가 Pod의 인프라와 혼재될 수 밖에 없습니다. 이로 인해 클러스터 내의 모든 포드를 중단하해야만 업그레이드나 배포가 가능하다는 단점이 있습니다.
Istio Ambient 모드는 이런 문제들을 해결합니다. 바로 서비스 메시 인프라를 컨테이너와 클러스터의 밖으로 옮김으로써 서비스 메시가 진정으로 ambient (감싸게)하게 됩니다. Istio Ambient 모드는 모든 마이크로서비스마다 Istio 사이드카 프록시를 설정하는 대신 단일의, 경량 컨트롤러를 사용하여 전체 시스템을 효율적으로 관리, 보안 및 모니터링 합니다.
Istio Ambient 모드 장점
- 리소스 효율성: 사이드카 프록시 없이 서비스 메시 기능을 제공하여 리소스 사용량과 비용을 크게 줄입니다.
- 운영 간소화: 워크로드를 변경하거나 재시작하지 않고도 메시에 추가할 수 있어 운영이 간편해집니다.
- 유연한 보안: mTLS를 통한 투명한 제로 트러스트 보안을 제공하며, 인증 및 권한 부여 정책을 쉽게 적용할 수 있습니다.
- 향상된 관찰 가능성: 마이크로서비스 간 통신을 더 쉽게 모니터링하고 분석할 수 있습니다.
- 트래픽 관리 개선: 서비스 간 트래픽을 더 효과적으로 제어하고 관리할 수 있습니다.
- 마이크로서비스 확장성: 인프라 변경 없이 새로운 서비스를 쉽게 추가하고 메시에 통합할 수 있습니다
Istio는 단순한 모니터링 툴이 아닙니다. 운영중인 마이크로서비스 아키텍처에 핵심 기능을 더해주는 매우 포괄적인 솔루션입니다. Istio를 사용함으로써 강력한 암호화를 데이터 전송에 적용할 수 있고 민감한 정보가 각종 유출 등의 위협으로부터 보호 받을 수 있습니다. 또, Istio는 인텔리전트 트래픽 관리를 제공하며 마이크로서비스간의 트래픽을 효과적으로 라우팅, 발란스, 관리 할 수 있습니다. 이는 애플리케이션이 안정적으로 트래픽의 증감을 유연하게 대응할 수 있게 보장하고 사용자가 유연하고 끊김없는 경험을 지속할 수 있도록 보장합니다.
서비스 메시의 도입은 운영을 더 유연하면서 강화된 보안과 인텔리전트하게 관리할 수 있도록 지원합니다. 비즈니스의 요구사항에 맞춰 적절한 시점에 도입을 고려해 볼 필요가 있습니다.
원문출처: Recipe for Disaster: Kubernetes Without a Service Mesh
참고링크:
Service Mesh Without Sidecars: How Solo.io is Driving the Ambient Revolution
Load Testing Istio Ingress Guided by Grafana
[OSC Korea x Solo.io] 'The Future of Service Mesh'