서비스 메시란?

 

서비스 메시란 클라우드에서 호스팅하는 애플리케이션의 소프트웨어 코드가 통합 계층의 형태로 다양한 수준의 웹 서버에서 상호 연동되는 방식을 의미합니다. 클라우드에서 호스팅하는 애플리케이션 코드는 웹 서버 스택 구성의 최상단 레이어에서 분리된 런타임에 작동하는 것이 아니라 운영 체제, 웹 서버, 네트워크 또는 데이터 센터 수준에서 사용할 수 있는 기타 소프트웨어 기반 서비스에 대한 호출을 용이하게 해 주는 API를 통해 구축할 수 있습니다. 서비스 메시는 운영 환경에서 인프라 요소 간 상호 운용 가능한 통신 수준을 확대하여 소프트웨어 애플리케이션의 잠재적 기능을 향상합니다.

 

서비스 메시는 실행 중인 애플리케이션 간의 자동화된 채널 간 통신을 통해 탄력적인 클라우드 데이터 센터에서 여러가상 머신에 걸친 수천 개의 마이크로 서비스를 함께 연결합니다. 모든 수준의 데이터 센터 운영에 걸친 클라우드 조정, 로드 밸런싱, 리소스 검색, SDN 라우팅, API 통신, 데이터베이스 동기화, 스크립트 최적화 애플리케이션에는 서비스 간 전용 통신 기능이 필요합니다. 수많은 멀티 테넌트 랙 서버에 걸쳐 여러 계층으로 구성된 네트워크 아키텍처에서 데이터 분석과 트래픽 측정지표를 개선하는 데 서비스 메시를 사용할 수 있습니다.

서비스 메시

서비스 메시는 SDN과 함께 네트워크 가상화 및 자동화와 같은 핵심 기능을 실행합니다.

방법 보기 

서비스 메시의 이점

  • 상호 운용성 향상: 서비스 메시는 웹, 모바일, SaaS 애플리케이션 코드를 지원하는 통합 마이크로 서비스 환경의 SDN 라우팅 기능을 확장합니다.
  • 마이크로 서비스 검색 기능 강화: 서비스 메시는 더 우수한 마이크로 서비스 검색을 통해 네트워크 구성 및 관리를 개선합니다.
  • 네트워크 활동에 대한 세부적인 실시간 모니터링 및 분석: 서비스 메시는 백엔드 프로세스와 웹 서버 하드웨어에 액세스할 수 있어 네트워크 활동을 더욱 상세하게 실시간으로 모니터링하고 분석합니다.
  • 웹 및 모바일 스크립트 자동화 향상: 개발자는 YAML 파일과 Vagrant, Jenkins, Puppet, Chef 등의 유틸리티를 통해 서비스 메시 기능의 스크립트를 작성하여 웹 및 모바일 스크립트의 강력한 자동화를 대규모로 구축할 수 있습니다. 기업의 운영 환경에서 복잡한 SaaS 애플리케이션을 지원하려면 이러한 유형의 아키텍처가 필요합니다. 서비스 메시는 클라우드에서 동시에 실행되는 수천 또는 수백만 개의 컨테이너를 조정합니다.

 

서비스 메시 작동 방식

서비스 메시는 실행 중인 마이크로 서비스를 IP 주소별로 등록하기 위해 탄력적인 웹 서버 네트워크의 모든 가상 머신 인스턴스 또는 노드에 설치되는 검색 및 라우팅 애플리케이션을 통해 작동합니다. 네트워크에서 동시에 실행 중인 모든 마이크로 서비스를 구성, 관리, 운영하기 위해 중앙 레지스트리가 사용됩니다. 서비스 메시는 웹 서버, 데이터 센터, 애플리케이션의 다양한 계층에서 동시에 실행되는 애플리케이션에서 참조되어 데이터 분석 및 네트워크 모니터링을 통해 상호 운용 가능한 기능을 확장합니다. 그 결과 IP 라우팅, SDN 정의, 방화벽 설정, 필터, 규칙, 클라우드 로드 밸런싱 수준에서 데이터 센터 자동화가 향상됩니다.

 

