View a markdown version of this page

Amazon EventBridge イベントバスのコンセプト - Amazon EventBridge

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EventBridge イベントバスのコンセプト

ここでは、イベントバスをベースに構築されたイベント駆動型アーキテクチャの主要コンポーネントを詳しく見ていきます。

イベントバス

イベントバスは、イベントを受信するルーターであり、ゼロ個以上の送信先やターゲットに配信します。イベントバスは、イベントをさまざまなソースから多数のターゲットにルーティングし、オプションでターゲットに配信する前にイベントを変換する必要がある際に使用します。

アカウントには、 AWSサービスからイベントを自動的に受信するデフォルトのイベントバスが含まれています。以下の操作も可能です。

  • カスタムイベントバスという名のイベントバスを追加作成し、受信するイベントを指定します。

  • パートナーイベントバスを作成します。これは、SaaS パートナーからイベントを受信します。

イベントバスの一般的な使用例には以下が含まれます。

  • イベントバスを異なるワークロード、サービス、またはシステム間の仲介役として使用します。

  • アプリケーション内で複数のイベントバスを使用してイベントトラフィックを分割します。たとえば、個人識別情報 (PII) を含むイベントを処理するバスを作成し、個人識別情報 (PII) を含まないイベント用に別のバスを作成する場合などです。

  • 複数のイベントバスから一元化されたイベントバスにイベントを送信してイベントを集約します。この集中型バスは、他のバスと同じアカウントにあっても、別のアカウントやリージョンにあってもかまいません。

AWS のサービス、カスタムアプリケーション、またはパートナーソースからイベントを受信するさまざまなイベントバス。

Events

最も単純な EventBridge イベントは、イベントバスまたはパイプに送信される JSON オブジェクトです。

イベント駆動型アーキテクチャ (EDA) のコンテキストでは、イベントはリソースや環境の変化を示す指標となることがよくあります。

詳細については、「Amazon EventBridge のイベント」を参照してください。

イベントソース

EventBridge は、次のようなイベントソースからイベントを受信できます。

  • AWSサービス

  • カスタムアプリケーション

  • Software as a Service (SaaS)

ルール

ルールは、受信したイベントを受信し、処理のためにターゲットに適切に送信します。各ルールがターゲットを呼び出す方法は、次のいずれかに基づいて指定できます。

  • イベントパターン。イベントに一致する 1 つ以上のフィルターが含まれています。イベントパターンには、次の条件に一致するフィルターを含めることができます。

    • イベントメタデータ — イベント (イベントソースなど)、またはイベントが発生したアカウントまたはリージョンについてのデータ。

    • イベントデータ — イベント自体のプロパティ。これらのプロパティはイベントによって異なります。

    • イベントコンテンツ — イベントデータの実際のプロパティ

  • ターゲットを定期的に呼び出すスケジュール。

    EventBridge 内で、または EventBridge スケジューラを使用して、スケジュールされたルールを指定できます。

    注記

    スケジュールされたルールは EventBridge のレガシー機能です。

    EventBridge は、スケジュールされたタスクを大規模に一元的に作成、実行、管理するための、より柔軟で強力な方法を提供します: EventBridge スケジューラ。EventBridge スケジューラでは、繰り返しのパターンに cron やレート式を使ってスケジュールを作成したり、1回限りの呼び出しを設定したりできます。配信時間枠の柔軟な設定、再試行制限の定義、失敗した API 呼び出しの最大保持時間の設定を行うことができます。

    スケジューラは高度にカスタマイズ可能で、ターゲット API オペレーションとAWSサービスの幅広いセットにより、スケジュールされたルールよりもスケーラビリティが向上します。スケジュールに従ってターゲットを呼び出すには、Scheduler を使用することをお勧めします。

    詳細については、新しいスケジュールを作成する「」またはEventBridge スケジューラユーザーガイド」を参照してください。

各ルールは特定のイベントバスに対して定義され、そのイベントバス上のイベントにのみ適用されます。

1 つのルールで、最大 5 つのターゲットにイベントを送信できます。

デフォルトでは、イベントバスあたり最大 300 のルールを設定できます。このクォータは、Service Quotas コンソール内で数千のルールまで増やすことができます。ルール制限は各バスに適用されるため、さらに多くのルールが必要な場合は、アカウントに追加のカスタムイベントバスを作成できます。

サービスごとに異なるアクセス許可を持つイベントバスを作成することで、アカウントでのイベントの受信方法をカスタマイズできます。

EventBridge がターゲットに渡す前にイベントの構造や日付をカスタマイズするには、Input Transformer を使用して、ターゲットに渡す前に情報を編集します。

詳細については、「Amazon EventBridge のルール」を参照してください。

ターゲット

ターゲットとは、ルールに定義されたイベントパターンにイベントが一致したときに、EventBridge がイベントを送信する先のリソースまたはエンドポイントです。

ターゲットは複数のイベントバスから複数のイベントを受信できます。

詳細については、「Amazon EventBridge のイベントバスターゲット」を参照してください。

イベントバス用の高度な機能

EventBridge には、イベントバスの開発、管理、使用に役立つ以下の機能が含まれています。

API 送信先を使用して、サービス間の REST API コールを有効にする

EventBridge API の送信先は、 AWSサービスまたはリソースにイベントデータを送信するのと同じ方法で、ルールのターゲットとして設定できる HTTP エンドポイントです。API 送信先を使用すると、API コールを使用して、AWS サービス、統合された SaaS アプリケーション、および AWS 外のアプリケーションの間でイベントをルーティングできます。API 送信先を作成するときは、その送信先に使用する接続を指定します。各接続 には、API 送信先エンドポイントでの認可に使用する認可タイプとパラメータに関する詳細が含まれます。

開発とディザスタリカバリに役立つイベントの Archive and Replay

イベントをアーカイブして、後でそのアーカイブからイベントを再生することができます。アーカイブは次のような場合に役立ちます。

  • 新しいイベントを待つのではなく、イベントを保存して利用できるので、アプリケーションのテストに便利です。

  • 新しいサービスが初めてオンラインになったら、ハイドレートします。

  • イベント駆動型アプリケーションの耐久性を高めます。

スキーマレジストリを使用してイベントパターンの作成をすぐに開始する

EventBridge を使用するサーバーレスアプリケーションを構築する際、イベントを生成しなくても、典型的なイベントの構造を知っていると便利です。イベント構造は、EventBridge AWSのサービスによって生成されたすべてのイベントで使用できるスキーマで説明されています。

AWSサービスからではないイベントの場合、次のことができます。

  • カスタムスキーマを作成またはアップロードします。

  • スキーマディスカバリーを使用して、EventBridge がイベントバスに送信されるイベントのスキーマを自動的に作成します。

イベントのスキーマがあれば、一般的なプログラミング言語のコードバインディングをダウンロードできます。

ポリシーによるリソースへのアクセスの管理

AWSリソースを整理したり、EventBridge のコストを追跡したりするには、カスタムラベルまたはタグをAWSリソースに割り当てることができます。タグベースのポリシーを使用すると、EventBridge 内でリソースができること、できないことを制御できます。

タグベースのポリシーに加えて、EventBridge は EventBridge へのアクセスを制御する アイデンティティベースおよびリソースベースのポリシーもサポートしています。アイデンティティ ベースのポリシーを使用して、グループ、ロール、またはユーザーのアクセス許可を制御します。リソースベースのポリシーを使用して、Lambda 関数や Amazon SNS トピックなど各リソースに特定のアクセス許可を付与します。