翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SQS
Amazon SQS は、順序付けを保証しない標準キューと、特定のメッセージグループ内の順序を保証する FIFO キューをサポートしています。
キューはマイクロサービスを振り分ける一般的な方法であり、最大 14 日間のメッセージに耐久性のあるストレージを提供します。キューはプロデューサーによって入力され、コンシューマーによってドレインされます。AWS Lambda をコンシューマーとして使用する場合、SQS キューをイベントソースとして設定できます。この場合、Lambda サービスのイベントソースマッピング (ESM) はキューをポーリングし、利用可能になると Lambda 関数にメッセージを配信します。Amazon Elastic Container Service (Amazon ECS) や Amazon Elastic Compute Cloud (Amazon EC2) など、他のタイプのコンピューティングサービスで実行されるマイクロサービスは、利用可能になったときにキューから新しいメッセージを取得する独自のポーリングメカニズムを実装する必要があります。
Amazon SQS 用の Lambda ESM はメッセージフィルタリングもサポートしています。これにより、メッセージ本文の内容に基づいてキュー内のメッセージのサブセットのみを処理できます。
ポーリング
Amazon SQS は、メッセージのショートポーリングとロングポーリングをサポートしています。ショートポーリングは、サーバーのサブセットをクエリして使用可能なメッセージを検索し、すぐに返します。ただし、使用可能なすべてのメッセージを返さない場合があります。これは、アプリケーションがメッセージをできるだけ早く消費する必要がある場合や、長時間の待機を許容できない場合に便利です。
ロングポーリングは、設定可能な時間が経過するか、設定可能な数のメッセージが受信されるまで待機してから、メッセージを返します。これにより、空のポーリングの数、つまりメッセージが返されないポーリングの数、特にメッセージを受信しないキューの数を減らすことができます。空のポーリングの数を減らすと、リクエストごとにこのサービスが課金され、各ポーリングオペレーションがリクエストであるため、Amazon SQS のコストを削減できます。
ガイダンス
キューは、次の場合に適しています。
-
コンポーネントを切り離し、コンポーネント間で同期通信を行う必要がない場合。
-
可用性が異なるサービスレベルアグリーメント (SLA) やサービスレベル目標 (SLO) があるコンポーネント間で通信している場合。
-
1 つのメッセージのセットに通常 1 つのコンシューマーがある場合。
以下の場合は、代替オプションを検討してください。
-
同期通信が必要である場合。
-
正しいコンシューマーにメッセージを送信するために複雑なルーティングロジックが必要な場合。