최신 애플리케이션 구축을 위한 8명의 최고의 서비스 메시 관리자

마이크로서비스 아키텍처 환경에서는 애플리케이션이 여러 개의 작은 서비스들로 구성되며, 이 서비스들은 상호 작용을 통해 시스템 전체를 작동시킵니다.

마이크로서비스 간의 직접적인 통신은 비효율적이고 오류가 발생하기 쉽습니다. 이러한 문제를 해결하는 데 서비스 메쉬가 중요한 역할을 합니다.

서비스 메쉬란 무엇인가?

서비스 메쉬는 애플리케이션 내의 마이크로서비스 간 데이터 교환을 관리하는 방법을 나타내는 용어입니다. 특히, 마이크로서비스 간의 원활한 통신을 가능하게 하는 소프트웨어 시스템을 의미합니다.

  • 애플리케이션 식별
  • 로드 밸런싱
  • 인증
  • 암호화

상호 연결된 마이크로서비스 네트워크는 프록시를 통해 실행되는 병렬 연결을 통해 구축됩니다. 이러한 연결망은 상위 수준의 데이터 센터 네트워킹 관리 시스템과 통합되어 애플리케이션이 발전하는 과정에서 다운타임 없이 효율적인 통신을 가능하게 합니다. 각 애플리케이션 서비스는 사용자의 요구를 충족시키기 위해 다른 서비스에 의존합니다.

예를 들어, 온라인 쇼핑 애플리케이션에서 사용자는 구매 전에 상품 재고 여부를 확인해야 합니다. 이를 위해서는 데이터베이스와 관련된 서비스와 제품 웹 페이지 간의 통신이 필요합니다. 이후에는 사용자 온라인 장바구니와 연결되어야 합니다.

또한, 판매자는 애플리케이션에 제품 추천 서비스를 추가하여 사용자의 쇼핑 경험을 개선할 수 있습니다. 이 서비스는 추천을 생성하기 위해 제품 태그 데이터베이스 및 재고 데이터베이스와 통신해야 하며, 제품 페이지와도 상호 작용해야 합니다. 이러한 과정은 여러 서비스가 함께 작동하는 모범적인 사례입니다.

최신 애플리케이션들은 일반적으로 특정 비즈니스 기능을 수행하는 여러 서비스들로 구성된 네트워크 형태를 띠고 있습니다.

서비스 메쉬는 어떻게 작동하며, 어떤 장점이 있는가?

서비스 메쉬는 애플리케이션의 기존 기능 외에 새로운 기능을 추가하지 않습니다. 서비스 메쉬는 네트워크 프록시 그룹의 형태로, 기업 컴퓨팅 환경에서 익숙한 개념입니다.

직장 컴퓨터에서 웹 페이지를 방문할 때마다 프록시를 사용하는 것과 유사합니다. 마이크로서비스의 인프라 계층에 위치한 프록시는 서비스 간의 요청을 효율적으로 라우팅하는 데 중요한 역할을 합니다. “사이드카”라는 용어는 서비스 메쉬 내 프록시를 지칭하며, 이 프록시들은 서비스 내부가 아닌 서비스 옆에서 실행됩니다. 다양한 서비스의 “사이드카” 프록시들이 연결되어 메쉬 네트워크를 구성합니다.

서비스 메쉬가 없다면 개발자는 각 마이크로서비스를 서비스 간 통신 전략에 따라 코딩해야 합니다. 부서 간 통신 로직이 각 부서 내부에 숨겨져 있어 개발자들은 회사 목표를 달성하는 데 어려움을 겪습니다.

또한 통신 문제를 진단하는 것 또한 매우 복잡해집니다. 서비스 메쉬는 이러한 서비스 간 통신 관리에 관련된 문제를 해결하는 데 도움이 됩니다.

서비스 메쉬를 활용하면 메쉬 네트워크의 아웃소싱된 인프라에서 필요한 데이터와 통찰력에 쉽게 접근할 수 있어 통신을 자동화할 수 있습니다. 이를 통해 문제와 오작동을 식별하고 신속하게 해결할 수 있습니다. 또한, 기업의 IT 부서는 더 높은 부가가치를 창출하는 업무에 집중할 수 있습니다.

통신 추상화는 실패한 서비스를 자동으로 우회하여 작동 중인 애플리케이션 부분의 데이터 교환을 보호합니다. 서비스 메쉬 시스템에서 접근하기 쉬운 데이터는 애플리케이션 운영을 개선하고 성능을 향상시키는 데 도움이 됩니다.

지금까지 서비스 메쉬의 작동 방식을 살펴보았습니다. 이제 주요 서비스 메쉬 관리자를 살펴보겠습니다.

