それぞれが個別の関数を実行する個々のコンポーネントでアプリケーションを構築することは、拡張性と信頼性を向上させるベストプラクティスです。メッセージキューを使用すると、あらゆる量のアプリケーションコンポーネント間でメッセージを送信、保存、受信できます。メッセージが失われることも、他のサービスが常に利用可能である必要もありません。

メッセージキューでは、以下にご説明するとおり、メッセージの配信方法、優先順位、セキュリティを指定できるようにするいくつかのオプションを提供しています。キューは、ファンアウト設計パターンでPub/Sub メッセージングと組み合わせることもできます。

メッセージキューとは?

Amazon Simple Queue Service (SQS) は、わずか 3 つのシンプルなコマンドで開始できます。

Amazon SQS を無料で始める

AWS 無料利用枠には、Amazon Simple Queue Service (SQS) でのリクエスト 100 万件が含まれます。

AWS 無料利用枠の詳細はこちら »


ほとんどのメッセージキューでは、メッセージの取得に、プッシュおよびプルオプションの両方を利用できます。プルでは、キューに新規メッセージのクエリを実行し続けます。プッシュでは、メッセージが使用可能な場合に、コンシューマーが通知を受け取ります (これは Pub/Sub メッセージングとも呼ばれます)。ロングポーリングを使用して、新しいメッセージの到着を、指定された時間の間プル配信が待機してから終了できるようにすることも可能です。

メッセージキューの多くは、メッセージへの特定の配信時間の設定をサポートしています。すべてのメッセージを共通遅延にする必要がある場合は、遅延キューを設定できます。

メッセージキューでは、冗長性と高可用性を確保するためにメッセージのコピーを複数保存し、通信障害やエラーが発生した場合にメッセージを再送して少なくとも 1 回は必ず配信されるようにします。

重複を許容できない場合は、「先入れ先出し」(FIFO) メッセージキューにより、重複を自動的に削除して各メッセージが 1 回 (1 回のみ) 配信されるようにします。

このキューでは、キューの「先頭」とも呼ばれる最も古い (最初の) エントリが最初に処理されます。Amazon SQS FIFO キューの詳細については、開発者ガイドをご覧ください。

当社の以下のブログを読むこともできます。Using Python and Amazon SQS FIFO Queues to Preserve Message SequencingHow the Amazon SQS FIFO API WorksFIFO Queues with Exactly-Once Processing & Deduplication

デッドレターキューは、他のキューが正常に処理できないメッセージの送信先に使えるキューのことです。これにより、キューの処理をブロックしたり、正常に消費されない可能性があるメッセージに対して CPU サイクルを使用したりすることなく、対象のメッセージを簡単に分離して、さらなる調査を行うことができます。

デッドレターキューの詳細については、ブログ Amazon SQS Dead-Letter Queues to Control Message Failure をご覧ください。Amazon SQS でデッドレターキューを使用する方法については、開発者ガイドをご覧してください。

通常、メッセージに優先度を割り当てて、メッセージがキューのどこに追加されるかを決め、優先度の高いメッセージを先頭に移動して最初に処理されるようにできます。

ほとんどのメッセージキューはベストエフォート型の順序付けを提供します。これによりメッセージは通常、送信されたのと同じ順序で配信され、各メッセージは少なくとも 1 回は配信されます。

ポイズンピルメッセージは、受信されたのに処理できない特殊なメッセージです。ポイズンピルは、それ以上新しい入力を待つことがないよう、コンシューマーに操作を終了する合図を送るための仕組みで、クライアント/サーバーモデルでソケットを終了するのと似ています。

わずか 3 つのシンプルなコマンドで、無料でお試しいただけます。

無料でお試しください
blank