Help us understand the problem. What is going on with this article?

SQSとmessage queingのメモ書き

MessageQueueとは

端的にいうと異なるソフトウェアでデータの通信を行うため使う機構です。

一般的なRESTAPIの構造だと、requestをしたらresponseが返るまで処理が行えません。そのため非同期の処理を行うことはできません。
なので、ソフトウェア間の通信を一旦 MQに格納して、双方の任意のタイミングで送受信を行えるようにするのがMQの思想です。

image.png
(AWSサイトより引用)

SQS

Amazonが提供しているMessageQueueのサービスで二つのタイプからMQを構築することができます。

standard

性能を重要視した代わりに、順番の保証を捨てたMQです。

無限に近いスループットを持っていますが、
その代わりに、値を重複して返したり、順番もずれちゃう可能性があるため
冪等性を持った処理などに向いている種類です。

FIFO

一般的なデータ構造のキューに基づいたMQです。
FIFOに基づいているため、順番は保証されますが、速度に限界があります。

スループットは1秒間に3000程ですが、順番の保証と必ず1度しか値を返さないという保証があるため、処理の順番が大事な場合に向いてます。

MQが使えるケース

  • 画像の加工など非常に重い処理を並列で行いたい場合
    • 画像などを一旦MQに格納して同時にAWSのlambdaなどで加工を噛ませる。
    • 画像が必要になったタイミングでGETで取得してもらう。
  • バッチ処理を数で行いたい場合
    • 処理に必要なデータをMQに書き込んで行き、規定数に到達したらバッチを走らせるという構成。
weblio
「Weblio辞書」「Weblio英会話」の運営企業。人々の選択肢を広げる新たなサービスに挑戦中!
https://www.weblio-inc.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away