メッセージキューは、サーバーレスおよびマイクロサービスアーキテクチャで使われる非同期サービス対サービスの通信形態です。メッセージは、処理され、削除されるまではキューに格納されています。各メッセージは、単一のコンシューマーによって一度だけ処理されます。メッセージキューを使うことで、重い処理の分割、バッファーまたはバッチ処理、およびスパイクの多いワークロードを円滑にすることができます。
広義のメッセージキューをよりよく理解するのに役立ついくつかのリソースを以下に示します。AWS でのメッセージキューについては、Amazon Simple Queue Service (SQS) のウェブサイトをご覧ください。
近年のクラウドアーキテクチャでは、アプリケーションは、開発、デプロイ、管理がより簡単に行える、独立した小さな構成要素に分解されています。メッセージキューは、この分散アプリケーションに対して通信や調整を行います。メッセージキューは、分解したアプリケーションのコーディングを大幅に簡素化すると同時に、パフォーマンスや信頼性、拡張性を高めることができます。
メッセージキューを使うと、システムのさまざまな部分が通信およびオペレーションの処理を非同期で行えます。メッセージキューは、メッセージを一時的に保存する軽量バッファと、ソフトウェアコンポーネントがキューに接続してメッセージを送受信できるようにするエンドポイントを提供します。通常、メッセージは小さく、リクエスト、返信、エラーメッセージ、または単なる情報のようなものである可能性があります。メッセージを送信するには、プロデューサーと呼ばれるコンポーネントがメッセージをキューに追加します。コンシューマーと呼ばれる別のコンポーネントがメッセージを取得して何らかの処理をするまで、メッセージはキューに保存されます。
多くのプロデューサーとコンシューマーがこのキューを使用できますが、各メッセージは 1 人のコンシューマーが 1 回だけ処理します。このため、このメッセージングパターンはしばしば 1 対 1 またはポイントツーポイント通信と呼ばれます。1 つのメッセージを複数のコンシューマーが処理する必要がある場合、メッセージキューと Pub/Sub メッセージングを、ファンアウト設計パターンで組み合わせることができます。詳細については、「Pub/Sub メッセージングとは?」を参照してください。AWS での Pub/Sub メッセージングの概要については、Amazon Simple Notification Service (SNS) のウェブサイトをご覧ください。