Amazon EventBridge のルールを定義する際のベストプラクティス - Amazon EventBridge

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

Amazon EventBridge のルールを定義する際のベストプラクティス

イベントバスのルールを作成する際に考慮すべきいくつかのベストプラクティスを以下に示します。

ルールごとに 1 つのターゲットを設定する

1 つのルールに最大 5 つのターゲットを指定できますが、ルールごとに 1 つのターゲットを指定する方がルールの管理が容易になります。複数のターゲットが同じイベントセットを受信する必要がある場合は、ルールを複製して同じイベントを異なるターゲットに配信することをお勧めします。このカプセル化により、ルールの管理が簡単になります。イベントターゲットのニーズが時間の経過とともにそれていく場合は、各ルールとそのイベントパターンを他のルールとは独立して更新できます。

ルールのアクセス許可を設定する

イベントを消費するアプリケーションコンポーネントまたはサービスが、独自のルールを管理できるようにすることができます。お客様が採用する一般的なアーキテクチャアプローチは、個別の AWS アカウントを使用してこれらのアプリケーションコンポーネントまたはサービスを分離することです。あるアカウントから別のアカウントへのイベントのフローを有効にするには、別のアカウントのイベントバスにイベントをルーティングするルールを 1 つのイベントバスに作成する必要があります。イベントを消費するチームまたはサービスが、独自のルールを管理できるようにすることができます。そのためには、リソースポリシーを通じてアカウントへの適切なアクセス許可を指定します。これはアカウントとリージョン間で機能します。

詳細については、「Amazon EventBridge イベントバスのアクセス許可」を参照してください。

リソースポリシーの例については、GitHub の「Multi-account design patterns with Amazon EventBridge」(Amazon EventBridge によるマルチアカウントデザインパターン) を参照してください。

ルールのパフォーマンスを監視する

ルールを監視して、想定どおりに動作していることを確認します。

  • データポイントの欠落や異常がないか、TriggeredRules メトリクスを監視すると、重大な変更を加えたパブリッシャーの差異を検出しやすくなります。詳細については、「Amazon EventBridge のモニタリング」を参照してください。

  • 異常発生時のアラームや最大想定回数の設定も、ルールが新しいイベントと合致しているかどうかを検出するのに役立ちます。これは、 AWS サービスや SaaS パートナーを含むイベントパブリッシャーが、新しいユースケースや機能を導入する際に新しいイベントを導入した場合に発生する可能性があります。これらの新しいイベントが予期せぬものであり、ダウンストリームターゲットの処理速度よりも処理量が多くなる場合、イベントバックログにつながる可能性があります。

    このような予期しないイベントの処理は、不要な料金につながる可能性もあります。

    また、アカウントが 1 秒あたりのサービスクォータの総ターゲット呼び出し数の上限を超えると、ルールのスロットリングをトリガーする可能性もあります。EventBridge は引き続き、スロットリングされたルールに一致するイベントの配信を試み、最大 24 時間まで、またはターゲットのカスタム再試行ポリシーに記載されているとおりに再試行します。ThrottledRules メトリクスを使用してスロットリングされたルールを検出し、警告することができます。

  • 低レイテンシーのユースケースでは、IngestionToInvocationStartLatency を使用してレイテンシーを監視することもでき、これにより、イベントバスの状態を確認できます。30 秒を超える長時間のレイテンシーは、サービスの中断またはルールのスロットリングを示している可能性があります。