서비스 메시(Service Mesh)!

Service Mesh

최근 클라우드, 쿠버네티스, MSA(마이크로 서비스 아키텍처) 등에 대해서 리서치를 하면서 서비스 메시에 대한 내용을 자주 봤습니다.

그래서 오늘은 서비스 메시에 대해서 간략하게 공유해 드릴까 합니다.

* 쿠버네티스와 MSA에 대한 자세한 내용은 아래 글을 참고해 보시기 바랍니다.

 쿠버네티스 이해하기, 3단계!

 요즘 대세 MSA, 마이크로 서비스 아키텍처!

그럼 서비스 메시가 무엇인지에 대해서 먼저 말씀드리겠습니다.

서비스 메시(Service Mesh)란?

서비스 메시란 네트워크를 통해 서비스 간의 통신을 제어하는 전용 인프라 계층이라 할 수 있습니다. 그리고 이를 통해서 애플리케이션의 개별 부분이 서로 통신을 할 수 있고 말이죠.

그렇기에 서비스 메시는 일반적으로 클라우드 기반 애플리케이션, 컨테이너 및 MSA와 함께 언급되는 경우가 많이 있습니다.

서비스 메시는 애플리케이션의 서비스 요청 전달을 제어합니다. 그리고 서비스 메시가 제공하는 일반적인 기능에는 서비스 검색, 로드 밸런싱, 암호화 및 오류 복구가 포함됩니다. 따라서 서비스 메시를 사용하면 서비스 간 통신을 빠르고 안정적이며 안전하게 만들 수 있습니다.

마이크로 서비스 아키텍처로 구성된 애플리케이션의 경우 수십 또는 수백 개의 서비스로 구성될 수 있고, 모두 실제 환경에서 작동하는 자체 인스턴스를 포함합니다. 이 상황에서 어떤 구성 요소가 상호 작용해야 하는지 추적하고, 해당 구성 요소의 상태와 성능을 모니터링하고, 문제가 발생할 경우 서비스나 구성 요소를 변경하는 것은 큰 과제입니다.

이런 상황에서 서비스 메시를 사용하면 전용 인프라 계층에서 서비스간 통신을 분리하고 관리할 수 있습니다. 그리고 이를 통해 각 서비스나 요소들을 관리하고 모니터링하는 것이 용이해 지는 것입니다.

그럼 서비스 메시의 장점에 대해서 더 자세히 공유해 드리겠습니다.

서비스 메시의 장점!

  • 장애 격리 및 내구성: 서비스 메시는 각 서비스를 독립적인 단위로 분리하여 운영할 수 있기 때문에 하나의 서비스의 장애가 다른 서비스에 영향을 미치지 않습니다. 또한 서비스의 확장성과 내구성을 향상시킵니다.
  • 유연한 확장성: 서비스 메시는 새로운 서비스를 쉽게 추가하고 기존 서비스를 확장할 수 있도록 해줍니다. 각 서비스는 독립적으로 확장 가능하며, 메시가 이를 관리하므로 운영자는 개별 서비스의 확장에만 집중할 수 있습니다.
  • 통신 관리: 서비스 메시는 서비스 간 통신을 관리하고 보안을 제공하여 서비스 간의 통신을 안전하고 효율적으로 만듭니다. 이는 보안 측면에서 매우 중요합니다.
  • 강력한 모니터링과 제어: 서비스 메시는 각 서비스의 상태를 모니터링하고 문제가 발생하면 자동으로 조치할 수 있습니다. 또한 로깅, 추적 및 분석을 통해 시스템 전반의 상태를 파악하고 개선할 수 있습니다.
  • 기술 다양성 지원: 서비스 메시는 다양한 기술 스택을 지원하므로 팀이 다른 언어 또는 프레임워크를 선택하여 개발할 수 있습니다. 이는 더 많은 자유를 제공하고 최신 기술의 도입을 촉진합니다.
  • DevOps 향상: 서비스 메시는 개발과 운영 간의 간극을 줄여줍니다. 개발팀은 각자의 서비스에 집중할 수 있고, 운영팀은 메시를 통해 자동화된 관리와 모니터링을 수행할 수 있습니다.

이러한 장점들을 통해 기존 아키텍처에서 겪을 수 있는 많은 문제들을 해결하고, 클라우드 네이티브 환경에서 확장 가능하고 안전한 서비스의 구축을 지원하게 되는 것입니다.

이런 서비스 메시의 장점이 있기에 다양한 기업들에서 관련 서비스를 제공하고 있습니다.

서비스 메시 관련 서비스 목록

AWS App Mesh:

Amazon Web Services (AWS)의 서비스 메시 솔루션으로, 컨테이너화된 애플리케이션을 연결하고 관리하는 데 사용됩니다. Envoy 기반의 프록시를 사용하여 트래픽 라우팅, 모니터링, 보안 등을 제공합니다.

 https://aws.amazon.com/ko/app-mesh/

Azure Service Fabric:

마이크로서비스 기반 애플리케이션을 쉽게 구축, 배포 및 관리할 수 있는 마이크로서비스 플랫폼으로, 서비스 간 통신 및 배포를 관리하는 기능을 제공합니다.

 https://learn.microsoft.com/ko-kr/azure/service-fabric/service-fabric-overview

HashiCorp Consul:

Consul은 서비스 디스커버리, 서비스 메시 및 분산 구성 관리를 위한 오픈 소스 도구이며, 여러 서비스 간의 연결성과 통신을 관리하고 보안을 강화합니다.

 https://www.consul.io/

Istio:

Istio는 Kubernetes 환경에서 서비스 메시를 제공하는 오픈 소스 플랫폼으로, Envoy 프록시를 사용하여 트래픽 관리, 보안 및 모니터링을 수행합니다.

 https://istio.io/

Linkerd:

Linkerd는 Kubernetes와 같은 컨테이너 오케스트레이션 시스템에서 사용할 수 있는 클라우드 네이티브 서비스 메시입니다. 트래픽 제어, 장애 복구, 모니터링 기능을 제공합니다.

 https://linkerd.io/

Google Anthos Service Mesh(ASM):

구글의 서비스 메시 솔루션으로, 마이크로서비스 애플리케이션을 위한 트래픽 관리, 보안 및 모니터링 기능을 제공합니다.

 https://cloud.google.com/service-mesh/docs/overview?hl=ko

이 외에도 여러 기업 및 오픈 소스 커뮤니티에서도 다양한 서비스 메시 솔루션을 제공하고 있습니다.

 

오늘은 서비스 메시에 대해서 공유해 드렸습니다.

최근 몇 년간 참 다양한 분야에 대해서 리서치하고 공부하면서 느낀 것은 계속해서 더 많은 것들을 배우고 익혀야겠다는 생각이 들었습니다.

특정 업계에 있다고 해서, 특정 업무를 한다고 해서, 그 업계나 그 업무에 대한 지식만을 가지면 된다는 생각으로 나아간다면 지금처럼 빠르게 변하고 다양한 지식들이 융합되고 적용되는 세상 속에서 살아남기가 쉽지 않을테니까 말이죠.

기업이든, 개인이든, 말이죠.

 

 

* Author: OpsNow Editor(donghun.cho@bespinglobal.com)

클라우드나 SaaS와 관련하여 다른 궁금한 점이 있으시면 언제든지 저희에게 문의해 주세요.

저희에게는 클라우드에 대한 다양한 정보와 경험, 그리고 도구가 있습니다.

 OpsNow에 문의하기