ま、タイトルの通りなんだけども…。

Queueというと、IBMのWebSphereMQみたいなものを想定しまいがちなので、そうすると、FIFOを保証してくれるんだよね!?とか思いがち(…てか、自分だけか)だけど、おそらく、S3なんかと同様に、裏側でメッセージのレプリケーションを行って冗長性を確保しているんだろうな、結果的に、FIFOを保証してないらしい。

SQSのFAQにはこんな記載があったので、メモ。

Q: Amazon SQS はメッセージへの「先入れ先出し」(FIFO)アクセスを提供していますか?

いいえ。Amazon SQS は Amazon SQS キュー内のメッセージへの FIFO アクセスを保証していません。その理由は主に Amazon SQS の分散的性質のためです。特定のメッセージ順序付けが必要な場合、それを扱うようアプリケーションを設計する必要があります。