Eventarc를 사용하면 기본 인프라를 구현, 맞춤설정 또는 유지관리할 필요 없이 이벤트 기반 및 메시지 기반 아키텍처를 빌드할 수 있습니다.
Eventarc는 Eventarc Advanced 및 Eventarc Standard의 두 가지 버전으로 제공됩니다. 두 버전 모두 소스에서 타겟으로 이벤트를 비동기식으로 라우팅할 수 있는 확장 가능한 서버리스 완전 관리형 이벤트 솔루션을 제공합니다. 자세한 내용은 Eventarc Advanced 또는 Eventarc Standard 선택하기를 참고하세요.
Eventarc Advanced는 애플리케이션, 서비스, 엔드포인트 전반에서 메시지를 통해 이벤트 데이터의 처리, 조정, 전송을 간소화하도록 설계되었습니다. Eventarc Advanced를 사용하면 시스템에서 발생하는 이벤트를 수집하여 중앙 버스에 게시할 수 있습니다. 관심 있는 서비스는 등록을 만들어 특정 메시지를 구독할 수 있습니다. 버스와 파이프라인을 사용하여 여러 소스의 이벤트를 실시간으로 라우팅하고, 여러 대상에 게시하고, 원하는 경우 타겟에 전송하기 전에 이벤트를 변환할 수 있습니다.
Eventarc Advanced는 복잡한 이벤트 및 메시지 니즈가 있는 조직, 특히 수많은 Pub/Sub 주제, Kafka 큐 또는 기타 서드 파티 메시지 시스템의 관리와 관련하여 고심하고 있는 조직에 적합합니다. Eventarc Advanced는 관리자에게 향상된 중앙 집중식 가시성과 제어 기능을 제공하여 조직이 여러 프로젝트에 걸쳐 여러 팀을 연결할 수 있도록 지원합니다.
Google Cloud 콘솔, Google Cloud CLI를 사용하는 명령줄 또는 Eventarc API를 통해 Eventarc Advanced를 관리할 수 있습니다.
주요 개념
버스는 이벤트의 검색 가능한 엔드포인트를 제공하며 제공업체에서 게시한 모든 이벤트를 수신하여 0개 이상의 대상에 전송하는 라우터입니다. 버스를 사용하면 시스템을 통한 메시지 흐름을 중앙화, 모니터링, 추적할 수 있습니다. 버스를 사용하여 여러 소스에서 여러 타겟으로 이벤트를 라우팅할 수 있습니다.
버스에 도착하는 메시지는 특정 버스에서 수집된 이벤트의 구독을 나타내는 등록의 기준에 따라 평가됩니다. 이벤트는 이러한 특정 이벤트를 구독한 소비자에게 라우팅됩니다. 등록을 통해 Common Expression Language (CEL)를 사용하여 이벤트 속성을 기반으로 이벤트를 일치시켜 세분화된 액세스 제어 정책을 정의할 수 있습니다. 등록을 통해 일치하는 이벤트가 전송될 파이프라인을 지정할 수도 있습니다.
파이프라인은 버스와 대상 간의 전송 중개자입니다. 파이프라인은 대상 대상을 지정하고 대상에 전송하기 전에 일치하는 이벤트를 변환하는 옵션도 제공합니다. 여러 페이로드 형식을 지원하고 소스 또는 대상 서비스를 수정하지 않고도 이벤트 데이터를 즉시 조정할 수 있도록 하여 다양한 이벤트 구조를 처리할 수 있습니다.
주요 기능
Eventarc Advanced는 대상 애플리케이션의 여러 사용 사례를 지원합니다. 주요 기능은 다음과 같습니다.
대규모 애플리케이션 통합: 여러 서비스와 애플리케이션을 연결하여 다양한 이벤트 형식과 스키마 간에 비동기 통신을 지원할 수 있습니다.
AI 및 분석을 위한 이벤트 스트리밍: IoT 기기 및 AI 워크로드의 데이터 유입을 처리하고, 이벤트를 필터링, 변환, 보강한 후 분석 파이프라인에 제공할 수 있습니다.
하이브리드 및 멀티 클라우드 배포: 온프레미스 시스템 및 기타 클라우드 제공업체와 통합하여 Google Cloud 외부로 이벤트 기반 아키텍처를 확장할 수 있습니다. Eventarc Advanced를 사용하면 Google 소스 및 이벤트의 직접 게시자 등 다양한 소스의 이벤트를 라우팅할 수 있습니다.
지역성 이해
Eventarc Advanced는 완전히 지역별 서비스입니다. 모든 Eventarc Advanced 트래픽과 데이터가 동일한 리전에 있어야 합니다. 예를 들어 등록 및 파이프라인은 버스와 동일한 리전의 데이터만 읽고 처리할 수 있습니다. 여러 리전에서 여러 버스에 이벤트를 게시하고 여러 리전을 아우르는 서비스 경계 내에서 네트워크를 구성하여 리전 간 지원을 실행할 수 있습니다.
프로젝트 레이아웃
모든 Eventarc 리소스는 Google Cloud 프로젝트에 속해야 합니다. 하지만 제공자 (이벤트 소스), 버스 (관리자), 파이프라인 (이벤트 대상)이 동일한 프로젝트에 있어야 하는 것은 아닙니다.
Identity and Access Management (IAM) 권한을 조합하여 리소스 사용량을 제어하고, CEL을 사용하는 데이터에 대한 세분화된 액세스 권한, 네트워크 첨부파일, 서비스 경계를 사용하여 다양한 인그레스 및 이그레스 요구사항에 맞는 네트워킹 및 보안 요구사항을 지원할 수 있습니다.
이벤트
이벤트는 일치하는 항목과 해당 컨텍스트를 나타내고 리소스 또는 환경의 변경사항을 나타내는 데이터 레코드입니다. 이벤트는 다른 이벤트와 별개로 커뮤니케이션의 개별 단위입니다. 예를 들어 이벤트는 데이터베이스의 데이터 변경, 스토리지 시스템에 추가된 파일, 예약된 작업을 나타낼 수 있습니다.
이벤트는 상태가 변경될 때 구성요소에서 내보내는 메시지이기도 합니다. 이벤트가 발생하면 메시지가 이벤트 인프라로 전송되며 여기에서 소비자가 메시지를 검색할 수 있습니다. 이벤트 기반 아키텍처의 맥락에서 이벤트라는 용어는 발생 자체 (메시지를 생성하기 위해 실제로 발생한 일)가 아닌 이벤트를 전달하는 메시지를 나타내는 데 자주 사용됩니다.
이벤트 유형
Eventarc Advanced는 Google 소스에서 직접 수신되는 이벤트를 지원합니다.
자세한 내용은 Eventarc에서 지원되는 Google 이벤트 유형을 참고하세요.
이벤트 제공자 및 대상
이벤트는 Eventarc Advanced에서 이벤트 제공업체에서 수집하여 이벤트 대상으로 라우팅합니다. 각 Eventarc Advanced 파이프라인은 라우팅된 메시지의 대상으로 하나의 대상만 지정할 수 있습니다.
지원되는 제공업체에는 Google 제공업체와 이벤트의 직접 게시자가 포함됩니다. 지원되는 대상에는 Cloud Run, Cloud Run 함수, Virtual Private Cloud 네트워크에 호스팅된 HTTP 엔드포인트, 워크플로, 다른 Eventarc 고급 버스가 포함됩니다.
자세한 내용은 이벤트 제공자 및 대상을 참조하세요.
이벤트 형식 및 라이브러리
Eventarc는 제공자에 관계없이 바이너리 콘텐츠 모드에서 HTTP 요청을 사용하여 이벤트를 CloudEvents 형식으로 타겟 대상에 전달합니다. CloudEvents는 이벤트 메타데이터를 일반적인 방식으로 설명하기 위한 사양입니다.
Cloud Run 함수, Cloud Run과 같은 타겟 대상은 HTTP 형식의 이벤트를 소비합니다. Workflows 대상의 경우, Workflows 서비스는 이벤트를 JSON 객체로 변환하고 이벤트를 워크플로 실행에 런타임 인수로 전달합니다.
이벤트 메타데이터를 설명하는 표준적인 방법을 사용하여 일관성, 접근성, 이동성을 보장합니다. 이벤트 소비자는 이러한 이벤트를 직접 읽을 수 있으며 여러분은 C++, C#, Go, Java, Node.js, PHP, Python, Ruby 등 다양한 언어로 Cloud 클라이언트 라이브러리를 사용하여 이벤트를 읽고 파싱할 수 있습니다. 언어별 CloudEvents SDK도 있습니다.
모든 이벤트의 HTTP 본문 구조는 Google CloudEvents GitHub 저장소에서 제공합니다.
신뢰성 및 전송
순차 전달, 선입 선출 전송을 보장하지 않습니다. 엄격한 순서를 지정하면 전송 계층인 Pub/Sub와 일치하는 Eventarc의 가용성 및 확장성 기능이 약화될 수 있습니다. 자세한 내용은 메시지 순서 지정을 참조하세요.
지연 시간과 처리량이 최선의 방법이며, 게시 또는 이그레스 트래픽에 다른 리전이 포함되는지 여부, 특정 서비스의 구성, Google Cloud 리전의 리소스에 대한 네트워크 부하 등 여러 요인에 따라 달라집니다.
Eventarc에 일반적으로 적용되는 사용 할당량 및 한도가 있습니다.
이벤트 재시도 정책
Eventarc Advanced에서 설정하는 기본 메시지 보관 기간은 지수 백오프 지연이 있는 24시간입니다.
Eventarc Advanced는 재시도할 수 있는 오류를 처리하기 위해 지수 백오프 지연을 사용합니다. 지연 시간은 1초로 시작하며, 시도할 때마다 지연 시간이 두 배로 늘어납니다 (최대 60초 및 5회 시도).
자세한 내용은 이벤트 재시도를 참고하세요.
중복 일정
중복 이벤트가 이벤트 핸들러에 전송될 수 있습니다. CloudEvents 사양에 따라 source
속성과 id
속성의 조합은 고유한 것으로 간주되므로 동일한 조합을 갖는 모든 이벤트는 중복으로 간주됩니다.
일반적인 권장사항에 따라 멱등성 이벤트 핸들러를 구현해야 합니다.
관측 가능성
Eventarc, Cloud Run, Cloud Run 함수, Pub/Sub, Workflows의 상세 로그는 Cloud 감사 로그에서 확인할 수 있습니다.