Eventarc Advanced の概要

Eventarc を使用すると、基盤となるインフラストラクチャを実装、カスタマイズ、またはメンテナンスすることなく、イベント ドリブン アーキテクチャとメッセージ ベースのアーキテクチャを構築できます。

Eventarc には、Eventarc AdvancedEventarc Standard の 2 つのエディションがあります。どちらのエディションも、スケーラブルでサーバーレスのフルマネージド イベント ソリューションを提供します。このソリューションを使用すると、ソースからターゲットにイベントを非同期でルーティングできます。詳細については、Eventarc Advanced または Eventarc Standard を選択するをご覧ください。

Eventarc Advanced は、アプリケーション、サービス、エンドポイント間のメッセージを介したイベントデータの取り込み、オーケストレーション、配信を簡素化するように設計されています。Eventarc Advanced を使用すると、システムで発生したイベントを収集して、中央のバスに公開できます。関心のあるサービスは、登録を作成して特定のメッセージをサブスクライブできます。バスとパイプラインを使用して、複数のソースからのイベントをリアルタイムでルーティングし、複数の宛先に公開できます。また、必要に応じて、ターゲットに配信する前にイベントを変換することもできます。

Eventarc Advanced は、複雑なイベント処理やメッセージングのニーズがある組織に最適です。特に、多数の Pub/Sub トピックや Kafka キュー、あるいはサードパーティのメッセージング システムの管理に取り組んでいる組織に最適です。Eventarc Advanced は、管理者向けに一元化された可視性と制御機能を強化することで、組織がさまざまなプロジェクトにわたって複数のチームを接続できるようにします。

Eventarc Advanced は、 Google Cloud コンソール、Google Cloud CLI を使用したコマンドライン、または Eventarc API を使用して管理できます。

Eventarc Advanced を使用すると、さまざまなサービス、アプリ、システム間でメッセージの受信、フィルタリング、変換、ルーティング、配信を行うことができます。
Eventarc Advanced を使用すると、異なるサービス、アプリ、システム間でメッセージの受信、フィルタリング、変換、ルーティング、配信を行うことができます(図をクリックして拡大)。

主なコンセプト

  1. バスは、イベントの検出可能なエンドポイントを提供し、プロバイダによって公開されたすべてのイベントを受信して、0 個以上の宛先に配信するルーターです。バスを使用すると、システムを通過するメッセージのフローを一元化、モニタリング、トレースできます。バスを使用すると、複数のソースから複数のターゲットにイベントをルーティングできます。

  2. バスに到着したメッセージは、特定のバスによって収集されたイベントのサブスクリプションを表す登録の基準に従って評価されます。イベントは、それらの特定のイベントをサブスクライブしているコンシューマーに転送されます。登録により、Common Expression Language(CEL)を使用して、イベント属性に基づいてイベントを照合することで、きめ細かいアクセス制御ポリシーを定義できます。登録では、一致したイベントの配信先となるパイプラインを指定することもできます。

  3. パイプラインは、バスと宛先の間の配信仲介です。パイプラインはターゲットの宛先を指定します。また、一致したイベントを宛先に配信する前に変換するオプションも提供されます。複数のペイロード形式をサポートし、ソースまたはターゲット サービスを変更せずにイベントデータをその場で適応できるため、さまざまなイベント構造を処理できます。

主な機能

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 パイプラインで、ルーティングされたメッセージのターゲットとして指定できる宛先は 1 つだけです。

サポートされているプロバイダには、Google プロバイダとイベントの直接パブリッシャーが含まれます。サポートされている宛先には、Cloud Run、Cloud Run functions、Virtual Private Cloud ネットワークでホストされている HTTP エンドポイント、Workflows、別の Eventarc Advanced バスがあります。

詳細については、イベント プロバイダと宛先をご覧ください。

イベントの形式とライブラリ

Eventarc は、プロバイダに関係なく、バイナリ コンテンツ モードで HTTP リクエストを使用して、ターゲットの宛先に CloudEvents 形式でイベントを配信します。CloudEvents は、イベント メタデータを一般的な方法で記述するための仕様です。

Cloud Run functions や Cloud Run などの宛先は、HTTP 形式のイベントを使用します。Workflows の宛先の場合、Workflows サービスがイベントを JSON オブジェクトに変換し、ランタイム引数としてワークフロー実行に渡します。

標準的な方法でイベント メタデータを記述すると、整合性、ユーザー補助、ポータビリティが維持されます。イベント コンシューマーはこれらのイベントを直接読み取ることも、さまざまな言語(C++、C#、Go、Java、Node.js、PHP、Python、Ruby など)で Cloud クライアント ライブラリを使用してイベントを読み取り、解析することもできます。言語固有の CloudEvents SDK もあります。

すべてのイベントの HTTP 本文の構造は、Google CloudEvents GitHub リポジトリで入手できます。

信頼性と配信

配信で先着順や先入れ先出しの保証はありません。厳密な順序付けを行うと、Eventarc のトランスポート層である Pub/Sub の可用性とスケーラビリティの機能が低下するので注意してください。詳細については、メッセージの順序指定をご覧ください。

レイテンシとスループットはベスト エフォートです。これらは、パブリッシュ トラフィックまたは下り(外向き)トラフィックに異なるリージョンが含まれるかどうか、特定のサービスの構成、 Google Cloud リージョン内のリソースのネットワーク負荷など、複数の要因によって変わります。

Eventarc には使用量の割り当てと上限があります。

イベントの再試行ポリシー

Eventarc Advanced によって設定されたデフォルトのメッセージ保持期間は 24 時間です(指数バックオフ遅延があります)。

Eventarc Advanced は、再試行可能なエラーを処理するために指数バックオフ遅延を使用します。これは 1 秒の遅延から始まり、試行が失敗するたびに遅延が 2 倍になります(最大 60 秒、5 回の試行)。

詳細については、イベントの再試行をご覧ください。

重複するイベント

重複するイベントがイベント ハンドラに配信される場合があります。CloudEvents 仕様により、source 属性と id 属性の組み合わせは一意と見なされるため、同じ組み合わせを持つイベントは重複と見なされます。一般的なベスト プラクティスとして、べき等イベント ハンドラを実装する必要があります。

オブザーバビリティ

Google Cloud Observability は、モニタリング、ロギング、診断ツールを提供します。これらのツールを使用すると、Eventarc のアクティビティと増加をモニタリングして分析し、アプリケーションの動作、健全性、パフォーマンスを把握できます。詳細については、Eventarc のオブザーバビリティをご覧ください。

EventarcCloud RunCloud Run functionsPub/SubWorkflows の詳細ログは、Cloud Audit Logs から取得できます。

コンプライアンス標準

Eventarc は、これらの認証と標準に準拠しています。

次のステップ