Jump to section

이벤트 메쉬(Event Mesh)란 무엇일까요?

URL 복사

이벤트 메쉬는 분산된 환경 전반에 걸쳐 애플리케이션에 알림을 전송하기 위한 동적 인프라입니다. 이벤트 기반 아키텍처(EDA)의 맥락에서 이벤트는 알림을 생성하는 시스템의 변경, 작업 또는 관찰 결과이며, 생성된 알림은 이벤트에 각기 반응하는 다른 시스템으로 전송됩니다. 이벤트 메쉬는 이러한 연결을 가능하게 합니다.

이벤트 메쉬에 대해 설명하려면 '이벤트'를 경유한 통신에 기반을 둔 소프트웨어 아키텍처인 이벤트 기반 아키텍처(EDA)에 대해 먼저 살펴볼 필요가 있습니다. 이벤트는 알림을 생성하는 시스템의 변경, 작업 또는 관찰 결과이며, 생성된 알림은 이벤트에 각기 반응하는 다른 시스템으로 전송됩니다.

예를 들어 이벤트는 고객 요금 청구 주소 변경, 새로운 주문과 같은 작업, 배터리 충전 수준이나 센서의 온도 측정값 관찰 결과로 트리거될 수 있습니다. 각 이벤트는 다른 애플리케이션이 사용할 정보를 나타냅니다. 여러 소비자가 동일한 메시지를 수신하여 자기만의 방식으로 관련 데이터를 활용해 특정 작업을 완수할 수 있습니다.

EDA의 '비동기식' 이벤트 기반 통신은 전통적인 "동기식" 통신보다 이러한 유형의 데이터 전송에 더 적합합니다. 동기식 메시징에서 두 애플리케이션은 직접 통신하는데 이때 HTTP 애플리케이션 프로그래밍 인터페이스(API)를 통해 통신하는 경우가 가장 흔하며, 두 서비스 모두 사용 가능하고 응답성이 높아야 통신할 수 있습니다. 서비스를 사용할 수 없는 경우 메시지를 처리하지 못해 전체 시스템이 멈추거나 심지어 다운될 수 있습니다. 동기식 전송은 기업 전체의 여러 시스템에 대량의 정보를 전송하기에 적합하지 않은 경우가 많습니다. 

이와 반대로 '비동기식' 통신은 이벤트 기반이므로 여러 애플리케이션이 동시에 거의 실시간으로 빠르게 통신할 수 있습니다. 시스템이 이벤트를 수신할 수 없더라도 시스템을 사용할 수 있게 되면 EDA의 비동기식 속성상 알림이 제공됩니다.

EDA는 이벤트 생성자와 사용자 간 런타임 결합이 필요 없으므로 EDA는 현대적인 분산형 애플리케이션에 최적의 솔루션입니다.

기업 전체에서는 1분마다 수백 건에서 수천 건에 이르는 이벤트가 생성될 수 있으므로, 조직은 클라우드와 온프레미스가 분산된 방식으로 결합된 환경 전반에 배포된 다양한 애플리케이션에 대용량 이벤트를 효과적으로 제공할 수 있는 방법이 필요합니다. 이벤트 메쉬는 이벤트 기반 기업에 이러한 기능을 제공합니다.

이벤트 메쉬는 상호 연결된 '이벤트 브로커' 네트워크를 통해 생성자에서 사용자에게 이벤트를 전달하는 동적 인프라입니다. 이벤트 메쉬는 환경에 구애받지 않으며 애플리케이션이 퍼블릭, 프라이빗, 하이브리드 클라우드, PaaS, 사물 인터넷(IoT), 심지어 클라우드가 아닌 환경까지 어디에 배포되든 이벤트 라우팅을 구성할 필요 없이 이기종 클라우드 플랫폼 전반에서 이벤트를 제공할 수 있도록 설계되었습니다. 