API 연결은 데이터 전송 또는 필요한 처리 활동을 위해 실행 중인 애플리케이션과 마이크로 서비스 기능을 어디에서 검색해야 하는지를 정의하기 위해 서비스 메시를 참조할 수 있습니다. Kubernetes를 통해 자동으로 확장되는 탄력적인 웹 서버 플랫폼은 마이크로 서비스 검색을 위한 중앙 레지스트리와 구성 관리 유틸리티로 Istio를 사용합니다. AWS EC2와 Kubernetes 등 탄력적인 웹 서버 플랫폼은 서비스 메시를 활용하여 동일한 런타임에 여러 클라우드 애플리케이션 사본을 관리함과 동시에 마스터 데이터베이스와 스토리지 정보에 대한 변경 사항을 동기화합니다. 서비스 메시를 통해 애플리케이션 계층은 마이크로 서비스나 코드 베이스의 요구 사항에 따라 API를 통해 웹 서버, 인터넷, 데이터 센터 네트워크 리소스와 통신하거나 그 반대로 통신할 수 있습니다.

 

서비스 메시 아키텍처

서비스 메시는 클라우드 데이터 센터의 가상 머신이나 컨테이너 전반에 설치된 추상화 계층에 기반합니다. 코드는 데이터 센터 조정을 실행하는 중앙 관리 소프트웨어 인스턴스와 통신하는 모든 가상 머신 또는 노드에 설치됩니다. VMware NSX, Istio 등의 서비스 메시 솔루션은 Envoy를 사용하여 노드 수준에서 데이터 플레인을 생성합니다. Envoy는 실행 중인 마이크로 서비스, 라이센스를 받은 IP 주소, HTTPS 암호화, 활성화된 데이터베이스 형식 등에 관련된 정보를 가상 머신 또는 노드별로 관리합니다. NSX의 경우 여기에는 하이퍼바이저 수준에서의 분산된 방화벽 통합이 포함됩니다. 탄력적인 클라우드 네트워크에서 각 가상 머신 또는 노드의 데이터 플레인 정보는 로드 밸런싱에 사용됩니다. API 연결은 서비스 메시 아키텍처를 통해 애플리케이션간 라우팅 요구 사항을 충족합니다. 서비스 메시 레벨 7에서의 원격 측정으로는 DNS, HTTP/S, SMTP, POP3, FTP 등이 있습니다.

 

서비스 메시 구현

서비스 메시 구현에는 웹/모바일 애플리케이션의 SDN, IP 주소, 마이크로 서비스, API 리소스 전반에 걸친 로드 밸런싱과 서비스 검색이 포함됩니다. 서비스 메시는 탄력적인 웹 서버 아키텍처 내 하드웨어 전반의 웹 서버 백엔드 내 연결을 위한 통신, 동기화, 암호화를 관리합니다. 클라우드 애플리케이션에서는 스크립트, 데이터베이스, 정적 웹 파일이 서로 다른 하드웨어에서 분리되었다가 웹 브라우저의 최종 페이지에서 합쳐지는 경우가 많습니다. 하드웨어, 스크립트, 데이터베이스, 파일 간 SDN 라우팅은 코드에 타사 API가 포함되면서 더욱 복잡해집니다. 페이지를 로드할 때마다 리소스 전반에서 이 모두를 합쳐야 하는 경우, 서비스 메시가 탄력적인 웹 서버 프레임워크에서 여러 가상 머신에 걸쳐 운영을 통합, 동기화, 표준화합니다. 서비스 메시는 데이터 센터에서 다른 소프트웨어가 제공하지 않는 수요를 충족하기 위해 개발되었습니다. 여기에는 웹 트래픽 연결에서 비롯된 데이터 분석과 사용자 측정지표도 포함됩니다.

 

오픈 소스 서비스 메시

