Jayendra’s Blog

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


AWS SQS – スタンダード vs FIFO キュー

SQS には2種類のキュー (標準および FIFO キュー) があります。
FIFOキュー

メッセージの順序

  • 標準キューは、メッセージが送信されたときと同じ順序で配信されることを保証するベストエフォートの順序を提供します。(高スループットを可能にする高度に分散されたアーキテクチャのため)、メッセージの1つ以上のコピーが順序どおりに配信できないことがあります。
  • FIFO キューは先入れ先出し配信と正確に1回の処理を提供します。メッセージが送受信される順序は厳密に保持されます。

配信

  • 標準キューは、メッセージが少なくとも1回配信され、キューに重複が導入されることを保証します。
  • FIFO キューは、メッセージが1回だけ配信され、コンシューマがプロセスを処理して削除するまで使用可能な状態を保ちます。キューに重複が導入されない。

1秒あたりのトランザクション数 (TPS)

  • 標準キューでは、1秒あたりのトランザクション数をほぼ無制限にできます。
  • FIFO キューは、API アクションごとに1秒あたり300トランザクションに制限されます。

リージョン

  • 標準キューはすべてのリージョンで使用可能。
  • FIFO キューは、米国西部 (オレゴン州)、米国東部 (オハイオ州)、米国東部 (バージニア州北部)、および EU (アイルランド) を含む限られたリージョンで現在利用可能です。

SQS バッファ型非同期クライアント

  • FIFO キューは現在、SQS バッファ非同期クライアントと互換性がありません。メッセージはクライアント側でバッファされ、SQS キューに単一の要求として送信され、コストが削減されます。

サポートされる AWS サービス

  • 標準キューはすべての AWS サービスでサポートされています。
  • FIFO キューは現在、すべての AWS サービスでサポートされていません。
    • CloudWatch イベント
    • S3 イベント通知
    • SNS トピックのサブスクリプション
    • オートスケーリングのライフサイクルフック
    • AWS IoT ルールアクション
    • AWS Lambda デッドレターキュー

ユースケース

  • 標準キューは、アプリケーションが1回以上の順序で到着したメッセージを処理できる限り、どのようなシナリオでも使用できます。
    • 集中的なバックグラウンド作業からのライブユーザー要求の分離: サイズ変更またはエンコード時にユーザーがメディアをアップロードできるようにします。
    • 複数のワーカーノードにタスクを割り当てる: 大量のクレジットカード検証要求を処理します。
    • 今後の処理のためのバッチメッセージ: データベースに追加する複数のエントリをスケジュールします。
  • FIFO キューは、操作やイベントの順序が重要である場合や、重複を許容できない場合にアプリケーション間でメッセージングを強化するように設計されています。
    • ユーザーが入力したコマンドが正しい順序で実行されるようにします。
    • 正しい順序で価格変更を送信して、適切な製品価格を表示します。
    • アカウントに登録する前に、受講者がコースに入学するのを防ぎます。