이벤트 메쉬를 통해 게시자와 구독자는 플랫폼의 네이티브 이벤트 메커니즘을 사용할 수 있습니다. 따라서 쿠버네티스 클러스터의 Node.js 개발자는 이벤트를 게시할 수 있고, 다른 클러스터의 Java 개발자는 이 이벤트를 구독할 수 있습니다. 모든 사용자는 애플리케이션 유형, 애플리케이션 빌드의 기반이 된 개발 플랫폼, 메시징에 사용된 스트리밍 기술 또는 애플리케이션 호스팅의 기반이 되는 클라우드 유형에 관계없이 이 이벤트를 사용할 수 있습니다.

이벤트 메쉬는 환경에 관계없이 여러 애플리케이션 간에 정보를 제공할 수 있어, 레거시 애플리케이션, 데이터베이스 및 장치, 최신 마이크로서비스 기반 및 클라우드 네이티브 애플리케이션 간의 느슨히 결합된 통합을 지원합니다.

또한 이벤트 메쉬는 다양한 메시징 서비스 옵션을 이용해 작업하고 이러한 옵션 간 변환이 가능합니다. Apache Kafka는 EDA 메시징에 널리 사용되며, 특히 클라우드 네이티브 개발자에게 인기가 많습니다. 또한 이벤트 메쉬는 Knative Eventing, Cloud Events, HTTP, AMQP 등 다른 메시징 옵션도 지원해야 합니다.

기업이 이벤트 기반 아키텍처를 완전히 수용한 경우 이벤트 메쉬는 EDA 여정의 성숙 단계를 나타냅니다. 비동기식 상호 작용과 이벤트 기반 아키텍처 패턴은 새로운 것은 아니지만 이벤트 메쉬는 차세대 기업의 통신 인프라가 될 통합에 대한 새롭고 획기적인 접근 방식을 제공합니다.

서비스 메쉬와 이벤트 메쉬는 이름이 비슷하여 혼동하기 쉽습니다. 하지만 이벤트 메쉬는 서비스 메쉬와는 다릅니다. 이벤트 메쉬가 비동기식인 반면, 서비스 메쉬는 더 전통적인 동기식 요청-응답 메시징을 지원합니다.

 

이벤트 메쉬와 서비스 메쉬는 서로 다르지만 효과적인 두 가지 통신 옵션을 제공하여 기업 내에서 서로를 보완합니다. 이를 통해 개발자는 설계 중인 애플리케이션에 가장 적합한 것을 유연하게 선택할 수 있습니다. 하지만 서비스 메쉬는 비동기식 이벤트 기반 통신을 지원하지 않기 때문에 이벤트 메쉬를 대체할 수는 없습니다. 그래도 여전히 단일 클러스터 배포에는 가장 적합한 방법입니다.

기업의 요구와 이벤트 기반 아키텍처의 기대 효과를 실현하려면 이벤트 메쉬는 다음과 같은 필수 기능을 제공해야 합니다.

  • Kafka, Knative Eventing, HTTP, AMQP 등 다양한 메시징 서비스 지원
  • 메시지를 안정적으로 전달하기 위한 내결함성(예: 네트워크 장애 자동 복구, 전달할 수 없는 메시지의 대체 대상)
  • 서로 다른 이벤트, 애플리케이션, 메시징 플랫폼 간 멀티프로토콜 브리지 지원
  • 온프레미스 및 멀티클라우드 배포 지원
  • 멀티캐스트(모든 구독자가 각 메시지의 사본 수신) 또는 애니캐스트(하나의 구독자가 생성된 각 메시지의 사본 수신) 주소에 대한 지원
  • 이벤트 메시지의 안전한 연결 및 전송

이벤트 메쉬 활용 사례

이벤트 기반 아키텍처는 이벤트 메쉬와 함께 다양한 애플리케이션 스택을 사용해 복잡한 멀티클라우드 광역 분산 토폴로지 전반에 걸쳐 배포된 광범위한 활용 사례를 지원할 수 있습니다. 다음은 여러 가지 잠재적 이벤트 메쉬 활용 사례 중에서 뽑은 샘플입니다.

마이크로서비스 통합

