AWSのメッセージキューイングサービスであるAWS SQSについて詳しく知りたい方いらっしゃるのではないでしょうか。
本記事では、AWS SQSのメリット・機能などについて詳しく解説しています。
AWS SQSについてより詳しく知りたい方はぜひ、参考にしてみてください。
目次
AWS SQSとは
AWS SQSとは、Amazon Simple Queue Serviceの略で、AWSが提供しているフルマネージド型のメッセージキューイングサービスです。
AWS SQSを使用することでアプリケーションのメッセージ送受信を簡単に行うことができます。
メッセージキューイングは、メッセージを一時キューと呼ばれる場所に格納され、アプリケーション間でメッセージををやりとりする仕組みです。
AWS SQSは、AWS試験や業務で使用することがあるため覚えておくと便利です。
AWS SQS関連用語
AWS SQSの説明をする前にまず、関連用語について説明します。
関連用語を理解した上でAWS SQSについて学ぶ方が理解が深まるため、関連用語を最初に覚えましょう。
プロデユーサー
プロデユーサーとは、キューにメッセージを送信するアプリケーションのことです。
コンシューマー
コンシューマーとは、キューからメッセージを受信するアプリケーションのことです。
メッセージの受信は自動的に行われず、キューに対してメッセージが溜まっていないかを定期的に確認し、メッセージがあれば取得するという動作をします。(ポーリング)
コンシューマーは、1つでなくメッセージを増減させることも可能です。
メッセージ
メッセージは、異なるアプリケーション間でSQSを介して送受信されルデータのことです。
プロデューサーによって生成され最大で256KBのサイズまで送受信が可能です。
キュー
キューとは、メッセージを一時的に格納場所のことです。
AWS SQSでは、メッセージをキューに送信し、キューから受信して処理します。
AWS SQSはスタンダードキューとFIFOキューの2種類を提供しており、利用する状況によって2つのキューを使い分けることができます。
2つのキューについては、この後詳しく解説します。
ポーリング
ポーリングとは、コンシューマーがキューに対してメッセージがたまっているかを定期的に確認し、メッセージがあれば取得するという動作のことです。
ショートポーリングとロングポーリングの2種類があり、こちらも利用する状況によって使い分けることができます。
2つのポーリングについてはこの後詳しく解説します。
AWS SQSのメリット
AWS SQSを使用することでどのようなメリットがあるのか解説します。
AWS SQSのメリットを知りたい方は参考にしてみてください。
メリット | 理由 |
遅延性 | エラーのあった処理を数時間後に再処理したり、好きなタイミングでポーリングできます |
優先度有りの処理 | 有料ユーザの処理を優先実行できます |
実行保証性 | メッセージは必ず配信されるという保証があります |
保存性 | 指定回数コンシューマ側でエラーになったメッセージをデッドレターとして保存できます |
並列処理 | バッチ処理等、同じlambdaを同時実行することが可能です |
順序性: | FIFOキューを使用することで、実行順序が大事なアプリの場合に重要です |
AWS SQS機能
AWS SQSの機能について解説しています。
AWS SQSの機能について詳しく知りたい方は参考にしてみてください。
スタンダードキューとFIFOキュー
AWS SQSのキューにはスタンダードキューとFIFOキューの2つがあります。
スタンダードキューは、メッセージの配信順序が保証されず、同一のメッセージが2回配信されることもあります。
FIFOキューは、メッセージの配信順序が保証されておりますが、秒あたりの処理件数はスタンダードキューに劣ります。(先入れ先出し)
ショートポーリングとロングポーリング
AWS SQSのキューのメッセージ取得方法は、ショートポーリングとロングポーリングの2つがあります。
ショートポーリングは、リクエストを受信するとメッセージの有無にかかわらず即レスポンスを返します。
ロングポーリングは、メッセージがある場合には即レスポンスするのは同じですが、メッセージがない場合には設定したタイムアウトのギリギリまでレスポンスを返しません。
デフォルトでは、ショートポーリングが選択されます。
可視性タイムアウト
可視性タイムアウトとは、コンシューマーがメッセージを受信してから、そのメッセージが他のコンシューマーから見えなくなる期間のことです。
この期間内にメッセージを処理して削除しない場合は、メッセージは再びキューに戻ります。
SQSでは、デフォルトの可視性タイムアウトは30秒です1. 最小は0秒、最大は12時間です。
遅延キュー
遅延キューは、キューにメッセージが追加されてから、コンシューマーに表示されるまでの時間を設定することのできる機能です。
遅延キューを作成した場合、そのキューの送信した全てのメッセージは遅延期間中にコンシューマーに表示されません。
遅延キューのデフォルト (最小) 遅延は 0 秒です。 最大値は 15 分です。
メッセージタイマー
メッセージタイマーは、キューに追加されるメッセージの初期非表示期間を指定できる機能です。
メッセージタイマーのデフォルト (最小) 遅延は 0 秒です。 最大値は 15 分です。
デッドレターキュー
デッドレターキューは、正常に処理できないメッセージがキュー内に残り続けないように移動させる機能です。
指定した回数(1~1000回)処理に失敗した場合メッセージを通常のキューから除外してデッドレターキューに移動させます。
まとめ
いかがでしたか。
本記事では、AWS SQSのメリット・機能などについて詳しく解説しています。
AWS SQSについて詳しく知りたい方はぜひ、参考にしてみてください。
・AWS SQSとは
・AWS SQS関連用語
・AWS SQSのメリット
・AWS SQS機能