DVAAWSのサービスを使用した開発
あるアプリケーションはSQS標準キューをポーリングするワーカープロセスを実装しています。メッセージが少ない時間帯はキューが空のことが多く、ReceiveMessage APIが空レスポンスを大量に返すためAPI呼び出しコストが増加しています。コストを最小化しつつメッセージを迅速に処理するには、ReceiveMessage APIのどのパラメータを設定するのが最も効果的ですか?
AMaxNumberOfMessages を 10 に設定して一度に多くのメッセージを取得する
MaxNumberOfMessages を 10 に設定する方法は一度に取得する最大メッセージ数(最大10)であり、空ポーリング自体は減りません。
BWaitTimeSeconds を 20 に設定してロングポーリングを有効にする
✓ 正解
WaitTimeSecondsを1〜20秒に設定するとSQSロングポーリングが有効になります。キューにメッセージが到着するか指定時間が経過するまでAPIコールを保留するため、空レスポンスの数が大幅に減りコストを削減できます。
CVisibilityTimeout を 0 に設定してメッセージをすぐに再処理できるようにする
VisibilityTimeout を 0 に設定する方法はメッセージが即座に他のワーカーに再配信され二重処理が起きます。
DDelaySeconds を 0 に設定してメッセージの遅延を排除する
DelaySeconds を 0 に設定する方法はキューに送信されたメッセージが最初に利用可能になるまでの遅延時間を設定するパラメータであり、0に設定しても空ポーリングの削減とは無関係です。
解説
WaitTimeSecondsを1〜20秒に設定するとSQSロングポーリングが有効になります。キューにメッセージが到着するか指定時間が経過するまでAPIコールを保留するため、空レスポンスの数が大幅に減りコストを削減できます。
選択肢Aの MaxNumberOfMessages を 10 に設定する方法は一度に取得する最大メッセージ数(最大10)であり、空ポーリング自体は減りません。
選択肢Cの VisibilityTimeout を 0 に設定する方法はメッセージが即座に他のワーカーに再配信され二重処理が起きます。
選択肢Dの DelaySeconds を 0 に設定する方法はキューに送信されたメッセージが最初に利用可能になるまでの遅延時間を設定するパラメータであり、0に設定しても空ポーリングの削減とは無関係です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →