イベントコンシューマーとは?

イベントコンシューマーは、イベントドリブン型アーキテクチャ(EDA)の 1 つのコンポーネントです。イベントコンシューマーは、イベントに関する即時情報を提供するチャネルに登録されたアプリケーション、サービス、デバイス、ユーザーのことです。イベントとは、情報の状態、プロセス、主要なビジネスシステムの変化です。それは、新規の顧客取引、在庫の変更、セキュリティ侵害、E メール受信、ショッピングカートへの商品追加、ワークフローの完了など、組織の内外で発生する可能性のあるアクションです。

イベントコンシューマーは、イベントについて通知されると、何らかのアクションを実行して対応できます。その対応は、E メールアラートの送信やユーザー入力の処理から、ワークフローのトリガー、新しいイベントの開始までいろいろです。1 つの EDA アプリケーションで、複数のイベントコンシューマーが、さまざまなイベントに関する情報受信を待つことができます。一般的なイベントコンシューマーには、請求システム、通知エンジン、CRM プラットフォーム、マイクロサービス、銀行システムなどがあります。

イベントドリブン型アーキテクチャとは?

イベントドリブン型アーキテクチャとイベント・コンシューマー・コンポーネントを示す図。 イベントドリブン型アーキテクチャとイベント・コンシューマー・コンポーネントを示す図。

イベントドリブン型アーキテクチャは、システムがイベントに関する情報の検知、処理、応答、共有をリアルタイムでできるようにするソフトウェア設計パターンです。EDA システムの最大のメリットは、イベントが発生するとすぐにデータを伝達できることで、イベントコンシューマーが即座に行動を起こすことができます。

イベントドリブン型アーキテクチャの最も重要な機能の 1 つは、イベントを生成して処理するシステムが切り離されているか、緩く結合されていることです。たとえば、イベントを消費するシステムは、イベントを生成するシステムと相互依存しないため、情報の送信元を知る必要がありません。つまり、1 つのサービスに障害が発生しても、他のサービスで問題が発生したり、中断が起きたりすることはありません。

非同期メッセージングは、EDA のもう 1 つの重要な特性です。イベントドリブン型アーキテクチャのコンポーネントは、「リクエストして応答」の形(システムは応答を待ってアクションを実行)で伝えるのではなく、非同期に通信し、他のコンポーネントからの情報を待たずに前に進みます。そのため、EDA システムはリアルタイム処理や大量のデータの迅速な処理に優れています。コンポーネントがイベントに反応して、データを即座に処理できるからです。

EDA におけるイベントコンシューマーの役割は?

イベントコンシューマーは、イベントドリブン型アーキテクチャのいくつかの重要な要素の 1 つです。EDA のコンポーネントは以下のとおりです。

  • イベント:イベントとは、何かが発生したこと、または状態が変化したことを示すシグナルです。
  • イベントプロデューサー:イベントプロデューサーとは、イベントを生成して伝える IoT デバイス、ユーザーインターフェース、データベース、外部 API、ワークフローエンジン、クラウドサービス、アプリケーションモニターなどのテクノロジーなどのシステムのことです。
  • イベントメッセージ:イベントメッセージ(イベント通知)には、イベントに関する情報が含まれます。通常は JSON または YAML です。
  • イベントコンシューマー:イベントコンシューマーはイベントサブスクライバーとも呼ばれ、イベントを「リッスン」または受信し、受信した情報に基づいてアクションを開始します。イベントコンシューマーは、セキュリティチームへの侵害可能性の警告、インベントリレベルの更新、顧客への確認メールの送信、ワークフローのトリガーなどのタスクを実行できます。
  • イベントルーター:イベントルーターは、プロデューサーとコンシューマー間の仲介役として機能することで、非同期メッセージングと疎結合アーキテクチャを実現します。ルーターには、イベントバス、メッセージキュー、イベントブローカー、イベントストリームなどがあり、プロデューサーからイベントデータを受信して、特定のイベントチャネルに登録されているコンシューマーに渡します。
  • イベントプロセッサー:イベントプロセッサーは、イベントコンシューマーが受信したイベントデータを管理し、新しいイベントを開始したり、タスクを起動したり、アクションを実行したりするルールを適用します。イベントプロセッサーは、イベントデータのルーティング、フィルタリング、変換も行います。

イベントコンシューマーを使用するメリットは?

すべての組織、事業運営、ビジネスプロセスは、イベントによって推進され、影響を受けます。イベントの通知や対応が早ければ早いほど、効率性、生産性、競争力が向上します。イベントコンシューマーとイベントドリブン型アーキテクチャを使用することで、イベントが即座に通知され、企業とその顧客にメリットがあるアクションを即座に実行できます。

イベントドリブン型アーキテクチャは、以下を可能にします。

  • データのリアルタイム処理。EDA の非同期メッセージングとは、イベントが発生すると、応答を待つことなく、コンポーネントがすぐに伝えて処理できることです。
  • 実際のイベントに迅速に対応。イベントドリブン型アーキテクチャにより、イベント発生時に自動的にすぐにアクションを実行することで、応答性が向上します。
  • 拡張が簡単。EDA コンポーネントは分離または疎結合されているため、ワークロードの要求に応じて個々のコンポーネントを個別にスケールアップまたはスケールダウンできます。
  • ダウンタイムの短縮。EDA は、1 つのサービスまたはシステムに問題が発生しても他のコンポーネントが機能し続けることができるため、回復力や耐障害性が向上します。
  • 統合と相互運用性の向上。イベントベースの通信は切り離されているか、緩く結合されているため、多様なシステムが連携して情報を共有しやすくなります。
  • 速度の向上。EDA では各コンポーネントが互いを待つ必要がないため、システムを高速化できます。

