【備忘】Amazon Eventbridgeの概要

# はじめに
##### ～AWS学習アウトプット第一弾～
AWS未経験者の私が学習したことをアウトプットし、将来的にはSAA合格を目指します。
今後も各サービスの学びを備忘として残していこうと思います！

今回の記事では **EventBridge** の基本的な内容をまとめていきます。

# 目次
・Eventbridgeとは
・イベント処理方法
　・Event Bus（イベントバス）
 　- 設定内容
　・Pipes（パイプ）
・まとめ


# Eventbridgeとは
EventBridgeは、**アプリケーションコンポーネントをイベントでつなぐサーバーレスサービス**です。
これにより、手軽にスケーラブルなイベント駆動型アプリケーションを作成できます。EventBridgeを使えば、自社アプリやAWSサービス、サードパーティ製ソフトウェアから組織全体のアプリにイベントをスムーズに伝えることができます。

イベント駆動型とは、 **「イベントが発生をきっかけとして処理を開始する」** というものことで、Eventbridgeの場合、「S3にファイルがアップロードされたら」＝「イベント」、「メールを送信する」＝「処理」という感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074902/193944a1-4578-b7bc-5a5f-e4f35e0dcb48.png)

# イベント処理方法
EventBridge では「Event Bus（イベントバス）」と「Pipes（パイプ）」という 2 つの方法でイベントを処理できます。

## Event Bus（イベントバス）
Event Busはイベントを受信するルーターであり、ゼロ個以上のターゲットに配信します。
Event Busは、イベントをさまざまなソースから多数のターゲットにルーティングするのに適しており、オプションでターゲットに配信する前にイベントを変換できます。

Event Busでイベント検出を有効にすると、そのバスのイベントに対して EventBridge スキーマが生成されます。こちらはコストが発生する可能性があります (毎月最初の 500 万件のイベントは無料)。

デフォルトで「default」というEvent Busが作成されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074902/e974ced4-960c-97d7-6e3c-aca2d2125cda.png)

### 設定内容
Event Busを使用してイベントを処理する場合、「Event Source」「Rules」「target」を設定します（他にも設定項目はありますが今回は省略します）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074902/bf1a3ce5-7d51-e47f-06fd-720e8b863c42.png)

#### Event Source
・AWS サービス、独自のカスタムアプリケーション、SaaS プロバイダーのこと
　**＝「イベントの発生場所」を決める**
#### Rules
・受信したイベントをマッチングし、処理のためにターゲットに送信する
　**＝「どのようなイベントが発生したらどのような処理をするのか」のルールを決める**

・処理のルールは、イベントパターンまたはスケジュールに基づいて作成する
　**イベントパターン**
　　・設定したイベントに一致しているか、していないかのどちらかで処理を実行する
　**スケジュール**
　　・一定の間隔で処理を実行する

#### target
・イベントを送信する対象
　**＝「ルールで決めた処理を実行する対象」を決める**
・ターゲットは複数設定することが可能

## Pipes（パイプ）
Amazon EventBridge Pipes はソースをターゲットに接続します。
サポートされているソースとターゲット間のポイントツーポイント統合が目的です。
イベント駆動型アーキテクチャを開発する際に専門知識や統合コードが不要になり、会社のアプリケーション全体で一貫性が保持されます。パイプをセットアップするには、ソースを選択し、オプションのフィルタリングを追加し、オプションのエンリッチメント(強化)を定義し、イベントデータのターゲットを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074902/220d53ac-82fa-713f-ecf4-7e943adf1c58.png)

### 設定内容
Pipesを使用してイベントを処理する場合も、基本的にはEvent Busと同様の項目の設定が必要になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074902/65fd5969-a622-2407-0bc9-afd726713dd2.png)

#### ソース
・イベントの発生場所
下記のどれかから選択可能
・Amazon SQS
・Amazon DynamoDB
・Amazon MQ
・Amazon Managed Streaming for Apache Kafka
・セルフマネージド Apache Kafka

#### フィルタリング（オプション）
・エンリッチメントまたはターゲットに送信されるイベントをフィルタリングできる
・フィルターに一致するイベントに対してのみ課金される

#### エンリッチメント（オプション）
・ソースからのデータをターゲットに送信する前に拡張することができる

#### ターゲット
・イベントを送信する対象

## Event Bus（イベントバス）とPipes（パイプ）の違い
### 作成の難易度
Pipesは、2022年12月にアップデートされた内容です。
Event Busの基本機能のみ絞ったような形ということもあり、どちらかというとPipesの方が簡単に作成することが可能です。

https://aws.amazon.com/jp/blogs/aws/new-create-point-to-point-integrations-between-event-producers-and-consumers-with-amazon-eventbridge-pipes/

https://aws.amazon.com/jp/about-aws/whats-new/2022/12/amazon-eventbridge-pipes-generally-available/

### ソース等の制限
前述した通り、PipesはEvent Busの基本機能のみ絞ったような形です。現時点では、ソース・ターゲットとして選択可能なサービスは、PipesよりEvent Busの方が充実しています。

# まとめ
今回はEventBridgeの基本的な内容を整理しました。
そして、ここまで書いてから気が付いたのですが、SAAではEventBridgeに関する問題はほとんどなさそうでした(泣)
気が付くのが遅すぎましたが、今回まとめたことで、EventBridgeについて知ることが出来たので、無駄ではなかったと思うことにします。
次回はSAAでもよく出題される部分を記事にしようと思いますので、ご覧いただけますと幸いです。


# 参考
https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-what-is.html

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

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


---------------------------------------------------
株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください：
https://www.zdh.co.jp/products-services/cloud-data/zeuscloud/?utm_source=qiita&utm_medium=referral&utm_campaign=qiita_zeuscloud_content-area