タダです。
試験を受けるのは、6/27になりました。 前回がDynamo DBでしたが、今回はSQSについてです。
サービス概要
SQSは、メッセージキューサービス。 主に、アプリケーション連携で使う。
Visibility Timeout(可視性タイムアウト)
受信されたメッセージを一定時間受信できないようにする設定 Visibility Timeoutは、キューに設定された値が全てのメッセージに適用されるが、適宜時間を延長したり、 「0」にすることで解除もできる。
メッセージの順序
Queueに保存されたメッセージの取り出し順序はベストエフォートであり、保障されていない。 順序通りに取り出すためにはアプリ側で制御する必要がある。
同じメッセージを複数回受信する可能性がある。
少なくとも1回の配信。 メッセージは複数のサーバー/データセンタに保持。
Long Polling
一度のリクエストにおける待ち時間を設定するのが、Long Polling。
Short Polling
メッセージ受信後、すぐに応答が必要な場合は、Short Pollingを使う。 複数のキューを単一スレッドでポーリングスル場合、Long Pollingすると他のキューにアクセスできない。 ※基本は、Long Pollingが推奨(呼び出し元のCPU負荷、リクエスト課金等)で、 複数のキューを使う場合、マルチスレッドでPollingする。
Delay Queues(遅延キュー)
Queusに送信されたメッセージを一定時間経過後に受信可能にする機能。 Visibility Timeoutとの違いは、遅延キューは送信されてからのキューを受信可能にする時間を遅らせる点。
デッドレターキュー(Dead Letter Queues)
指定した回数受信したメッセージを別のキューに移動する機能。 処理が何らかの理由で失敗した場合、メッセージが滞留するが、それを別のキューに移動させる。 0~900secで設定できる
SQSの上限
1、メッセージ保持期限 削除されないメッセージはデフォルトで4日間保持 保持期間は、60sec ~ 14daysの間で変更可能
2、In Flight(受信されたメッセージ&Visibility Timeout内)メッセージ 1つのキューごとに最大120,000 In Flightメッセージ 超えるとOverLimitエラー
3、メッセージの最大サイズは、256KB