서비스 메시란 무엇인가요?

작성자

Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

서비스 메시의 정의

서비스 메시는 마이크로서비스 간의 연결을 관리하고 애플리케이션이 작동할 수 있도록 하는 현대적인 애플리케이션 아키텍처 내 소프트웨어 계층입니다. 서비스 메시는 서비스 간 통신, 서비스 검색, 부하 분산인증과 같은 여러 가지 중요한 기능을 제공합니다.

현대 비즈니스 환경에서 앱 개발자가 직면하는 가장 큰 과제 중 하나는 확장성입니다. 애플리케이션 사용자 수가 증가함에 따라 DevOps(성능을 가속화하는 소프트웨어 개발 방법론) 엔지니어가 서비스 성능을 모니터링하기가 어려워집니다. 서비스 메시는 로깅, 추적, 트래픽 제어와 같은 중요한 서비스를 모니터링하고 관리하는 데 도움이 되는 주요 기능을 제공합니다.

애플리케이션이 디지털 혁신의 기본이 되면서 서비스 메시의 중요성이 커지고 있습니다. 오늘날 서비스 메시는 클라우드 네이티브 애플리케이션, 마이크로서비스, 컨테이너 등 가장 진보된 애플리케이션 기술을 구현하는 핵심 요소입니다.

Forbes에 따르면 2022년에 이미 70%의 조직이 서비스 메시를 운영 중이었으며, 19%의 조직이 서비스 메시를 평가하고 있었습니다.1

전문가의 인사이트를 바탕으로 한 최신 기술 뉴스

Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.

감사합니다! 구독이 완료되었습니다.

구독한 뉴스레터는 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.

마이크로서비스란?

마이크로서비스 아키텍처라고도 하는 마이크로서비스는 애플리케이션이 여러 개의 독립적인 소규모 구성 요소 또는 서비스로 구축되는 클라우드 네이티브 아키텍처 접근 방식입니다. 이러한 접근 방식을 사용하면 개발자가 코드를 더 쉽게 업데이트할 수 있으며, 나머지 애플리케이션에 영향을 주지 않고 기능을 추가하거나 제거할 수 있어 높은 확장성을 얻을 수 있습니다.

서비스 메시는 마이크로서비스 아키텍처에 매우 중요합니다. 서비스 메시는 마이크로서비스 애플리케이션에서 모든 서비스가 연결되고 정보를 교환할 수 있는 구성 가능한 인프라 계층을 제공합니다. 서비스 메시 외에도 마이크로서비스 아키텍처는 컨테이너 기술과 가장 인기 있는 플랫폼인 Kubernetes와 함께 사용됩니다.

애플리케이션 개발

시작하기: 클라우드에서 기업용 애플리케이션 개발

이 영상에서 Peter Haumer 박사는 IBM Z Open Editor, IBM Wazi 및 Zowe 등 다양한 구성 요소와 사례를 시연하며 오늘날 하이브리드 클라우드에서의 최신 기업용 애플리케이션 개발이 어떤 모습인지 설명합니다. 

컨테이너와 Kubernetes란 무엇인가요?

컨테이너라고 불리는 기술은 가장 인기 있는 컨테이너 오케스트레이션 플랫폼 중 하나인 Kubernetes와 함께 개발자가 복잡한 마이크로서비스 기반 애플리케이션을 관리할 수 있게 하기 때문에 서비스 메시 기능에 없어서는 안 될 요소로 자리 잡았습니다.

컨테이너는 애플리케이션 코드를 라이브러리 및 종속성과 함께 패키징하는 소프트웨어의 실행 단위로, 모든 컴퓨팅 환경에서 코드를 실행할 수 있도록 지원합니다. 최신 애플리케이션 아키텍처에서 컨테이너가 확산되면서 대규모 컨테이너 그룹을 관리하는 것이 금세 어려운 과제가 되었습니다.

현재 시장에서 가장 인기 있는 오케스트레이션 솔루션 중 하나가 된 컨테이너 오케스트레이션 플랫폼인 Kubernetes(k8s 또는 Kube라고도 함)에 대해 알아보세요. 물리적 머신 및 가상 머신(VM)을 나타내는 노드의 모음인 Kubernetes 클러스터는 컨트롤 플레인에서 관리됩니다.

서비스 메시 기능의 또 다른 중요한 측면은 특정 클러스터 내에서 서비스에 대한 액세스가 관리되는 방식, 즉 인그레스라는 프로세스입니다.

서비스 메시는 어떻게 작동하나요?

