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のキューにテストメッセージを送信しました。(マネジメントコンソール上で送信できるの便利ですよね) また、フィルタのテストのために違うメッセージも何通か送信しました。
7. CloudWatch Logsのログを確認
フィルタ条件にマッチしたメッセージだけが CloudWatch Logs にされていました。
さいごに
簡単ではありますが、AWS re:Invent 2022 でリリースされたばかりの Amazon EventBridge Pipes に触ってみました。
説明を読んだだけだと正直いまいちピンときていないところがあったのですが、実際触ってみたらあまりの便利さにびっくりしていまいました。
これまで複雑になりがちだったサービス間のデータの受け渡しが簡単にできるようになって、これは夢が広がりますね。
今ところイベントソースとして使えるサービスが限られているので、個人的には今後 CloudWatch Logs などに対応に期待したいなと思いました。
最後までお読み頂きありがとうございました。雑な記事ですがどなたかの参考になれば幸いです。