AWS SQS

【初心者向け】Amazon SQS ショートポーリングとロングポーリングをわかりやすく解説

こんにちは、かずきゅーです。

今回はAWSのサービスの1つであるAmazon SQSの中でも、ショートポーリングロングポーリングについて初心者向けに解説していきます。

この記事を読んで、ポーリングについてしっかり理解していきましょう!

ポーリングとは

まずはじめにポーリングについてです。

ポーリングとは、

コンシューマーがキューに対してメッセージが溜まっていないかを定期的に確認し、メッセージがあれば取得するという動作

を指します。

ここで出てきた「コンシューマー」「キュー」「メッセージ」が何のことを指しているかわからない場合はこちらの記事をご覧ください。

初心者向けSQSの基本用語解説
【初心者向け】Amazon SQS の基本用語をわかりやすく解説

2023/9/9  

Amazon SQSの基本用語を解説します!

SQSでは2種類のポーリングを提供します。

ポーリングの種類

  • ショートポーリング(デフォルト)
  • ロングポーリング

ショートポーリングロングポーリングその名の通りキューのポーリングの間隔の設定によって種類が分かれます。

ではその設定はいつどこで行うのかというと、

SQSのキューを作成する時に、メッセージ受信待機時間の値を変更することで設定ができます。

キューの設定画面

ショートポーリング

ショートポーリングはSQSでのデフォルトの設定です。

上記の画像もそうですが、メッセージ受信時間を0秒に設定するとショートポーリングとなります。

ショートポーリングに設定するとポーリング処理が行われた際に、キューの中のメッセージの有無に関わらず即座にレスポンスが返されるようになります。

ポイント

  • 空のレスポンスを返す可能性がある。
  • SQSはリクエスト回数によって料金が発生するため、コストパフォーマンスが悪くなる。

ロングポーリング

ロングポーリングとはポーリング処理が行われた際に、キュー内のメッセージが空の場合はメッセージがキューに到達するかタイムアウトするまで(メッセージ受信時間が経過するまで)レスポンスは返却されません。

SQSでロングポーリングに設定するには、メッセージ受信時間を0秒以上にする必要があります。

メッセージ受信時間の最大設定時間は20秒となっており、大きな値を設定するほどにリクエストの回数が減ります。

ポイント

  • メッセージ受信時間が長くなるほどリクエストの回数を減少させることができる。
  • コストパフォーマンスが良くなる。

まとめ

いかがでしたでしょうかショートポーリングとロングポーリングについて理解できたでしょうか。

どちらのポーリングを使用するのか参考になりましたでしょうか。

ここで補足なのですが、AWSはロングポーリングを使用することを推奨しています。

しかし、複数のキューを単一スレッドで処理する場合などショートポーリングを使用することが良いユースケースもありますので、実際に使用する際に何を目的としてSQSを使用するのか整理してから設定してみてください。

以上、かずきゅーでした。

-AWS, SQS