오늘날 가장 인기 있는 애플리케이션은 많은 작업 또는 컴퓨팅 작업과 프로세스를 한 번에 배포해야 합니다. 마이크로서비스 아키텍처를 사용하면 개발자는 각 애플리케이션을 관리하기 쉬운 작고 독립적인 서비스의 컬렉션으로 구축할 수 있습니다.

그러나 애플리케이션 코드가 작동하려면 마이크로서비스가 빠르고 정확하게 통신해야 하며, 이를 위해서는 서비스 메시 아키텍처가 중요합니다. 서비스 메시는 개발자가 애플리케이션 내에서 서비스 간 통신을 더 잘 제어할 수 있도록 설계되었습니다.

가장 기본적인 수준에서 서비스 메시는 프록시 기반 통신이라는 통신 유형에 의존하여 마이크로서비스 기반 애플리케이션의 관리성과 제어를 향상합니다. 프록시 기반 통신은 마이크로서비스와 조직의 네트워크 사이에서 중개자 역할을 하는 프록시 서버(프록시라고도 함)를 특징으로 하며, 이를 통해 트래픽이 프록시를 통해 서비스로 라우팅될 수 있습니다. 네트워크 프록시 통신이라고 하는 이 기능은 많은 애플리케이션의 관리 용이성, 관측 가능성 및 보안을 유지하는 데 중요합니다.

서비스 메시 아키텍처는 프록시 외에도 작동을 위해 컨트롤 플레인과 데이터 플레인이라는 두 가지 주요 구성 요소에 의존합니다.

컨트롤 플레인

컨트롤 플레인은 사용자와 디바이스(노드라고도 함) 간에 데이터가 라우팅되는 방식을 제어하는 컴퓨터 네트워크 부분입니다. 컨트롤 플레인은 데이터가 네트워크를 통과하는 최적의 경로를 결정하는 알고리즘에 의해 정보를 제공하는 라우팅 규칙 또는 프로토콜을 따릅니다.

서비스 메시에서 컨트롤 플레인에는 사이드카 프록시라는 특별히 설계된 프록시가 포함되어 있습니다. 사이드카 프록시는 모니터링 및 보안과 같은 특정 기능을 추상화하여 효율성을 높입니다. 서비스가 서비스 메시에서 다른 서비스와 통신해야 할 때 사이드카 프록시는 요청을 가로채고 해당 서비스가 이동할 수 있는 안전하고 암호화된 채널을 생성합니다.

데이터 플레인

포워딩 플레인이라고도 하는 데이터 플레인은 라우터 및 스위치와 같은 장치를 통해 네트워크에서 데이터를 전송할 수 있도록 합니다. 데이터 플레인은 사이드카 프록시를 사용하여 서비스 간 메시징과 회로 차단 및 요청 재시도와 같은 중요 기능을 관리합니다. 데이터 플레인은 부하 분산, 서비스 검색, 라우팅과 같은 주요 기능이 수행되는 곳이기도 합니다.

서비스 메시와 API Gateway

데이터 플레인과 제어 플레인 외에도 애플리케이션 프로토콜 인터페이스(API) 게이트웨이는 서비스 메시 기능과 밀접한 관련이 있는 마이크로서비스 아키텍처의 또 다른 중요한 부분입니다.

API는 소프트웨어 애플리케이션이 데이터를 통신하고 교환할 수 있도록 하는 프로토콜입니다. API Gateway는 예를 들어 개발자가 애플리케이션을 구축하는 데 도움이 되는 널리 사용되는 REST API와 서버에 위치한 백엔드 서비스처럼 API 클라이언트 사이의 중개자 역할을 하는 도구입니다.

API Gateway와 서비스 메시지는 둘 다 효율적인 애플리케이션 개발을 가능하게 한다는 점에서 유사합니다. 그러나 API gateway가 API에 대한 액세스를 제어하는 반면, 서비스 메시는 애플리케이션 내의 마이크로서비스를 연결합니다. 서비스 메시와 API Gateway는 애플리케이션 개발 에코시스템의 유연성과 관측 가능성을 높이기 위해 자주 함께 배포됩니다.

서비스 메시의 이점

서비스 메시와 서비스 메시가 가능하게 만드는 마이크로서비스 아키텍처는 조직에 많은 중요한 이점을 제공합니다. 가장 일반적인 몇 가지 예는 다음과 같습니다.

관측 가능성

서비스 메시는 전체 마이크로서비스 아키텍처에 대해 복잡한 시스템의 상태를 더 깊이 이해할 수 있는 기본 제공되는 관측 가능성을 제공합니다. 이를 통해 개발자는 앱의 작동 방식을 이해하는 데 중요한 종속성, 지연 시간 및 오류율과 같은 중요한 지표를 모니터링할 수 있습니다.

또한 관측 가능성은 개발자에게 마이크로서비스 에코시스템의 내부 작동을 완벽하게 파악할 수 있도록 하여 문제 해결, 성능 최적화, 원격 측정 및 디버깅에 도움이 됩니다.

제어

앱이 제대로 작동하려면 개발자와 애플리케이션 관리자가 앱 내에서 서비스가 서로 통신하는 방식을 제어해야 합니다. 서비스 메시를 사용하면 마이크로서비스 아키텍처를 배포하는 조직의 거버넌스 기능(예: 규제가 엄격한 부문에서 팀이 보안 및 규정 준수 요구 사항을 시행하는 방식)이 향상됩니다.

또한 서비스 메시는 분산 애플리케이션(연결된 두 대 이상의 컴퓨터에서 동시에 실행되는 애플리케이션)과의 서비스 간 통신 요구를 처리하기 위한 전용 인프라 계층을 제공합니다.

보안

서비스 메시를 사용하면 상호 전송 계층 보안(mTLS) 암호화 및 인증과 같은 기능을 통해 서비스 간 안전한 통신을 보장할 수 있습니다. mTLS 인증은 애플리케이션에서 클라이언트와 서버 간의 양방향 트래픽이 안전하고 신뢰할 수 있음을 보장하는 데 도움이 됩니다.

또한 mTLS는 서비스 간 통신을 통해 전송되는 정보를 암호화하여 데이터 기밀성을 제공합니다. 이를 통해 관리자는 특정 엔드포인트에 대한 액세스와 같은 권한 부여 정책을 시행할 수 있으며, 이를 엔드포인트 보안이라고 합니다.

서비스 검색

서비스 메시에는 자동 서비스 검색이라는 기능이 있어서 특정 마이크로서비스에 도달할 수 있는 서비스 메시 내 위치인 서비스 엔드포인트를 관리하는 일의 워크로드를 줄이는 데 도움이 됩니다. 서비스 레지스트리를 사용하면 서비스가 어디에 있든 자동으로 서로를 찾아 통신할 수 있으므로, 개발자가 새로운 서비스를 빠르고 쉽게 배포할 수 있습니다.

로드 밸런싱

앱 성능을 최적화하기 위해 여러 서버에 네트워크 트래픽을 분산하는 로드 밸런싱은 서비스 메시의 핵심 기능입니다. 서비스 메시는 알고리즘을 사용하여 노드 간 워크로드를 균형 있게 조절하고, 컴퓨팅 리소스를 최적화하며, 전반적으로 애플리케이션의 고가용성을 보장하는 데 도움이 됩니다.

트래픽 관리 및 트래픽 분할

서비스 메시는 네트워크에서 정보와 리소스의 흐름을 최적화하는 데 도움이 되는 고급 트래픽 관리 및 트래픽 분할 기능을 제공합니다. 트래픽 관리와 트래픽 분할은 모두 네트워크의 정보 흐름을 제어하는 데 사용되지만, 주목할 만한 중요한 차이점이 하나 있습니다. 트래픽 관리란 정보 트래픽 흐름을 개선하기 위해 인프라에 대한 장기적이고 체계적인 변경에 초점을 맞추는 반면, 트래픽 분할은 백엔드 또는 서비스 버전 전반에 걸쳐 트래픽을 가중치 기반으로 분배하는 것을 의미합니다.

서비스 메시는 라우팅 및 트래픽 동작에 대한 세부적이고 고도로 구체적인 제어를 제공하여 애플리케이션이 최신 소프트웨어 버전으로 업데이트될 때 더욱 원활한 전환을 가능하게 합니다. 예를 들어, 널리 사용되는 카나리아 배포에서는 앱의 새 버전을 모든 사람에게 제공하기 전에 소수의 사용자에게만 출시하여 기능과 성능을 테스트합니다.

적합한 서비스 메시 솔루션 선택하기

서비스 메시 공급업체를 위한 글로벌 시장은 이미 강력하고 빠르게 성장하고 있습니다. 최근 설문조사에 따르면, 이 시장은 2023년에는 2.2억 달러 규모로 평가되었으며, 2032년까지 41.3%의 연평균 성장률(CAGR)을 기록하여 50.5억 달러 규모로 성장할 것으로 예상됩니다.2

매우 빠른 속도로 성장하는 산업에서 올바른 서비스 메시 솔루션을 선택하기란 어려울 수 있습니다. 고려해야 할 주요 요소로는 비용, 구현 용이성, 기존 기술과의 호환성, 보안, 성능 및 지원 등이 있습니다.

가장 인기 있는 서비스 메시 솔루션 5가지와 각 솔루션의 독특성의 간략한 개요는 다음과 같습니다.

Istio

가장 많이 사용되는 서비스 메시는 Istio입니다. 이 서비스 메시는 다양한 기능으로 인해 적응성이 매우 뛰어나며, 기업 수준의 워크로드에 적합합니다. Istio는 고급 트래픽 관리 능력, 보안 기능 및 확장성으로 널리 알려져 있으며, 이는 대규모 에코시스템의 기여자들에 의해 더욱 향상되었습니다.

다른 서비스 메시 제품과 마찬가지로 Istio는 오픈 소스 프로젝트로, 공개 협업을 통해 개발 및 유지 관리되며 누구나 사용할 수 있도록 공개되어 있습니다. 이 제품은 Kubernetes 및 기타 여러 서비스 메시 인접 기술과 잘 호환됩니다.

Linkerd

Istio보다 가볍고 간단한 Linkerd는 짧은 지연 시간을 유지하면서 성능을 향상시키는 간단한 서비스 메시 솔루션입니다. Linkerd는 부하 분산, 서비스 검색, 암호화 등 기업이 서비스 메시에서 기대하는 모든 기본 기능을 갖추고 있습니다. Istio와 마찬가지로 Linkerd도 오픈 소스입니다.  

NGINX Service Mesh

NGINX는 대다수의 여타 서비스 메시보다 더 포괄적입니다. 이 서비스 메시는 웹 서버와 역방향 프록시로 모두 작동하므로 다른 서비스 메시보다 더 광범위한 프로토콜을 제공할 수 있습니다. NGINX는 최고의 성능과 안정성을 위해 설계되었으며, 많은 고트래픽 웹사이트에서 사용됩니다. Linkerd, Istio 및 기타 서비스 메시 솔루션과 마찬가지로 오픈 소스입니다.

Consul

인기 있는 클라우드 기반 인프라 회사 HashiCorp가 만든 Consul은 다른 인기 있는 서비스 메시와 동일한 기능을 다수 제공하는 멀티클라우드 서비스 메시입니다. Consul은 가장 유연한 서비스 메시 솔루션 중 하나이며 Windows, Linux, macOS, FreeBSD, Solaris 등 다양한 운영 체제(OS)에서 사용할 수 있습니다. Consul 역시 오픈 소스이며, 모니터링 기능을 강화하는 인기 있는 Prometheus 플러그인으로 가장 잘 알려져 있습니다.

AWS 앱 메시

Amazon Web Services(AWS) 클라우드 배포에 사용하도록 특별히 설계된 AWS 앱 메시는 Linkerd, Istio 등과 동일한 기능을 다수 갖춘 서비스 메시로, 향상된 보안, 트래픽 관리 및 관측 기능을 제공합니다. 하지만 AWS는 유연하지 않으며 이미 AWS 아키텍처에 통합된 조직에만 적합한 것으로 간주됩니다.

관련 솔루션
AI 기반 애플리케이션 개발

Watsonx.ai는 애플리케이션 개발 팀이 워크플로에 AI를 원활하게 통합할 수 있도록 지원합니다. 이 포괄적인 툴킷은 모델 생성에서 배포에 이르기까지 전체 AI 라이프사이클를 지원합니다.

watsonx.ai 살펴보기
IBM Z Development and Test Environment

x86 하드웨어에서 메인프레임 애플리케이션 개발, 테스트, 데모, 교육을 위한 플랫폼을 사용합니다.

Z 개발 환경 살펴보기
모바일 클라우드 컴퓨팅 솔루션

앱을 신속하게 설계하고 프로토타입을 제작하여 시장에 쉽게 출시할 수 있는 IBM의 모바일 앱 개발 플랫폼에 대해 알아보세요.

모바일 클라우드 살펴보기
다음 단계 안내

IBM Cloud Application Development Consulting Services는 클라우드 전략을 간소화하기 위한 전문가 지침과 혁신적인 솔루션을 제공합니다. IBM의 클라우드 및 개발 전문가와 협력해 애플리케이션을 현대화, 확장, 가속화하여 비즈니스에 혁신적인 결과를 제공하세요.

애플리케이션 개발 서비스 살펴보기 무료로 IBM Cloud에서 구축 시작하기
각주

Service Mesh As The Bridge To App Modernization, Forbes, 2023년 3월

2 Service Mesh Market Report, Business Research Insights, 2024년 10월