あるイベント駆動型アーキテクチャを採用したSaaSプラットフォームが、Amazon EventBridgeカスタムバスを通じて注文処理・在庫管理・決済サービスにイベントを配信しています。ある夜間のインシデントで決済サービスが40分間ダウンし、その間のすべての決済関連イベントが消失しました。DevOpsチームは以下の要件を満たすイベント再処理の仕組みを実装したいと考えています: ①イベントの保存を自動化する(追加のS3バケット・データベースの管理を最小限に抑える) ②インシデント後に特定の時間範囲のイベントを選択して再送信できる ③再送信先を決済サービスのターゲットのみに限定できる。この要件を最も効率的に満たすアプローチはどれですか?
Amazon EventBridge Archiveは、イベントバスを通過するイベントをフィルター付きで自動的にアーカイブするマネージドな機能です。追加のS3バケットやデータベース管理は不要で、保持期間は無期限に設定することも可能です。EventBridge Replayを使用すると、アーカイブから特定の時間範囲(例:インシデント発生の40分間)を選択してイベントを再送信でき、再送信先バスに決済サービスのみをターゲットとするルールを定義することで再送信先を限定できます。 選択肢Aの Kinesis Data Streams は順序付きストリーム保存には有効ですが、シャードイテレーターによる時刻指定再処理は複雑で、特定ターゲットへの限定送信はEventBridgeとの追加実装が必要です。 選択肢Cの SQS は個別メッセージのリトライには有効ですが、特定時間範囲を指定した一括再送信機能はなく、保持期間も最大14日の制限があります。 選択肢Dの DynamoDB + Lambda の自前実装は機能的には実現可能ですが、追加インフラ(DynamoDBテーブル・Lambda関数)の管理が必要となり、追加インフラを最小限にするという要件に反します。