Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

Amazon EventBridge Pipes が激アツらしいので早速触ってみた

SREチームのはぶちです。
この記事は ヤプリ #2 Advent Calendar 2022 - Adventar 3日目に捧げる記事となります。

気づいたら季節はもう冬ですね。今年も AWS re:Invent 2022 が開催されAWS界隈では、皆さん新機能の発表に胸をときめかせていることと思います。
今回は 2022/12/1 に発表されたばかりの Amazon EventBridge Pipes という機能が熱いとのことで、早速触ってみたので簡単ですが記事にしたいと思います。

Amazon EventBridge Pipesってなに?

公式リリースからの文章を一部引用させていただきます。

EventBridge Pipesを使用すると、Amazon SQS、Amazon Kinesis、Amazon DynamoDB、Amazon Managed Streaming Kafka、セルフマネージドKafka、Amazon MQなどのソースからのデータをアプリケーションに簡単に接続することができます。EventBridge Pipesは、Amazon SQS、AWS Step Functions、Amazon Kinesis Data Streams、Amazon Kinesis Data Firehose、Amazon SNS、Amazon ECS、およびイベントバス自体など、イベントバスと同じターゲットサービスをサポートしています。 aws.amazon.com

要するに今まで AWS Lambda などを介してごにょごにょしないと別サービスに出力できなかったデータを簡単に扱えるようにしたぜ。ということらしいです。

マネジメントコンソールに表示される説明ですが、この絵を見るとなんとなくイメージが湧いて来ますね。

パイプの仕組み

百聞は一見にしかずということで早速触ってみます。

触ってみた

1. イベントソースの設定

指定可能なイベントソースは 2022/12/2現在 Amazon SQS、Amazon Kinesis、Amazon DynamoDB、Amazon Managed Streaming Kafka、セルフマネージドKafka、Amazon MQ となっています。

指定可能なイベントソース

今回はお試しなので Amazon SQS のテスト用に作ったキューを選択してみました。

パイプ作成時のイベントソース選択

2. フィルタの設定

フィルタはオプション扱いですが、今回は試しに以下のようなフィルタを設定してみました。

{
  "body": [{
    "prefix": "This"
  }]
}

パイプ作成時のフィルタの設定

3. 強化(英語だと Enrichment)の設定

強化の設定こそこのサービスの肝ですが、今回は時間の都合でスキップします。
ちなみに強化の設定では AWS Lambda, AWS Step Functions, Amazon API Gateway, API 送信先(EventBridgeの機能) を指定することができます。これだけ対応していれば大体のことはできそうです。

パイプ作成時の強化設定

4. ターゲットの設定

ターゲットとしてはイベントソースと違い多くのサービスが指定できるようです。今回は CloudWatch Logs のテスト用ロググループを指定しました。

ターゲットの設定

5. パイプの作成完了

ここまでの手順でテスト用のパイプを作成することができました。
これまでだとフィルタや加工が必要な場合は Amazon EventBridge と AWS Lambda を組み合わせたりする必要があった操作があっという間に完了していまいました。(なにこれすごい)
ちなみにマネジメントコンソールからだと必要なロールも一緒に作ってくれます。

完成したパイプの設定

6. SQSのキューにテストメッセージを送信

SQSのキューにテストメッセージを送信しました。(マネジメントコンソール上で送信できるの便利ですよね) また、フィルタのテストのために違うメッセージも何通か送信しました。

SQSのキューにメッセージを送信

7. CloudWatch Logsのログを確認

フィルタ条件にマッチしたメッセージだけが CloudWatch Logs にされていました。

ログの確認

さいごに

簡単ではありますが、AWS re:Invent 2022 でリリースされたばかりの Amazon EventBridge Pipes に触ってみました。
説明を読んだだけだと正直いまいちピンときていないところがあったのですが、実際触ってみたらあまりの便利さにびっくりしていまいました。
これまで複雑になりがちだったサービス間のデータの受け渡しが簡単にできるようになって、これは夢が広がりますね。
今ところイベントソースとして使えるサービスが限られているので、個人的には今後 CloudWatch Logs などに対応に期待したいなと思いました。

最後までお読み頂きありがとうございました。雑な記事ですがどなたかの参考になれば幸いです。