Istio는 현재 가장 발전된 형태의 오픈 소스 서비스 메시 프로젝트로서, 노드 간 데이터 플레인 관리에 관련된 중심 기능에 Envoy를 사용합니다. Istio는 원래 CNCF(Cloud Native Computing Foundation)의 일부로 개발되었으며 VMware NSX Service MeshEnterprise PKS 플랫폼에서 사용됩니다. VMware는 PKS를 통해 Kubernetes를 배포하며, PKS는 컨테이너를 통해 클라우드 웹 서버를 조정합니다. PKS는 퍼블릭 및 프라이빗 클라우드 요구 사항을 충족하기 위한 자체 호스팅 패키지로, 또는 완벽하게 관리되는 CaaS(Containers-as-a-Service) 제품으로 제공됩니다. Istio는 기업 데이터 센터에서 규모에 맞게 탄력적으로 웹 서버를 조정하기 위한 복잡한 IP 주소 라우팅 기능과 암호화를 제공하여 Kubernetes에서의 마이크로 서비스 통신에 사용됩니다. 서비스 메시 프레임워크의 구성 요소로 개발되고 있는 다른 대표적인 오픈 소스 프로젝트로는 Linkerd, Conduit, Aspen, Consul이 있습니다.

 

탄력적 서비스 메시

AWS EC2나 Kubernetes 등의 클라우드 호스팅 프레임워크에서 데이터베이스와 웹사이트 파일을 동기화하는 데는 탄력적 서비스 메시가 필요합니다. 서비스 메시는 소프트웨어 애플리케이션 지원에 있어 API 및 SDN 요구 사항을 충족하기 위해 웹 서버 백엔드의 가상 머신 간 라우팅을 제어합니다. 탄력적인 웹 서버 네트워크에서 검색 및 로드 밸런싱에도 서비스 메시를 사용하는 경우, 시스템 관리자는 데이터 센터 리소스 할당을 자동화하여 운영 환경의 사용자 트래픽 요구 사항을 충족할 수 있습니다. 웹 서버를 자동으로 가동하거나 더 이상 필요하지 않을 때에는 자동으로 종료하도록 구성하여 클라우드 하드웨어 리소스를 더욱 효율적으로 사용할 수 있습니다. 실시간 모니터링 및 분석 기능을 가상 머신이나 노드 수준의 서비스 메시에 내장하는 기능을 통해 소프트웨어 개발자, 프로그래머, 웹 퍼블리셔가 마이크로 서비스를 사용하여 애플리케이션을 위한 새로운 기능을 구축할 수 있습니다.

 

마이크로 서비스 아키텍처에 서비스 메시가 필요한 이유

퍼블릭 클라우드에서는 각기 다른 런타임을 통해 여러 애플리케이션과 데이터베이스를 동시에 지원하는 컨테이너 또는 가상 머신에 걸쳐 수백만 개의 마이크로 서비스가 동시에 실행될 수 있습니다. 가상화에 기반한 멀티 테넌트 환경에서는 마이크로 서비스를 더 효과적으로 검색하고 등록하는 방식을 통해 각 마이크로 서비스의 고유한 기능을 애플리케이션에 통합하거나 API를 사용하여 다른 기기에 공유할 수 있어야 합니다. 마이크로 서비스 형식은 탄력적 웹 서버 플랫폼을 위해 특별히 설계되지 않은 경우가 많기 때문에 서비스 메시를 사용하여 컨테이너 내 운영을 관리해야 합니다. 서비스 메시는 SDN을 통해 세부적인 라우팅 및 암호화 기능을 제공하여 서로 다른 API가 웹 서버, Endpoint, 다른 기기에서 실행되는 코드 프로세스 간에 통신할 수 있도록 해 줍니다.

VMware 서비스 메시 관련 제품, 솔루션, 참고 자료

NSX Data Center

VMware NSX® Data Center는 전적으로 소프트웨어를 통해 가상화된 네트워킹 및 보안을 제공합니다.

VMware NSX Service Mesh

VMware NSX Service Mesh를 통해 서비스, 데이터, 사용자 간에 일관된 가시성과 제어가 실현됩니다.

VMware Enterprise PKS

VMware Enterprise PKS를 통해 운영 환경에서 Kubernetes를 배포, 실행, 관리할 수 있습니다.