📥

Amazon MQとAmazon SQSの違いと選定基準

2023/03/17に公開

初めに

Amazon MQ / Amazon SQSはどちらもメッセージキューイングサービスですが、それぞれの違いとどんな時にどちらを使用すべきか?という部分が自分の中で曖昧だったので調査してまとめました。

選定基準の結論

AWS Startup Loft TokyoにてSAの方に質問してきました!

[Amazon MQ]

  • 既存サービスでMQを使っており、そこからAWSへ乗せ替えたい場合

[Amazon SQS]

  • 上記以外の場合(新規立ち上げなど)

それぞれのメリット・デメリットについては以下に記載します

Amazon MQについて

https://aws.amazon.com/jp/amazon-mq/

ActiveMQ/RabbitMQいずれかのブローカーを選択してインスタンスを立ち上げる。
そのため、キューを使っていない時間帯でもずっとインスタンス料金が課金される。

使用状況によってはスケーリングの考慮やマルチAZによる冗長化も必要。

Amazon SQSについて

https://aws.amazon.com/jp/sqs/

フルマネージドのメッセージキューサービス。
Amazon MQと異なり、スケーリングの考慮や冗長化を考慮する必要が無くなる。
また、従量課金による請求なので使用した分だけの料金になる。(インスタンス料金みたいなのは無い)

Lambdaとの相性がとても良く、SQSにデータが溜まった時点でLambdaを実行するみたいなことも簡単に実現できるとのこと!
1件ずつではなくてある程度溜まった時点で実行もできるらしい。

どんな時にどちらを選定するか?

結論に記載しましたが、

  • 既存でMQを使用していてAWSにそのまま乗せたい → Amazon MQ
  • 新規でサービスを立ち上げる → Amazon SQS

という見解。

何よりもSQSだとインスタンスの管理が不要になる&使った分だけ課金される仕組みなのでコスパ面でも軍配が上がる可能性が高そう。

※毎日それなりの量で決まった分だけキューイングされるサービスならMQに軍配が上がることもあるかも
(でもそんなケースはあまり遭遇しない気もする)

まとめ

今回はAmazon MQとAmazon SQSについての選定基準をまとめました。
これからAWSでメッセージキューを使いたい方のヒントになれると幸いです。

Discussion