Akamai は、オンラインビジネスをサポートして保護する、サイバーセキュリティとクラウドコンピューティングの企業です。市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバルな運用チームが、あらゆる場所で企業のデータとアプリケーションを保護する多層防御を提供しています。Akamai のフルスタック・クラウドコンピューティング・ソリューションは、世界で最も分散されたプラットフォーム上で、優れたコストパフォーマンスを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。
イベントドリブン型アーキテクチャ(EDA)では、イベントバスにより、イベントパブリッシャーとイベントサブスクライバー間のイベントデータに関するリアルタイムの通信が容易になります。
イベントとは
イベントとは、システムの状態が変化したことを指します。イベントとは、他のことが発生させる可能性のある出来事のことです。eコマース取引、見込み客の情報要求、データ漏えい、機器の機能低下、株価の変動、顧客がWebサイト上のURLをクリックするなどがイベントの例です。企業にとって、効率性、生産性、競争力を高めるためには、イベントの通知をできるだけ迅速に受け取ることが重要です。これを実現するために、ITアーキテクトはイベントドリブン型アーキテクチャを実装することを選択できます。
イベントドリブン型アーキテクチャとは?
EDAは、システムがさまざまなイベントを迅速に検知、処理、対応できるようにするソフトウェアおよびハードウェアの設計パターンです。イベントドリブン型アーキテクチャには次のものが含まれます。
- イベントパブリッシャー:イベントパブリッシャー(イベントプロデューサー)は、イベントが発生するとすぐに通知を発行するシステムです。イベントパブリッシャーには、ユーザーイベントに関するデータを送信するユーザーインターフェース、温度や動きの変化を伝えるIoTデバイス、決済完了を伝えるAPI、データベースレコードの変更を示すデータベース、タスク、ワークフロー、マイルストーンが完了したときにイベントを生成するワークフローエンジンなどがあります。
- イベントバス:イベントバスは、イベントパブリッシャーとイベントコンシューマーの間の仲介役として機能するミドルウェアです。イベントバスは、イベントパブリッシャーからイベントメッセージをリアルタイムで受信し、特定のイベントチャネルまたはイベントクラスから情報を受信するために登録したイベントコンシューマーがデータを利用できるようにします。(メッセージキュー、イベントブローカー、またはイベントストリームもこの機能を果たすことができます。)
- イベントコンシューマー:イベントコンシューマーは、イベントサブスクライバーまたはイベントリスナーとも呼ばれ、イベントに関する情報を受信して処理し、それに基づいてタスクやアクションを実行します。イベントコンシューマーのアクションには、データベースの更新、電子メールの送信、アラートの発行、注文、ワークフローのトリガー、新しいイベントの生成などがあります。
EDA のメリットとは
イベントドリブン型アーキテクチャとイベントバスは、企業のITシステムにいくつかのメリットをもたらします。
イベントバスが仲介役として機能することで、EDAシステムは非同期メッセージングとアプリケーションの疎結合を可能にします。イベントを公開するシステムは情報の送信先を知る必要はなく、イベントコンシューマーはイベントメッセージの発信元を知る必要はありません。これは、1つのアプリケーションが別のアプリケーションから情報を要求し、応答を待つ「要求/応答」アーキテクチャよりも大きな利点をもたらします。
この非同期メッセージングは、パブリッシャーやコンシューマーが情報に基づいて行動することも、次のタスクに進む前に応答を待つ必要もないことを意味します。イベントプロデューサーはイベントコンシューマーについて知る必要はなく、イベントコンシューマーはイベントプロデューサーについて知る必要はありません。プロデューサーは何かが起こったことを示すだけで、コンシューマーは関心のあるイベントをリッスンします。この疎結合により、障害に対するシステムの回復力が向上します。そのため、イベントドリブン型アーキテクチャでは、必要に応じてさまざまなコンポーネントを個別にスケーリングでき、システムはより高速かつリアルタイムの処理で大量のデータを処理できます。
EDAでのイベントバスの仕組み
イベントバスは通常、パブリッシュ・サブスクライブ・モデルで使用されます。EDAへのこのアプローチでは、イベントバスがパブリッシャーからメッセージを受信し、必要に応じて情報を変換し、メッセージを整理して順序付けし、メッセージをサブスクライバーにルーティングして消費できるようにし、メッセージが消費されたら削除します。
このプロセスの仕組みは次のとおりです。
- イベントデータを受信するために、イベントコンシューマーは、特定のイベント、イベントのタイプ、イベントクラスに関する情報をイベントバスから受信するように設定されます。
- イベントバスは、イベントパブリッシャーからメッセージを受信すると、該当するすべてのサブスクライバーにデータをルーティングします。また、企業は一定期間データを保持するようにバスを設定して、コンシューマーが自分のスケジュールでデータを取得できるようにすることもできます。
イベントバスを使用するメリットは?
イベントバスにより、イベントドリブンアーキテクチャのコンポーネントは次のことが可能になります。
- 依存関係なく通信する:これにより、ダウンタイムを発生させたりシステム全体に影響を与えたりすることなく、コンポーネントの追加や変更が容易になります。
- 水平スケーリング:イベントバスアーキテクチャにより、同じコンポーネントの複数のインスタンスを同時に展開できるため、並列処理によってシステムパフォーマンスが向上します。
- 非同期通信を処理する:イベントバスは、システム全体でイベントメッセージを容易にすることで、非同期通信を容易にし、コンポーネントが独立してアクションをトリガーできるようにします。
イベントバスのユースケースは?
イベントバスは、さまざまなアプリケーションのイベントメッセージを容易にするために使用できます。
- E コマース:Eコマースプラットフォームは、イベントバスを使用して、「商品が注文された」、「支払いを受け取った」、「パッケージ出荷済み」などのイベントを伝達します。これらのイベントにより、イベントコンシューマーは請求書の作成、確認メールの送信、在庫の追加注文などのアクションをトリガーすることができます。
- マイクロサービス:イベントバスとEDAの疎結合性は、マイクロサービス間の通信に最適なインフラです。
- IoTデータ収集:イベントバスは、環境データや通行車両や人の動きを追跡するモノのインターネット(IoT)デバイスやセンサーから大量のイベントデータを受信できます。
- 変更データの取得:イベントバスは、顧客のCRMレコードが更新されたとき、新しい登録が記録されたとき、商品が在庫切れになったときなど、データベースの変更に関するイベントを容易にすることができます。
- 統合:EDAとイベントバスは、非同期通信とシステム間の疎結合関係を通じて、多様なテクノロジーの統合を促進します。
- リアルタイムのデータ処理:イベントバスは、イベントが発生するとすぐにコンシューマーに通知することで、リアルタイムデータベースを促進します。
一般的なイベントバスサービスは何ですか?
最も人気のあるイベントバスサービスには、Java Message Service(JMS)、Apache Kafka、RabbitMQ、Microsoft Azure Event Grid、Google Cloud Pub/Sub、Amazon EventBridgeなどのAWSサービスがあります。
よくある質問(FAQ)
イベントバスは通常、リアルタイム通信を容易にするために使用されます。メッセージキューは、コンシューマーが処理できるようになるまでメッセージを保存することで、サービスとコンポーネント間の非同期通信を可能にします。メッセージブローカーは、より複雑な環境で、あるプロトコルから別のプロトコルにメッセージを変換するために使用されます。
イベントドリブン型アーキテクチャとイベントバスは、クラウドコンピューティングのサーバーレスモデルを実現するテクノロジーです。サーバーレスアーキテクチャにより、開発者は基盤となるサーバーやインフラの管理や設定を気にすることなく、コードを記述して展開できます。イベントバスはサーバーレスアーキテクチャの重要な要素であり、イベントメッセージを配信して処理することでイベント駆動型の側面を促進します。