Amazon Simple Queue Service
開発者ガイド

Amazon Simple Queue Service とは

Amazon Simple Queue Service (Amazon SQS) は、分散されたソフトウェアシステムとコンポーネントを統合および分離することができる、安全で耐久性があり、利用可能なホストされたキューを提供します。Amazon SQS は、デッドレターキューコスト配分タグなど、一般的な構造を提供します。また、汎用ウェブサービス API を提供し、AWS SDK でサポートされている任意のプログラミング言語からアクセスできます。

Amazon SQS では、標準および FIFO キューの両方がサポートされています。詳細については、「どのようなキューが必要ですか。」を参照してください。

Amazon SQS の主な利点は何ですか。

  • セキュリティ – Amazon SQS キューとの間でメッセージを送受信できるユーザーは、お客様が管理します。

    サーバー側の暗号化 (SSE) は、AWS Key Management Service (AWS KMS) で管理されたキーを使用してキューのメッセージのコンテンツを保護するため、お客様は重要なデータを送信することができます。

  • 耐久性 – メッセージの安全性を確保するため、Amazon SQS は複数のサーバーにメッセージを保存します。スタンダード キューは少なくとも 1 回のメッセージ配信をサポートし、FIFO キューは厳密に 1 回のメッセージ処理をサポートします。

  • 可用性 – Amazon SQSは、冗長なインフラストラクチャを使用して同時実行性が高いメッセージへのアクセスと、メッセージの作成と消費のための高い可用性を提供します。

  • スケーラビリティ – Amazon SQS はバッファされたリクエストを個別に処理できるため、透過的にスケールして、プロビジョニング指示を必要とせずに負荷の増大やスパイクに対応できます。

  • 信頼性 – Amazon SQS は処理中にメッセージをロックするため、複数のプロデューサーがメッセージを送信するのと同時に、複数のコンシューマーがメッセージを受信できます。

  • カスタマイズ – キューは — と完全に同一である必要はありません。たとえば、キューでデフォルトの遅延を設定することができます。Amazon Simple Storage Service (Amazon S3) を使用し、または Amazon DynamoDB を使用し、Amazon SQS が Amazon S3 オブジェクトへのポインタを保持して、256 KB よりも大きいメッセージのコンテンツを保存できます。または、大きいメッセージを小さいメッセージに分割することができます。

Amazon SQS は、Amazon MQ や Amazon SNS と、どう違うのですか。

Amazon SQS および Amazon SNS はキューおよびトピックサービスであり、高度にスケーラブルでシンプルに使用でき、メッセージブローカーをセットアップする必要がありません。新規のアプリケーションにはこれらのサービスをお勧めします。ほぼ無制限の拡張性とシンプルな API が利点です。

Amazon MQ はマネージド型メッセージブローカーサービスであり、多くの一般的なメッセージブローカーと互換性があります。API (JMS など) や、プロトコル (AMQP、MQTT、OpenWire、STOMP など) との互換性に依存する既存のメッセージブローカーからのアプリケーション移行に Amazon MQ をお勧めします。

どのようなキューが必要ですか。

スタンダード キュー FIFO キュー

無制限のスループット – スタンダード キューは、API アクションあたり、ほぼ無制限の数の 1 秒あたりのトランザクション (TPS) をサポートできます。

少なくとも 1 回の配信: – メッセージは少なくとも 1 回は確実に配信されますが、複数のメッセージのコピーが配信されることもあります。

ベストエフォート型の順序付け – メッセージが送信されたときと異なる順序で配信されることがあります。

高スループット – デフォルトで、FIFO キューでは、バッチ処理を使用して、API アクション (SendMessageReceiveMessageDeleteMessage) ごとに 1 秒あたり最大 300 件のメッセージがサポートされます。制限の引き上げをリクエストする場合は、サポートリクエストを提出してください。 FIFO キューでは、バッチ処理を行わず API アクション (SendMessageReceiveMessageDeleteMessage) ごとに 1 秒あたり最大 300 件のメッセージがサポートされます。

1 回だけの処理 – メッセージは 1 度配信されると、ユーザーがそれを処理して削除するまでは使用可能な状態に保たれます。このキューでは、重複は導入されていません。

先入れ先出し配信 – メッセージが送信または受信された順序が厳密に保持されます。

スループットを重視する場合、アプリケーション間でデータを送信します。例:

  • 負荷の高いバックグラウンドの作業からライブユーザーリクエストを分離します: ユーザーはサイズ変更またはエンコード中にメディアをアップロードできます。

  • 複数のワーカーノードにタスクを割り当てます: 大量のクレジットカードの検証リクエストを処理します。

  • 今後の処理のためのバッチメッセージ: データベースに追加する複数のエントリをスケジュールします。

イベントの順序を重視する場合、アプリケーション間でデータを送信します。例:

  • ユーザーが入力したコマンドが正しい順序で実行されていることを確認します。

  • 価格の変更を正しい順序で送信して、正しい製品価格を表示します。

  • アカウントを登録する前に受講者がコースに登録できないようにします。

Amazon SQS の使用を開始するには

ご意見をお待ちしております

ご意見をお待ちしております。お問い合わせの場合は、Amazon SQS ディスカッションフォーラムを参照してください。