EventBridgeのアーカイブと再生機能を使ってみる。

## はじめに

今回は、EventBridgeのアーカイブと再生機能について試してみます。

アーカイブ機能はイベントバスが受信したイベントを指定した期間・条件で保存しておくことができる機能です。

そして、アーカイブしたイベントを再生するのが再生機能となります

https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-archive.html

この機能を利用することで、エラー時のリトライ処理や、新しいバージョンのアプリケーションの動作確認などができるとのことです。

## やってみよう！

### アーカイブの作成

左側のメニュー`アーカイブ`から作成することができます。

![スクリーンショット 2025-03-18 3.48.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/9b3cb722-3e6c-4fb6-9f55-9a57f856c762.png)

今回は、違う記事で作成したカスタムバスを指定しています。

![スクリーンショット 2025-03-18 3.52.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/2ff45c24-d78e-44b3-8d21-969f82ea83e6.png)

アーカイブするイベントをフィルタリングできます。

![スクリーンショット 2025-03-18 3.53.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/c335f153-6ea6-48e8-a2e7-289e95cd0a9c.png)

フィルタリングは、ルールを作成するときと同じ操作です。

![スクリーンショット 2025-03-18 3.54.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/47e70686-eb3f-4417-805f-5426a1e699c8.png)

作成すると、以下のような形で一覧表示されるようになります。

![スクリーンショット 2025-03-18 4.17.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/11f659a4-4db2-4bde-a597-c8468344c8e0.png)

作成直後のキャプチャを撮り忘れたので、サイズ（バイト単位）が144Bytesとなっていますが、これはイベントを２つほどアーカイブした状態のものです。

最初はここが0Byteになってました。

### アーカイブ用のルールができてる。

アーカイブを作ると、ルールにアーカイブを行うためのルールが出来ていました。

![スクリーンショット 2025-03-18 3.55.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/46c55c34-129f-4c0d-bf73-ac5ab811a2ab.png)

`replay-name`が存在しない場合に動作するようになっていて、これから説明する再生機能で実行されたイベントをまたアーカイブしないような仕組みになってそうです。

### イベントを送ってみる。

`payment_number`が`001`と`002`のイベントを手動で送ってみます。

![スクリーンショット 2025-03-18 3.57.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/eb278d17-3178-4b98-9f7c-15132e4d9dba.png)

ターゲットをSNS経由のEメールにしているので、メールが２通届きます。

![スクリーンショット 2025-03-18 4.37.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/057e8cb9-5aeb-4212-81c4-755fa1ef21ab.png)

この後、アーカイブを見てみるとイベントのサイズが増えていることが分かります。

![スクリーンショット 2025-03-18 4.17.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/11f659a4-4db2-4bde-a597-c8468344c8e0.png)

なお、このアーカイブされたイベントは閲覧できるのかな？と思ったのですが、閲覧はできないみたいです。

データそのものは安全に保存されているとのこと。

> EventBridge はデフォルトで、アーカイブ内のイベントデータを、AWS 所有の CMK の下で 256 ビット高度暗号化規格 (AES-256) を用いて暗号化しており、不正なアクセスからデータを保護します。

https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-archive-event.html

## 次に再生してみる。

左メニューの`再生`から再生をしてみます。

![スクリーンショット 2025-03-18 3.58.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/3860b16b-e061-4839-9d5c-15f956daca8c.png)

![スクリーンショット 2025-03-18 3.58.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/fb21ca77-56bd-4d67-96ad-3c831dd965ce.png)

再生先はアーカイブ元と同じイベントバスのみとなってました。
また、ルール絞り込みも可能です。

![スクリーンショット 2025-03-18 4.30.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/c133ad8d-248d-4388-87a8-dc39aca04aee.png)

時間も指定可能です。

![スクリーンショット 2025-03-18 3.59.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/98b803e1-2460-4d5e-b43b-bf6e22b47f30.png)

ここまで指定したらリプレイを開始できます。

開始直後は`開始中`となり、即座には実行されません。

![スクリーンショット 2025-03-18 4.00.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/d51718bf-cb4a-42e5-bab3-462e5e344808.png)

５分くらい待ってると、`完了済み`になってました。

![スクリーンショット 2025-03-18 4.34.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/8448eed9-2f1c-4218-9b90-3705301781f3.png)

メール見てみると、リプレイされていることが分かります！

![スクリーンショット 2025-03-18 4.36.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/09db8fca-bde9-42a4-8774-e248e2e97c32.png)

## まとめ

アーカイブされたイベントを閲覧できたり、別のイベントバスで再生できると調査に便利かなと思いました。

こんな表記しているってことは、今後は別のイベントバスで再生できるのかな？

![スクリーンショット 2025-03-18 4.40.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/985025fd-e3fd-411a-927d-092739e990cb.png)

そして、デバッグ用のイベントバスで再生し、CloudWatch Logsにイベントを出力し、内容確認みたいなこともできそう！