イベントコンシューマーがイベントを受信する方法は?

イベントの公開と利用には、主に 2 つのモデルがあります。

公開/サブスクライブ(pub/sub)

このモデルは、イベント・メッセージング・モデルとも呼ばれ、イベントコンシューマーがさまざまなトピックに登録し、特定のイベントに関する情報を受信できます。イベントプロデューサーがイベントを公開すると、その情報がイベントブローカーに送信されます。イベントブローカーは、必要に応じて情報を変換し、そのデータをキューに格納して保存し、イベントコンシューマーにメッセージを送信します。コンシューマーがメッセージを受信すると、ブローカーによって削除されます。

よく知られている pub/sub サービスには、Apache Kafka、Confluent、Amazon の Simple Notification Service(SNS)、Amazon の Simple Queue Service(SQLS)、Azure Web Pub/Sub、GCP の Pub/Sub などがあります。

 

イベント・ストリーミング・モデル

このアプローチでは、イベントコンシューマーは、イベントプロデューサーがブローカーに送信するストリーミング・イベント・メッセージに登録します。pub/sub とは対照的に、メッセージは永続的であり、一定期間保存されて保持されます。つまり、コンシューマーはいつでもストリームから、イベントメッセージを遡ってアクセスできます。また、pub/sub のように公開されたすべてのメッセージを受信するのではなく、ストリームから特定のイベントのみを受信するようにコンシューマーを設定することもできます。イベント・ストリーミング・モデルでは、イベントコンシューマーが一連のイベントの情報に基づいて取り込んでアクションを開始する複雑なイベント処理も可能です。

イベントストリーミングを提供している企業には、AWS EventBridge、AWS Kinesis、Azure Stream Analytics、GCP Dataflow、Apache Beam などがあります。

イベントコンシューマーがサブスクライブするイベントの種類は?

イベントコンシューマーは、さまざまなイベントデータを取り込み、アクションをとります。

  • E コマース:イベントドリブン型アーキテクチャは E コマースシステムの柱であり、シームレスな体験を提供するために、顧客の行動に即座に対応することが不可欠です。
  • サイバーセキュリティ:イベントコンシューマーは、セキュリティイベントをリアルタイムで処理して、セキュリティチームにアラートを提供したり、悪性ファイルをブロックしたり、疑わしいトラフィックを隔離したりできます。
  • マイクロサービス:EDA は、切り離された通信、モジュール性、スケーラビリティ、耐障害性を備えているため、マイクロサービス間の通信に最適なアーキテクチャです。
  • データ分析:多くのイベントコンシューマーは、リアルタイムデータを処理して分析し、パターンを明らかにし、膨大な量のデータから知見を引き出します。金融取引の異常を警告するように設計された EDA テクノロジーの一般的な例は、不正検知システムです。
  • 監視:EDA システムは、システムリソースの健全性監視に最適です。予測メンテナンスや緊急の介入が必要な場合に、システム管理者に警告します。
  • モノのインターネット(IoT):EDA システムは IoT デバイスによって生成される膨大な量のデータを簡単に取り込んで監視し、リアルタイムの監視と分析を提供できます。
  • 株式市場:取引業界におけるイベントコンシューマーは、自動取引戦略に不可欠です。株式市場内の急速に変化する状況やイベントに基づいて売買注文を実行します。
  • ワークフロー:EDA システムは、さまざまなイベントに基づいてプロセスとタスクをトリガーすることで、ワークフローの自動化を可能にします。

よくある質問(FAQ)

「イベントコンシューマー」、「イベントリスナー」、「イベントサブスクライバー」という用語は、多くの場合、同義語と見なされます。しかし、「イベントコンシューマー」はイベントを処理するあらゆるシステムに幅広く適用されるとも言えます。「イベントサブスクライバー」は通常、イベントブローカーやイベントチャネルを表すときに使用され、「イベントリスナー」はプログラミングフレームワークやライブラリに関連して使用されることがよくあります。

イベントコンシューマーは、導入されている特定のテクノロジースタック、メッセージングプラットフォーム、フレームワークに応じて、さまざまな方法で設定できます。Apache Kafka、RabbitMQ、AWS SNS/SQLS などのミドルウェアやメッセージングシステム、Spring、.NET、NodeJS ライブラリなどのプログラミングフレームワーク、AWS Lambda や Azure Functions などのクラウドプラットフォーム、Kubernetes などのコンテナ・オーケストレーション・プラットフォーム、Drupal、Symfony、Microsoft Dynamics 365 Business Central などのプラットフォームで、イベントコンシューマーを設定できます。

Akamai が選ばれる理由

Akamai は、オンラインビジネスをサポートして保護する、サイバーセキュリティとクラウドコンピューティングの企業です。市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバルな運用チームが、あらゆる場所で企業のデータとアプリケーションを保護する多層防御を提供しています。Akamai のフルスタック・クラウドコンピューティング・ソリューションは、世界で最も分散されたプラットフォーム上で、優れたコストパフォーマンスを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。

Akamai の全セキュリティソリューションをご紹介