
CONTENT
こんにちは、KSです。
現在AWS資格であるソリューションアーキテクト合格に向けて勉強中です。
今回はSQSについてまとめてみました。
■SQSとは
・マネージド型のメッセージキューイングサービスプロデューサーから送信されたメッセージをSQSに貯め、コンシューマーはSQSにメッセージを取りにいく
・アプリケーションの分離に貢献するサービス
・コンシューマーに「EC2」「Lambda」などを指定できSQSにポーリングを行う
■ポーリング
・ショートポーリング
⇒メッセージ取得リクエストされた際、メッセージがなくてもすぐレスポンスを返却
⇒APIコール数が多くなる
・ロングポーリング
⇒メッセージ取得リクエストされた際、メッセージが届くまで最大20秒待機
■可視性タイムアウト
・コンシューマーによってポーリングされた後、他のコンシューマーが受信できない時間のこと
・デフォルト30秒
・可視性タイムアウト内にメッセージ処理に失敗した場合、メッセージはキューに戻る
■デッドレターキュー
・処理失敗などでメッセージがキューに戻る回数がある閾値を超えた場合、デッドレターキューに送ることができる
・キューAでデッドレターキューを設定したい場合、キューBを新たに作成しデッドレターキューに設定する
■遅延キュー/メッセージタイマー
・遅延キュー
⇒プロデューサーがSQSに送信したメッセージをコンシューマーが一定時間アクセスできないようにする機能
⇒すべてのメッセージが対象
・メッセージタイマー
⇒プロデューサーがSQSに送信したメッセージをコンシューマーが一定時間アクセスできないようにする機能
⇒特定のメッセージが対象
■キューの種類
・スタンダードキュー(標準キュー)
⇒送信順序が保証されない
⇒重複送信がまれに発生
⇒256KBまで
⇒安価
・FIFOキュー
⇒送信順序が保証されている
⇒重複して受信することはない
⇒スループット上限あり
■リクエスト/レスポンス形式の実現
・SQSは単方向の通信しかできないが、SQS Temporary Queue Clientを使うことでリクエスト、レスポンスの形を実現できる