1. ホーム
  2. amazon-web-services

[解決済み] SQSとRabbitMQの比較

2022-03-04 10:02:02

質問

処理のためのキューを作成する必要があります。キュー自体は比較的低容量です。書き込みは1時間あたり1,000件程度です。各タスクの実行はそれぞれ1分程度で、アイテムがキューに追加されるとほぼ同時に処理されます。

Amazon SQSのような既成のものではなく、RabbitMQを実装したいと思うような理由はあるのでしょうか?アプリケーションがSQSのようなものでなく、独自のキューイングシステムを必要とする理由は何でしょうか?

解決方法は?

まず、Amazon SQSは疑似キューであり、すべてのメッセージの配信(キューに到達した場合)は保証されますが、キューで通常行われるFIFO方式ではありません。

メッセージの順序が重要で、キューをFIFO方式で動作させたい場合、Amazon SQSのドキュメントには、Amazon SQSからのメッセージは順番通りに届かないので、アプリケーションロジックでこれを処理することが記載されています。

これに比べ、私の知る限り、RabbitMQではワーカーキューを実装することができます。もし、アプリケーションレベルでキューメッセージの順序付けを実装する必要がないのであれば、こちらの方がより好ましい選択肢でしょう。

以下は、どちらを選ぶかの判断材料となるものです。

  1. 前述したキューメッセージの並び。

  2. RabbitMQは自分でサーバーを立てることができますが、Amazon SQSの場合はそうもいかないので、ここでコストがかかってしまいます。

  3. 自分でサーバーを立ち上げるには、隅々まで手を抜かないよう、十分な知識が必要です。Amazon SQSの場合、すぐに使い始めることができるので、そのようなことはありません。

  4. RabbitMQサーバーを自社で所有すると、メンテナンスコストがかかりますが、Amazon SQSの場合はそのようなことはありません。

更新情報です。

  1. Amazon SQSがFIFOキューをサポートするようになりました。