

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SQS FIFO キューでのメッセージグループ ID の使用
<a name="using-messagegroupid-property"></a>

FIFO (First-In-First-Out) キューでは、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) はメッセージを個別のグループに整理する属性です。同じメッセージグループ内のメッセージは常に 1 件ずつ厳密な順序で処理されるため、同じグループの 2 つのメッセージが同時に処理されることはありません。標準キューでは、`MessageGroupId` を使用すると[フェアキュー](sqs-fair-queues.md)が有効になります。厳密な順序付けが必要な場合は、FIFO キューを使用します。

**Topics**
+ [Amazon SQS での複数の順序付けされたメッセージグループのインターリーブ](interleaving-multiple-ordered-message-groups.md)
+ [Amazon SQS でのマルチプロデューサー/マルチコンシューマーシステムにおける重複処理の防止](avoding-processing-duplicates-in-multiple-producer-consumer-system.md)
+ [Amazon SQS で同じメッセージグループ ID に対する大量のメッセージバックログを避ける](avoid-backlog-with-the-same-message-group-id.md)
+ [Amazon SQS で仮想キューでの同じメッセージグループ ID の再利用を避ける](avoiding-reusing-message-group-id-with-virtual-queues.md)

# Amazon SQS での複数の順序付けされたメッセージグループのインターリーブ
<a name="interleaving-multiple-ordered-message-groups"></a>

単一の FIFO キュー内で複数の順序付けされたメッセージグループをインターリーブするには、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) を各グループ (異なるユーザーのセッションデータなど) に割り当てます。これにより、複数のコンシューマーが同時にキューから読み取ることが可能になり、同一グループ内のメッセージが順序通りに処理されるようになります。

特定の `MessageGroupId` を持つメッセージが処理中で不可視になっている場合、そのメッセージが削除されるか可視性タイムアウトが期限切れになるまで、他のコンシューマーは同じグループのメッセージを処理できません。

# Amazon SQS でのマルチプロデューサー/マルチコンシューマーシステムにおける重複処理の防止
<a name="avoding-processing-duplicates-in-multiple-producer-consumer-system"></a>

メッセージの順序付けが優先されない高スループットかつ低レイテンシーのシステムでは、プロデューサーは各メッセージに一意の [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) を割り当てることができます。これにより、Amazon SQS FIFO キューは、マルチプロデューサー/マルチコンシューマーの構成であっても重複を排除できます。このアプローチでは重複メッセージの防止は可能ですが、各メッセージが独立したグループとして扱われるため、メッセージの順序は保証されません。

複数のプロデューサーとコンシューマーを持つシステムでは、常に配信が重複するリスクがあります。コンシューマーが可視性タイムアウトの期限内にメッセージを処理できなかった場合、Amazon SQS はそのメッセージを再度利用可能にし、別のコンシューマーが取得することが可能になります。この問題を軽減するため、処理時間に基づいて適切なメッセージの確認と可視性タイムアウトの設定を確認してください。

# Amazon SQS で同じメッセージグループ ID に対する大量のメッセージバックログを避ける
<a name="avoid-backlog-with-the-same-message-group-id"></a>

FIFO キューは、最大 120,000 件の処理中メッセージ (コンシューマーが受信したがまだ削除していないメッセージ) に対応します。この制限に達した場合、Amazon SQS はエラーを返しませんが、処理に影響が出る可能性があります。これらの制限を超えた増加を希望する場合は、[AWS サポート](https://docs.aws.amazon.com/awssupport/latest/user/create-service-quota-increase.html)にリクエストしてください。

FIFO キューは、最初の 120,000 件のメッセージをスキャンして、使用可能なメッセージグループを判別します。大規模なバックログが 1 つのメッセージグループに蓄積された場合、後で送信される他のグループのメッセージは、バックログが処理されるまでブロックされたままになります。

**注記**  
コンシューマーがメッセージの処理に繰り返し失敗すると、メッセージバックログが発生する可能性があります。これは、メッセージのコンテンツの問題またはコンシューマー側の障害が原因である可能性があります。メッセージ処理の遅延を防ぐには、試行が複数回失敗した場合、未処理のメッセージを移動するように[デッドレターキュー](sqs-dead-letter-queues.md)を設定します。これにより、同じメッセージグループ内の他のメッセージを処理できるようになり、システムのボトルネックを防ぎます。

# Amazon SQS で仮想キューでの同じメッセージグループ ID の再利用を避ける
<a name="avoiding-reusing-message-group-id-with-virtual-queues"></a>

共有ホストキューで仮想キューを使用する場合は、異なる仮想キュー間で同じ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) を再利用しないでください。複数の仮想キューが同じホストキューを共有し、同じ `MessageGroupId` を持つメッセージが含まれている場合、それらのメッセージは相互にブロックされ、効率的な処理が妨げられる可能性があります。メッセージ処理を円滑に行うには、異なる仮想キュー内のメッセージに一意の `MessageGroupId` 値を割り当てます。