プロジェクト炎上中のためお休み中

【SQSとは?】図解してその特徴をまとめてみた。

おつかれさまです。あきおです。

本日はAWS SQSの特徴を図解してまとめてみた。

AWSのSQSは2004年にサービスインをしていて、システムにおいてキューが果たす役割の大きさを感じる。

あきお
16年の歳月がたった今、まとめようとしている訳です。。。遅い(笑)

SQSとは

そもそもSQSって何だろうと思い、「SQSとは」で検索してみた。

プロセス間通信などのスレッド間通信に使われるコンポーネントで制御やデータ伝達をするポーリング型キューサービス

フルマネージド型で提供され、高可用性・高スケーラビリティ・高スループット・低コストを実現する

60秒から14日間までメッセージを保存することが可能で、基本的に256KBまでのデータをキューに格納できる。

あきお
画像データ等を扱う場合には、Kinesisを使用したりするらしい

以下に、SQSでの処理の流れを図解してみた。

  • SQS処理の流れ
    • ①通信内容をSQS側に送信し、キューとして保存
    • ②受信側がSQS側に通信内容を問合せ
    • ③キューにデータがあれば受信

処理の流れは大まかに掴むことができたが、ポーリングとは何だろう。

ポーリングとは

気になったので、ポーリングについてもまとめてみた。

ポーリングを使っていない処理。この場合、受信側がBusyな状態だと処理が滞る可能性がある。

ポーリングを使っている処理。この場合、中継点を設けているため、受信側のタイミングで中継点に問合せができる。

SQSの特徴

AWS SQSの主な特徴は次のようになっている。

説明
Short Polingキューが空の場合でも即時にリターンする
Long Polingキューが空の場合はタイムアウトまで待つ
デッドレターキューずっと残ったメッセージを別キューに移動し、正常に処理できなかったメッセージを隔離する
Visibility Timeout新しいメッセージを指定時間見えなくする

Visibility Timeoutの内容を詳しくみてみる。

Visibility Timeout

特定のインスタンスに優先して処理をさせたい場合などに使用する。

時間単位で設定することができ、10分と設定することで、10分間は②、③のインスタンスからSQSのキューメッセージを見れなくする。

SQSのキュー

SQSには標準キューとFIFOキューがある。それについてもまとめてみた。

標準キュー

標準キューの特徴は、取得のタイミングによって同じメッセージが2回配信される点だ。

あきお
同じメッセージを2回受信しても影響がない設計にする必要がある

FIFOキュー

FIFOキューは、標準キューのデメリットを改善したキューであり、同一メッセージの二重取得を解消した。

ただ、秒あたりの処理件数は標準キューに劣る。

まとめ

AWS SQSの特徴を図解してまとめてみた。

今後はユースケースを理解してサービスを利用していけそうだ。

それではおつかれさまでした。

Amazon Web Services, Inc.

Amazon SQS の完全マネージド型のメッセージキューが、マイクロサービス、分散システム、およびサーバーレスアプリケ…

最新情報をチェックはこちらから!