이벤트 메쉬는 레거시 기술을 비롯해 마이크로서비스 기반 애플리케이션을 서로 손쉽게 연결합니다.

전자상거래

이벤트 메쉬는 트랜잭션을 신속히 처리할 수 있도록 지원하여 웹사이트 및 애플리케이션을 통한 빠르고 안정적인 고객 상호 작용을 보장합니다.

고객 지원

이벤트 메쉬는 고객 상호 작용 데이터를 신속히 제공하도록 지원하므로, 지원 팀은 고객의 요청에 실시간으로 응답하고 맞춤형 경험을 구현할 수 있습니다.

금융 서비스

이벤트 메쉬는 금융 서비스 제공업체가 실시간 트레이딩 데이터를 동기화하는 데 걸리는 대기 시간을 단축할 수 있도록 지원합니다. 또한 이벤트 메쉬는 의심스러운 트랜잭션에 대한 정보를 실시간으로 전달하여 사기를 감지할 수 있도록 해줍니다.

IoT 연결성

이벤트 메쉬는 백엔드 시스템에 안정적이고 확장 가능한 사물 인터넷(IoT) 연결을 지원하므로 거의 모든 센서에서 메트릭을 처리할 수 있습니다.

이벤트 메쉬는 비즈니스에 기본적으로 다음과 같은 이점을 제공합니다.

실시간 응답성

비즈니스 성공 여부는 변화에 대응하는 능력에 달려 있습니다. 이벤트 메쉬의 주요 이점 중 하나는 데이터를 이벤트 기반 아키텍처를 통해 이벤트 스트림으로 실시간 제공하므로 때맞춰 대응할 수 있다는 것입니다. 이벤트 메쉬는 이벤트 생성자와 이벤트 소비자 간 최단 경로를 결정하여 메시징 대기 시간을 사실상 제거하므로 매우 효율적입니다. 이를 통해 비즈니스 이해관계자가 긴급한 의사 결정을 요구하는 중대한 문제에 민첩하고 신속히 대응할 수 있도록 합니다.

고객 경험 개선

이벤트 메쉬는 고객 대면 팀과 전자 상거래 기술에 사용하는 데이터를 실시간으로 제공하도록 지원하므로 궁극적으로 조직은 서비스를 통해 고객 경험을 개선할 수 있습니다.

운영 비용 절감

이벤트 메쉬는 제조, 영업, 재고, 배송 상황을 실시간으로 파악할 수 있게 해주므로 조직은 운영을 최적화하고, 효율성을 높이고, 비용을 줄일 수 있습니다.

개발자 생산성

애플리케이션 개발자는 다양한 유형의 환경, 메시징 시스템, 프로토콜에 구애받지 않는 이벤트 메쉬의 지원을 받아 최적의 기술을 사용해 비즈니스 로직을 구현하는 데 집중할 수 있습니다. 이를 통해 개발자는 개발 환경, 메시징 플랫폼, 클라우드 유형에 대한 제한 없이 복잡한 데이터 분산 네트워크를 개발하지 않고도 자유롭게 혁신 역량을 발휘할 수 있습니다.

추가 자료

문서

통합이란?

통합에 대해 알고 싶으신가요? 통합의 정의와 통합 방법, 오픈소스로 통합하는 것이 훨씬 효율적인 이유 등을 알아보세요.

문서

Apache Kafka란 무엇일까요?

Apache Kafka는 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산 데이터 스트리밍 플랫폼입니다.

문서

API란?

API는 애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)를 뜻합니다.

통합에 대한 자세한 내용

제품

배포 및 애플리케이션 개발을 가속화합니다.

비즈니스를 혁신하고 끊임없이 변화하는 시장의 요구 사항을 충족하세요.

하이브리드 클라우드 경험을 간편화하고 클라우드 네이티브 애플리케이션 배포의 운영 비용과 복잡성을 줄입니다.

리소스

E-book

애자일 인프라의 생성과 기업의 적응력 향상

자세히 알아보기

교육

무료 교육 과정

Red Hat 애자일 인테그레이션 기술 개요