Amazon SQS のメッセージキュー - Amazon Simple Queue Service

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

Amazon SQS のメッセージキュー

次の表に、メッセージに関連するクォータの一覧を示します。

クォータ 説明
バッチ処理されたメッセージ ID バッチ処理されたメッセージ ID には最大80文字を使用できます。次の文字を使用できます。英数字、ハイフン (-)、およびアンダースコア (_)。
メッセージ属性 メッセージには、最大10個のメタデータ属性を含めることができます。
メッセージバッチ

ひとつのメッセージBatchリクエストに最大10個のメッセージを含めることができます。詳細については、AmazonSQSBufferedAsyncClient の設定 セクションの Amazon SQSのバッチアクション を参照してください。

メッセージの内容

メッセージには、XML、JSON、およびフォーマットされていないテキストのみを含めることができます。次の Unicode 文字を使用できます。#x9 | #xA | #xD | #x20から#xD7FF | #xE000から#xFFFD | #x10000から#x10FFFF

この一覧に含まれていない文字は、すべて拒否されます。詳細については、文字に関するW3C仕様を参照してください。

メッセージグループ ID

同じメッセージグループ IDを持つメッセージのラージバックログを構築しないように、バックログからメッセージを消費します。

MessageGroupIdはFIFOキューには必須です。これを標準キューには使用できません。

空でないMessageGroupIdメッセージ付きを関連づける必要があります。MessageGroupIdを指定しない場合、アクションは失敗します。

MessageGroupIdの最大長は128文字です。有効な値:英数字と句読点(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)

メッセージの保持 デフォルトでは、メッセージは4日間保持されます。最小の期間は60秒(1分) です。最大は1,209,600秒(14日)です。
メッセージのスループット

標準キュー

標準キューは、API アクション (SendMessageReceiveMessage、または DeleteMessage) ごとに 1 秒あたり非常に多い、ほぼ無制限の API コール数をサポートします。この高スループットにより、リアルタイムのデータストリーミングや大規模なアプリケーションなど、大量のメッセージをすばやく処理する必要があるユースケースに最適です。標準キューは需要に応じて自動的にスケールしますが、特にワークロードの高いリージョンでは、最適なパフォーマンスを確保するために使用パターンをモニタリングすることが重要です。

FIFO キュー

  • FIFO キュー内の各パーティションは、API アクション (SendMessageReceiveMessageDeleteMessage ) ごとに 1 秒あたり 300 件のトランザクションに制限されます。この制限は、特に高スループット以外のモードに適用されます。高スループットモードに切り替えることで、このデフォルトの制限を超えることができます。高スループットモードを有効にするには、「Amazon SQS における FIFO キューの高スループットの有効化」を参照してください。

  • バッチ処理を使用すると、FIFO キューは API アクション (SendMessageReceiveMessageDeleteMessage) ごとに 1 秒あたり最大 3,000 件のメッセージをサポートします。1 秒あたり 3,000 件のメッセージは、API コールごとのメッセージ数を 10 件として、300 件の API コールを表します。

FIFOキューの高スループット

Amazon SQS の FIFO 制限は、メッセージ制限ではなく、API リクエスト数に基づきます。高スループットモードでは、これらの API リクエスト制限は以下のとおりです。

トランザクションスループットの制限 (非バッチ処理 API コール)

これらの制限は、各 API オペレーション (SendMessageReceiveMessageDeleteMessage など) を個別に実行できる頻度を定義し、許可された 1 秒あたりのトランザクション数 (TPS) 内で効率的なシステムパフォーマンスを確保します。

以下の制限は、非パッチ処理 API コールに基づいています。

  • 米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド): 最大 70,000 のトランザクション/秒 (TPS)。

  • 米国東部 (オハイオ) と欧州 (フランクフルト): 最大 19,000 TPS。

  • アジアパシフィック (ムンバイ)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京): 最大 9,000 TPS。

  • 欧州 (ロンドン) と南米 (サンパウロ): 最大 4,500 TPS。

  • その他すべての AWS リージョン: デフォルトのスループットは 2,400 TPS です。

バッチ処理によるスループットの最大化

1 回の API コールで複数のメッセージを処理するため、効率が大幅に向上します。バッチ処理では、各メッセージを個別に処理する代わりに、1 つの API リクエストで最大 10 件のメッセージを送信、受信、または削除できます。これにより、API コールの総数が減少し、リージョンのトランザクション制限 (TPS) 内に留まりながら 1 秒ごとにより多くのメッセージを処理できるため、スループットとシステムパフォーマンスを最大化できます。詳細については、「Amazon SQS での水平スケーリングとアクションのバッチ処理を使用したスループットの向上」を参照してください。

以下の制限は、バッチ処理 API コールに基づいています。

  • 米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド): 1 秒あたり最大 700,000 のメッセージ (非バッチ処理の制限である 70,000 TPS の 10 倍)。

  • 米国東部 (オハイオ) と欧州 (フランクフルト): 1 秒あたり最大 190,000 のメッセージ。

  • アジアパシフィック (ムンバイ)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京): 1 秒あたり 90,000 のメッセージ。

  • 欧州 (ロンドン) と南米 (サンパウロ): 1 秒あたり最大 45,000 のメッセージ。

  • その他すべての AWS リージョン: 1 秒あたり最大 24,000 のメッセージ。

バッチ処理を超えたスループットの最適化

バッチ処理はスループットを大幅に向上させますが、FIFO パフォーマンスを最適化する他の戦略を検討することが重要です。

  • 複数のメッセージグループ ID へのメッセージの分散 – 1 つのグループ内のメッセージは順番に処理されるため、ワークロードを複数のメッセージグループに分散すると、並列処理と全体的なスループットが向上します。詳細については、「SQS FIFOキューの高スループットを実現するパーティションとデータ分散」を参照してください。

  • API コールの効率的な使用 – 頻繁な可視性の変更やメッセージの削除の繰り返しなど、不要な API コールを最小限に抑えて、利用可能な TPS の使用を最適化し、効率を向上させます。

  • ロングポーリング受信の使用 – 受信リクエストで WaitTimeSeconds を設定することでロングポーリングを使用し、メッセージがない場合の空のレスポンスを減らし、不要な API コールを減らして、TPS クォータをより有効に活用します。

  • スループット引き上げのリクエスト – アプリケーションでデフォルトの制限を超えるスループットを必要とする場合は、Service Quotas コンソールを使用して引き上げをリクエストします。これは、需要の高いワークロードや、デフォルト制限の低いリージョンで必要になる場合があります。高スループットモードを有効にするには、「Amazon SQS における FIFO キューの高スループットの有効化」を参照してください。

メッセージタイマー メッセージのデフォルト(最小)遅延は0秒です。最大は15分です。
メッセージサイズ

最小メッセージサイズは1バイト(1文字) です。最大は 262,144 バイト (256 KiB) です。

256 KiB を超えるメッセージを送信するには、Java 用 Amazon SQS 拡張クライアントライブラリPython 用 Amazon SQS 拡張クライアントライブラリを使用できます。このライブラリでは、 Amazon SQSのメッセージペイロードAmazon S3へのリファレンスを含むメッセージを送信できます。最大ペイロードサイズは2GBです。

注記

この拡張ライブラリは、同期クライアントでのみ機能します。

メッセージ可視性タイムアウト デフォルトの可視性タイムアウトは30秒です。最小は0秒です。最大は12時間です。
ポリシー情報 最大クォータは8,192バイト、20ステートメント、50プリンシパル、または 10条件になります。詳細については、「Amazon SQS ポリシーのクォータ」を参照してください。