메셔리

메셔리는 다양한 서비스 메쉬 솔루션을 실행할 수 있는 서비스 메쉬 관리자입니다. 쿠버네티스 및 도커에 배포할 수 있습니다. 메셔리는 링커드 및 이스티오를 포함한 주요 메시 서비스 솔루션에 대한 벤치마크를 설정하는 UI 및 CLI를 제공합니다. 메셔리는 클러스터에 직접 또는 로컬로 배포할 수 있습니다.

아마존 앱 메쉬

AWS 앱 메쉬는 Amazon의 쿠버네티스 플랫폼(EKS)용 네트워크 메시 서비스입니다. 수신 및 송신 트래픽 모두에 대해 Envoy 사이드카 프록시를 통해 애플리케이션 수준 관리를 제공하고, AWS X-Ray를 사용하여 관찰 가능성 지표를 제공하며 회로 차단 기능을 사용합니다. AWS 앱 메쉬는 Amazon EC2 및 AWS Fargate와 같은 다른 서비스와도 함께 사용할 수 있습니다.

링커드

링커드는 Rust 기반 맞춤형 프록시를 사용하여 마이크로서비스를 관리하는 오픈 소스 네트워크 메시 관리자입니다. 링커드는 관찰 가능성 메트릭을 제공하기 위해 Grafana가 사전 설치되어 제공됩니다. 다른 오픈 소스 메쉬 관리자와 달리, 링커드는 GUI를 제공하며, Prometheus를 지원할 뿐만 아니라 Traefik, Kong, Gloo와 같은 인그레스 컨트롤러도 지원합니다. 또한 링커드는 클러스터 전반에 걸쳐 자동 배포 업그레이드를 지원합니다.

이스티오

이스티오는 Envoy 프록시를 사용하여 마이크로서비스를 관리하는 오픈 소스 서비스 메쉬입니다. 이스티오는 로드 밸런싱, 정책 생성, 트래픽 라우팅, 타임아웃, 회로 차단, 트래픽 이동 및 재시도와 같은 여러 기능을 제공합니다. 또한 이스티오는 추가 소프트웨어를 설치할 필요 없이 컨테이너 또는 시스템 전반에 걸쳐 분산 추적 기능을 제공합니다.

쿠마

쿠마는 Envoy 프록시를 통해 기존 서비스의 기능을 확장하는 데 사용되는 Kong에서 개발한 서비스 메쉬입니다. 쿠마는 다양한 마이크로서비스를 지원하고 네트워크에 대한 향상된 보안 및 모니터링을 제공합니다. 쿠마는 라우팅, mTLS, 트래픽 제어 및 다양한 보안 기능을 위한 여러 사전 번들 정책과 함께 제공됩니다. 또한 단일 제어 및 데이터 평면을 통해 서로 다른 격리된 메시를 쉽게 제어할 수 있습니다.

Nginx 메쉬

엔진엑스는 Nginx Plus에서 제공하는 데이터 플레인을 사용하여 컨테이너 간의 트래픽을 암호화하는 쿠버네티스용 서비스 메쉬입니다. Nginx는 속도 제한 및 회로 차단기를 사용하여 서비스 간 트래픽을 관리하며, 서비스 메쉬 메트릭을 관찰하기 위한 Grafana 대시보드도 함께 제공됩니다.

영사

영사는 HashiCorp에서 개발한 서비스 메쉬로, 내장 프록시 레이어를 제공하며 Envoy 사이드카 프록시도 지원합니다. 영사는 경로 기반 라우팅, 트래픽 이동 및 로드 밸런싱을 제공합니다. 또한 HashiCorp Vault와 통합되어 있으며 mTLS도 지원합니다. Prometheus 및 Grafana와 통합되어 관찰 가능성 메트릭을 볼 수 있습니다.

글루 메쉬

글루 메쉬는 이스티오 메쉬 위에 구축된 서비스 메쉬이며, 제로 트러스트 보안 모델을 구현할 수 있는 Envoy 프록시를 사용합니다. 글루 메쉬는 다중 테넌시 쿠버네티스, VM 및 기타 마이크로서비스를 지원합니다. 또한 CI/CD 및 GitOps와 호환되어 배포를 간소화합니다.

마지막 단어

서비스 메쉬는 마이크로서비스 간의 통신 문제를 해결하고 다양한 보안 이점을 제공합니다. 그러나 시중에 다양한 메쉬 솔루션이 존재하므로, 자신의 요구 사항에 가장 적합하고 관리하기 쉬운 서비스를 선택하는 것이 매우 중요합니다.