見出し画像

Amazon SQS FIFO QueueとAmazon Simple Workflow Service #412

Amazon SQSはメッセージキューイングサービスで、分散アプリケーション間でメッセージを送受信するためのセキュアでスケーラブルなホストされたキューを提供します。

しかし操作やイベントの順序が重要な場合や、タスクの重複が許されない場合など、より厳密な処理が求められる時は以下のサービスが役に立ちます。

・Amazon SQS FIFO Queue
・Amazon Simple Workflow service

それぞれ見ていきたいと思います。

Amazon SQS FIFO Queue

SQSのメッセージキューイングサービスの一部として提供される機能です。FIFOキューは、メッセージを送信された順序で正確に一度だけ処理することを保証します。

特長

  • 順序保証: メッセージは送信された順序で処理されます。順序が重要なトランザクション(例:銀行取引)で特に重要です。

  • 重複排除: 同じメッセージが複数回処理されることを防ぎます。重複メッセージが問題を引き起こす可能性がある場合(例:注文処理)に重要です。

  • 高いスループット: 300メッセージ/秒のスループットをサポートします(バッチ処理により、最大3,000メッセージ/秒)。

利用シーン

  • 金融トランザクション: 銀行取引のようにトランザクションの順序が重要な場合、FIFOキューを使用することでトランザクションを正確な順序で処理することができます。

  • 注文処理: 注文が受け付けられた順序で処理されることが重要な場合、FIFOキューを使用することで、注文を正確な順序で処理することができます。

SQS機能の補足

SQSの機能を補足しておくと、以下の特徴があります。

  • メッセージの保存期間は最大で14日、デフォルトで4日(経過すると自動削除) 

  • 保存しておけるメッセージの数は無制限

  • 最大のインフライトメッセージ*数は標準キューで14万件、FIFOキューで2万件

*消費側のコンポーネントにキューから受信された後、削除されていない状態のメッセージ

Amazon Simple Workflow Service

Amazon SWFはタスクの協調と状態の管理を行うワークフローサービスで、タスクが重複せず、一度だけしか割り当てられないことを保証します。

特長

  • タスクの協調: タスクの順序、並列実行、条件分岐など、タスクの進行を柔軟にコントロールすることができます。

  • ワークフローの可視化: ワークフローの進行状況をリアルタイムで確認することができます。

  • 状態の管理: ワークフローの状態を自動的に管理し、アプリケーションのコンポーネントにとって必要な情報を提供します。

利用シーン

  • Eコマース: 注文処理、在庫管理、配送ステータスの更新などのビジネスプロセスを自動化する際に、効率的なプロセス管理が可能です。

  • データ処理: データの収集、変換、分析など、データ処理のワークフローを構築する際に、データ処理を効率的に行うことができます。

Amazon SWFは、ワークフローの実行のために一度に最大1つの決定タスクを保留します。つまり2つのインスタンスが同時に同じ実行を行うことを心配することなく、複数のデサイダー・インスタンス*を実行できます。

これらの機能により、タスクの重複、紛失、衝突を心配することなく、ワークフローを調整することができます。

*SWFにおけるワークフローの基準単位となるエンティティ



ここまでお読みいただきありがとうございました!

この記事が気に入ったらサポートをしてみませんか?