[アップデート] Amazon EventBrdige のターゲットとして Amazon SQS のフェアキューが動作するようになりました

[アップデート] Amazon EventBrdige のターゲットとして Amazon SQS のフェアキューが動作するようになりました

2025.12.16

いわさです。

先月 2025 年 11 月のアップデートになるのですが、Amazon EventBridge のターゲットに SQS のフェアキューを指定できるようになりました。

https://aws.amazon.com/about-aws/whats-new/2025/11/amazon-eventbridge-sqs-fair-queue-targets/

フェアキューってなんだ?という方もいるかもしれませんので少しおさらいします。
Amazon SQS にはスタンダードキューと、FIFO キューの2つのキュータイプがあります。
FIFO キューではメッセージグループ ID をメッセージに含めることで、コンシューマごとにメッセージをグループ分けして、その中で FIFO の挙動でメッセージ処理させることが出来ます。

一方でスタンダードキューではこれまでメッセージグループ ID の概念がなかったのですが、フェアキューという機能が半年ほど前に追加され、スタンダードキューでもメッセージグループ ID を指定できるようになりました。

https://dev.classmethod.jp/articles/sqs-introduces-fair/

フェアキューとして動作するとき、メッセージグループ ID がテナント ID として動作し、キューのメッセージ消費におけるテナント間のノイジーネイバーを抑制することができます。

SQS ターゲットでメッセージグループ ID を指定する

フェアキューとして機能させるためには、スタンダードキュー&メッセージグループ ID の指定が必要です。事前にスタンダードキューを作成してあります。

70568040-E84F-4810-8BE7-FF0D1F0B3ACF_1_105_c.jpeg

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

5ED646A4-DA26-4151-B14D-46AA5034171E-1.png

今回はサンプルイベントの適当なフィールドを設定しましたが、プロダクション環境ではトリガーとなるイベントデータからテナントコンテキスト(テナント 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 コンソールからメッセージの受信状況を確認してみます。

46C4A8B3-8D4E-4B11-BA98-B0A85ADE6C89.png

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

63117B83-2473-4931-955F-FB1C271A6F13_1_105_c.jpeg

スタンダードキューですが、メッセージグループ ID がちゃんと引き渡されていますね。これでフェアキューとして機能しそうです。

さいごに

本日は Amazon EventBrdige のターゲットとして Amazon SQS のフェアキューが動作するようになっていたので使ってみました。

マルチテナントアプリケーションにおけるイベント駆動アーキテクチャを検討する際に、テナントのノイジーネイバーを抑制しやすくなる機能ですので、SQS と SNS のみではなく、EventBridge 側も関係してくる点を覚えておきましょう。

この記事をシェアする

FacebookHatena blogX

関連記事