[アップデート] Amazon EventBrdige のターゲットとして Amazon SQS のフェアキューが動作するようになりました
いわさです。
先月 2025 年 11 月のアップデートになるのですが、Amazon EventBridge のターゲットに SQS のフェアキューを指定できるようになりました。
フェアキューってなんだ?という方もいるかもしれませんので少しおさらいします。
Amazon SQS にはスタンダードキューと、FIFO キューの2つのキュータイプがあります。
FIFO キューではメッセージグループ ID をメッセージに含めることで、コンシューマごとにメッセージをグループ分けして、その中で FIFO の挙動でメッセージ処理させることが出来ます。
一方でスタンダードキューではこれまでメッセージグループ ID の概念がなかったのですが、フェアキューという機能が半年ほど前に追加され、スタンダードキューでもメッセージグループ ID を指定できるようになりました。
フェアキューとして動作するとき、メッセージグループ ID がテナント ID として動作し、キューのメッセージ消費におけるテナント間のノイジーネイバーを抑制することができます。
SQS ターゲットでメッセージグループ ID を指定する
フェアキューとして機能させるためには、スタンダードキュー&メッセージグループ ID の指定が必要です。事前にスタンダードキューを作成してあります。

そして、EventBridge ルールのターゲットでメッセージグループ ID を指定します。

今回はサンプルイベントの適当なフィールドを設定しましたが、プロダクション環境ではトリガーとなるイベントデータからテナントコンテキスト(テナント ID など)のフィールドを指定する形になると思います。
上記内容でルールを作成した後に、テストイベントを送信してみましょう。
% cat fuga.json
[
{
"Source": "myapp.example",
"DetailType": "Example Event",
"Detail": "{\"key1\":\"value1\",\"key2\":\"value2\"}"
}
]
% aws events put-events --entries file://fuga.json
{
"FailedEntryCount": 0,
"Entries": [
{
"EventId": "33c18231-228e-76f4-0d86-7c2b80a9abb6"
}
]
}
SQS コンソールからメッセージの受信状況を確認してみます。

1件受信出来ました。内容を確認してみましょう。

スタンダードキューですが、メッセージグループ ID がちゃんと引き渡されていますね。これでフェアキューとして機能しそうです。
さいごに
本日は Amazon EventBrdige のターゲットとして Amazon SQS のフェアキューが動作するようになっていたので使ってみました。
マルチテナントアプリケーションにおけるイベント駆動アーキテクチャを検討する際に、テナントのノイジーネイバーを抑制しやすくなる機能ですので、SQS と SNS のみではなく、EventBridge 側も関係してくる点を覚えておきましょう。








