Amazon Web Services ブログ
Amazon Simple Queue Service の新機能 – 1 回だけの処理と重複排除機能を備えた FIFO キュー
AWS サービスファミリーの本当に最初のメンバーである Amazon Simple Queue Service (SQS) は、明らかに時の試練を耐え抜きました。2004 年に、私たちはこのサービスを「分散アプリケーションコンポーネント間でメッセージをバッファリングするための、信頼性が高く、非常にスケーラブルなホストキュー」と説明しました。それからというもの、デッドレターキュー、256 KB のペイロード、SNS の統合、ロングポーリング、バッチオペレーション、遅延キュー、タイマー、CloudWatch メトリクス、メッセージ属性といった多くの機能を追加してきました。
新しい FIFO キュー
現在、私たちは FIFO (先入れ先出し) キューのサポートにより、SQS をさらに強力で柔軟性の高いものにしています。この新しいタイプのキューは、現在 2 つのリージョンで導入中で、2017 年初旬に他の多くのリージョンで利用可能にする計画です。このキューは、メッセージが送信順に 1 回だけ、重複なく処理されることを保証するように設計されています。FIFO キューは財務サービスや e コマースのお客様、メッセージを使ってデータベーステーブルを更新しているお客様にとって特に役立つことを期待しています。こうしたお客様の多くは、送信順にメッセージを受信することを前提にしたシステムをお持ちです。FIFO の順序では、メッセージ A を送信した場合、成功の応答を待機してからメッセージ B を送信し、メッセージ B はメッセージ A の後のキューに入れられてから、適切に配信されます。この順序は、複数の SendMessage
呼び出しを並列で実行する場合には適用されません。SendMessageBatch
への呼び出し内の個別のメッセージ、および SendMessageBatch
への複数の連続した呼び出しの間では適用されません。1 回だけの処理は、単一のコンシューマーおよび複数のコンシューマーシナリオの両方に適用されます。FIFO キューを複数のコンシューマー環境で使用する場合、現在のメッセージが削除されるか、可視性タイムアウトの有効期限が切れた後でのみ、メッセージを他のコンシューマーに表示するようキューを設定できます。このシナリオでは、最大 1 人のコンシューマーがアクティブにメッセージを処理します。他のコンシューマーは、最初のコンシューマーが終了するか失敗するまで待機します。SQS 外部のネットワーキングの問題により、メッセージ送信者がアクションのステータスを確認できず、呼び出しを再試行するために、重複したメッセージが発生する場合があります。FIFO キューは複数の手法を使用して、重複したメッセージを検出し、排除します。コンテンツベースの重複に加えて、 MessageDeduplicationId
を、FIFO キューに対して SendMessage
を呼び出すときに含めることができます。ID の長さは最大 128 文字で、存在する場合はコンテンツベースの重複排除よりも優先順位が高くなります。FIFO キューに対して SendMessage
を呼び出す場合、 MessageGroupId
を含めることができるようになりました。同じグループ (ID によって示されます) に属するメッセージは順番に処理され、1 つのキュー内で順序が設定された複数のストリームを作成し、処理するとともに、複数のグループからのデータを区別して順序を保持しながら、複数のコンシューマーを使用することができます。標準キュー (元のキュータイプ) を作成するか、CreateQueue
関数、create-queue
コマンド、または AWS Management Console を使って新しい FIFO キューを作成できます。同じ API 関数は両方のタイプのキューに適用されますが、1 つのキュータイプを別のキュータイプに変換することはできません。同じ API コールは両方のキュータイプに適用されますが、最新の AWS SDKs および SQS クライアントは、いくつかの追加機能を備えています。これには、失敗した ReceiveMessage
呼び出しの自動的なべき等の再試行が含まれます。個別の FIFO キューは、1 秒あたり最大 300 件の送信、受信、または削除リクエストを処理できます。
SQS リソース
SQS および新しい FIFO キューの詳細を参照するために役立つリソースをいくつか示します。
AWS re:Invent のためにラスベガスに来る予定で、AWS のお客様である Capital One による SQS および FIFO キューの使用事例の詳細についてお聞きになりたい場合は、11 月 30 日 (水) 午後 3:30 の ENT-217「エンタープライズメッセージングをクラウドに移行するには」への登録と参加をご検討ください。
今すぐ利用可能
FIFO キューは US East (Ohio) および US West (Oregon) のすべてのリージョンで利用可能になり、今すぐ使用を開始していただけます。お客様が US East (Northern Virginia) で運用中で、この機能をお試しになりたい場合は、US East (Ohio) でキューを作成し、リージョン間の低コストかつ低レイテンシーの接続を活用することができます。本日の発表の一環として、標準キューの料金も 20% 値下げいたします。最新の料金については、SQS 料金表ページを参照してください。
— Jeff;