Jayendra’s Blog

この記事は自己学習用に「AWS SQS FIFO Queue – Certification(Jayendra’s Blogより)」を日本語に訳した記事です。


AWS SQS FIFO キュー

  • SQS FIFO キューは、追加機能を備えたアプリケーション間でメッセージングを強化します。
    • FIFO (先入れ先出し) 配信
      • メッセージが送受信される順序は、厳密に保持されます。
      • 操作とイベントの順序が重要な場合のキー
    • 1度だけの処理
      • メッセージは1回配信され、コンシューマがプロセスを処理して削除するまで使用可能なままになります。
      • 重複を容認できない場合のキー。
      • 1秒あたり300トランザクションに制限 (TPS)
  • FIFO キューは、すべての機能を標準キューとして提供し、標準キューを改良して補完します。
  • FIFO キューは、1つのキュー内で複数の順序付けされたメッセージグループを許可するメッセージグループをサポートします。
  • FIFO キューは、米国東部 (バージニア州)、米国東部 (オハイオ州)、米国西部 (オレゴン州)、および EU (アイルランド) 地域で利用可能です (変更を続けます)。
  • FIFO キュー名は .fifo で終了する必要があります。
  • SQS バッファ型非同期クライアントは、現在、FIFO キューをサポートしていません。
  • すべての AWS サービスが FIFO をサポートしているわけではありません。
    • オートスケーリングのライフサイクルフック
    • Amazon CloudWatch イベント
    • AWS IoT ルールアクション
    • AWS Lambda 配信不能キュー(DLQ)
    • Amazon S3 イベント通知
    • Amazon SNS トピック・サブスクリプション

メッセージ重複排除

  • SQS API は、メッセージプロデューサが重複送信できないようにする重複排除機能を提供します。
  • メッセージ重複排除 ID は、送信されたメッセージの重複排除に使用されるトークンです。
  • 特定のメッセージ重複排除 ID を持つメッセージが正常に送信された場合、同じ重複排除 ID で送信されたすべてのメッセージは正常に受け入れられますが、5分の重複排除インターバル中に配信されません。
  • したがって、基本的に、メッセージプロデューサによって導入された重複は、5分間の重複排除インターバル中に取り除かれます。
  • メッセージ重複排除は、個々のメッセージグループではなく、キュー全体に適用されます。

メッセージグループ

  • メッセージは FIFO キュー内の個別の順序付けされた “バンドル” にグループ化します。
  • メッセージグループ ID は、メッセージが特定のメッセージグループに属することを指定するタグです。
  • メッセージグループ ID ごとに、すべてのメッセージが厳密な順序で送受信されます。
  • ただし、メッセージグループ ID の値が異なるメッセージは、順番に送信および受信される可能性があります。
  • すべてのメッセージは、アクションが失敗することなく、メッセージグループ ID に関連付けられている必要があります。
  • 複数のホスト(または同じホスト上の異なるスレッド)が同じメッセージグループ ID を持つメッセージを送信する場合、SQS は処理のために到着した順序でメッセージを配信します。

ブログ投稿を参照 – SQS スタンダードキュー vs FIFO キュー