公開日:11/7/2021  更新日:12/25/2021

  • twitter
  • facebook
  • line

【AWS】SQS (Simple Queue Service) についてのメモ書き

メモ

  • Amazon SQS(Simple Queue Service)とは、AWSが提供する「サーバーレスでキューイングを実現できる」サービス。
  • SQS は「プロデューサー」と「コンシューマー」とやり取りをする。
  • 「プロデューサー」は Queue にメッセージを送信するアプリケーションなどを指す。
  • 「コンシューマー」は Queue からメッセージをポーリングして受信するアプリケーションなどを指す。
  • Queue を処理するアプリケーションのプロセスをワーカーと呼ぶ。
  • Queue にはスタンダードキュー (順序を問わず最低一回は処理) とFIFOキュー (先入れ先出し方式) が存在する。
  • スタンダードキューの場合、「コンシューマー」がメッセージ受信成功後に削除しないと、メッセージ保持期間メッセージが残り続ける (ポーリングの度に受信される) 。
  • キューの設定にデッドレターキュー(DLQ)を設定している場合、最大受信数に達したメッセージはデッドレターキューに移動される。
  • つまりDLQの最大受信数を1に設定していた場合、一度受信されたメッセージはDLQに移動するので削除は必要ない。
  • SQSトリガーにlambdaを設定しメッセージ受信を行う場合、メッセージは正常終了後に自動で削除される。
    SQSのフロー
  • Visibility Timeout は複数ワーカーが存在する際に、ポーリング中のメッセージを所定時間の間見えなくして他ワーカーによる同一メッセージの重複処理を防ぐ仕組み。

メトリクスについて

SQSメトリクス
1.最も古いメッセージのおよその期間 (ApproximateAgeOfOldestMessage)
3 回以上受信されていない 2 番目に古いメッセージのおおよその経過時間。
2.遅延メッセージのおよその数 (ApproximateNumberOfMessagesDelayed)
遅延が発生したため、すぐに読み取ることのできない、キューのメッセージ数。
3.表示されないメッセージのおよその数 (ApproximateNumberOfMessagesNotVisible)
処理中のメッセージの数。メッセージがクライアントに送信されたが、まだ削除されていない場合、または表示期限に達していない場合、メッセージは処理中とみなされます。
4.表示されたメッセージのおよその数 (ApproximateNumberOfMessagesVisible)
キューから取得可能なメッセージの数。
5.空の受信数 (NumberOfEmptyReceives)
メッセージを返さなかった ReceiveMessage API 呼び出しの数。
6.削除されたメッセージの数 (NumberOfMessagesDeleted)
キューから削除されたメッセージの数。
7.受信済みメッセージの数 (NumberOfMessagesReceived)
ReceiveMessage アクションへの呼び出しで返されたメッセージの数。コンシューマーが受信したメッセージ数。
8.送信済みメッセージの数 (NumberOfMessagesSent)
キューに追加されたメッセージの数。プロデューサーが送信したメッセージ数。
9.送信メッセージサイズ (SentMessageSize)
キューに追加されたメッセージのサイズ。

参考

AmazonSQSで利用可能なCloudWatchメトリクス

戻る