Amazon EventBridgeとは
Amazon EventBridgeとは、AWSで提供されるイベント駆動型のサーバレスサービスを表します。自社で開発したアプリケーションやAWSの提供サービス、サードパーティ製ソフトウェアなどから、イベントを取り込んでアプリケーションを実行できるようにします。
【参考】:Amazon EventBridge
イベント駆動型とは
イベント駆動型とは、イベントの発信や応答に応じて必要なアプリケーションを起動する形式を指し、疎結合のアプリケーション連携の形式を表します。ここで言うイベントとは、システムの状況に応じて得られる情報や動作を表します。
この実行方法は、システムやサービスから得られるイベントによって速やかに起動することが可能で、信頼性の確保と負荷に応じたスケーラビリティを実現します。
Amazon EventBridgeの概要
Amazon EventBridgeは、イベントを使用してアプリケーションやサービスを接続し、実行するサービスです。この実行方法をイベント駆動型アプリケーションと呼びます。
Amazon EventBridgeは、以前のAmazon CloudWatch Eventsサービスが進化したものです。Amazon CloudWatch Eventsは、AWS内のイベント駆動が中心でしたが、Amazon EventBridgeでは、サードパーティ製ソフトウェアのイベント取り込みが可能になっています。
【参考】:Amazon EventBridge ユーザーガイド / Amazon EventBridgeとは
Amazon EventBridgeの特徴
Amazon EventBridgeは、パイプとイベントバスという2種類のイベントの処理方法を提供します。このイベント処理を用いて、サーバレスで追加のコードを書くことなく、AWSのサービスと統合できるほか、フルマネージドで信頼性の高いスケーラビリティを実現できます。
イベントバスとパイプは、組み合わせて使用することができます。
Amazon EventBridgeの料金体系
Amazon EventBridgeは、サービスの構成要素ごとに費用が発生します。具体的には、イベントバスに公開されたイベント、スキーマ検出のために取り込まれたイベント、イベントリプレイが対象です。無料枠が設定されているため、最初に無料で試してみることができます。
Amazon EventBridgeのサービス構成要素
Amazon EventBridgeのサービスは、いくつかの機能で構成されています。最初にサービス構成要素の用語がわかると、役割に応じてどのように利用するのか理解が深まります。ここでは、Amazon EventBridgeのサービス構成要素の用語と概要を解説していきます。
【参考】:Amazon EventBridge の特徴 【参考】:Amazon EventBridge のよくある質問
イベントバス
イベントバスとは、Amazon EventBridgeが提供するイベントの処理方法の1つです。イベントを受信するルーターの役割を持っており、イベントをさまざまなソースから多数のターゲットへ配信できます。その際、受信したイベントをフィルタリングしたり変換したりすることもできます。
【参考】:Amazon EventBridge ユーザーガイド / イベントバス
パイプ
パイプは、1対1のポイント接続を行うイベント処理の方法です。それぞれのパイプは、ソースノードからイベントを受け取ると、必要な処理を施してターゲットとなる配信先へ送ります。パイプにおいても、オプションでフィルタリングや変換が可能です。
イベントソースとターゲット
Amazon EventBridgeは、イベントソースとターゲットの間でイベントを仲介します。
イベントソースはイベントの発信元で、イベント送信を行うサービスやアプリケーションが該当し、「イベントプロデューサー」と呼ぶ場合もあります。ターゲットはイベントの配信先で、配信先のリソースやエンドポイントを指し、「イベントコンシューマー」と呼ぶ場合もあります。
スケジューラ
スケジューラは、タスクやイベントをスケジューリングするための仕組みです。サーバレスで実行可能なタスクスケジューラで、タスクをスケジュールに従って1度だけ、あるいは定期実行させることができます。
受け取ったイベントによって、Lambdaとの連携も可能です。AWSサービス全体で数百万のスケジュールの作成や実行が可能で、管理の簡素化が可能です。
API Destinations
API Destinationsは、HTTPを用いるウェブAPIで用います。エンドポイントへの接続に使用する承認方法と認証情報を定義します。HTTPを用いるエンドポイントターゲットに対して、Connectionを作成・保存して、ターゲットへのイベント配信に使用します。
イベントリプレイ
イベントは、アーカイブを作成することによって再度イベントとして使用できます。このイベントの再生機能を「イベントリプレイ」と呼びます。
アプリケーションを更新するなどの場合、イベントを一時中断して再開することができます。この場合、イベントリプレイを、履歴イベントを再生することでシステムの一貫性を確保できます。
スキーマレジストリ
スキーマレジストリとは、スキーマを検索しアクセスするための集積情報を表します。ここで言うスキーマはイベントの構造で、イベントに含まれているデータの、各要素の形式やタイトル、名前、電話番号などの情報を含む情報の構造体を示します。
Amazon EventBridgeを使うには
Amazon EventBridgeを使うには、最初にイベントのルールを作成します。Amazon EventBridge コンソールから、「ルール」→「ルールの作成」と進めていきます。
ここでは、イベントバスを指定しますが、デフォルトのバス、カスタム、パートナーイベントバスから選びます。通常は、アカウントからのイベントと一致させるために、デフォルトのイベントバスを使用します。
【参考】:Amazon EventBridge ユーザーガイド / Amazon EventBridgeの開始方法 【参考】:Amazon EventBridge ユーザーガイド / Amazon EventBridge イベントパターン
ルールタイプを指定する
次に「ルールの作成」では、イベントのルールタイプを、「イベントパターンを持つルール」「スケジュール」から選びます。
「イベントパターンを持つルール」は、イベントパターンとイベントが一致したときに実行されるルールです。「スケジュール」は、定期実行などスケジュールに従って実行されるルールを指し、cronによる定期実行あるいは10分ごとなど規則的なレートから選択します。
イベントソースおよびイベントパターンを設定する
続いて、イベントの配信元となるイベントソースを設定します。イベントソースは、「AWSイベントまたはEventBridgeパートナーイベント」「その他」「すべてのイベント」から選択します。通常は「AWSイベントまたはEventBridgeパートナーイベント」を選びます。
イベントパターンは、イベントと同じ構造をJSON形式で記述していきます。その後、イベントパターンが適切か、サンプルイベントやカスタムイベントを用いて確認します。AWSのイベントを生成するサービス一覧は以下のサイトにあります。イベントパターンもこちらから確認できます。
【参考】:Amazon EventBridge ユーザーガイド / AWS でイベントを生成する サービス
ターゲットの指定
最後にターゲットを指定します。ターゲットタイプは、「EventBridgeイベントバス」「EventBridge API」「AWSサービス」から選びます。
実際のターゲットは、最大5つまで同一ルールで指定することができます。Lambda関数やEC2 API、ECSタスク、Kinesisストリーミング、APIゲートウェイ、CloudWatch Logsのロググループなどから指定します。
EventBridgeの使い方
EventBridgeの使い方ですが、EventBridgeはルールを作成するだけで有効になります。使用しない場合は、スケジュールの状態の「有効化」をオフ(無効)にします。
このスケジュール状態は、CloudWatchログから確認できます。同様にLambdaのログなど、ターゲットで指定した各サービスのログからも確認することができます。
Amazon EventBridgeはアプリケーション全体のイベント管理に有効
ウェブで連携するアプリケーションは、多くのシステム間連携によって構築されています。そのため、問題が生じた際にもそれぞれの連携状態を確認する必要があります。
Amazon EventBridgeは、イベント駆動型のシステムを構築し、システム間連携をイベントを通じて実現します。そのため、複雑化するアプリケーションを統一し、大規模アプリケーションの保全性を高めてくれるでしょう。
マイナビエージェントに無料登録して
転職サポートを受ける
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから