Amazon SQS で構築する非同期メッセージング - Standard と FIFO キューの設計

SQS による非同期処理の設計、Standard と FIFO キューの使い分け、デッドレターキューの活用を解説します。

SQS の概要

この記事は約 3 分で読めます。 SQS はフルマネージドのメッセージキューイングサービスです。SNS が 1 対多のファンアウトを提供するのに対し、SQS は 1 対 1 のポイントツーポイントメッセージングを提供します。Web アプリケーションのリクエスト処理とバックエンドの重い処理を分離し、スケーラビリティと耐障害性を向上させます。

この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

キュー設計と DLQ

Standard キューは秒間数万メッセージのスループットを提供し、メッセージの順序は保証されません。FIFO キューはメッセージグループ ID ごとに順序を保証し、重複排除 ID で exactly-once 処理を実現します。スループットは秒間 300 メッセージ (バッチで 3000) です。DLQ は maxReceiveCount 回処理に失敗したメッセージを自動的に移動し、メインキューの処理を妨げません。DLQ のメッセージを調査し、原因を修正した後にメインキューに再ドライブ (再送) できます。

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。

まとめ

SQS は非同期メッセージングで疎結合なアーキテクチャを構築するサービスです。Standard と FIFO の使い分けと DLQ でメッセージ処理の信頼性を確保します。

AWS の優位点

  • プロデューサーとコンシューマーを疎結合にし、処理速度の差異を吸収する非同期メッセージングを実現する
  • Standard キューは無制限のスループットと at-least-once 配信を提供し、高スループットのワークロードに適する
  • FIFO キューはメッセージの順序保証と exactly-once 処理を提供し、金融取引や注文処理に適する
  • デッドレターキュー (DLQ) で処理失敗メッセージを隔離し、エラーの調査と再処理を可能にする
  • Lambda のイベントソースマッピングでキューのメッセージを自動的に Lambda 関数で処理できる

同じテーマの記事

Amazon AppFlow で実現する SaaS データ連携 - Salesforce・Slack・Google Analytics との統合 AppFlow による SaaS アプリケーションと AWS サービス間のノーコードデータ連携、フロー設計、データ変換の手法を解説します。 データ統合の自動化 - Amazon AppFlow で実現する SaaS 連携基盤 Amazon AppFlow を活用した SaaS アプリケーション間のデータ統合を解説します。Salesforce、Slack、Google Analytics などの外部サービスと AWS サービスをノーコードで接続し、リアルタイムまたはスケジュールベースのデータフローを構築する方法を紹介します。 イベント駆動アーキテクチャ - Amazon EventBridge で実現する疎結合システム設計 Amazon EventBridge を活用したイベント駆動アーキテクチャの構築方法を解説します。 Amazon EventBridge Pipes でイベントソースを直接接続 - フィルタリングと変換のパイプライン EventBridge Pipes によるイベントソースとターゲットの接続、フィルタリング、エンリッチメントの設定を解説します。 IoT イベント検知 - AWS IoT Events でデバイスの状態変化を自動検出・対応する AWS IoT Events を使った IoT デバイスの状態監視と自動対応を解説。検出器モデルによる状態遷移の定義、アラーム機能、SNS/Lambda との連携を紹介します。 ワークフロー管理 - Amazon MWAA で Apache Airflow をマネージド運用する Amazon MWAA (Managed Workflows for Apache Airflow) によるデータパイプラインのオーケストレーションを解説。セットアップ、DAG 管理、Step Functions との使い分けまで実践的に紹介します。 マネージドメッセージブローカー - Amazon MQ で実現するエンタープライズメッセージング基盤 Amazon MQ による Apache ActiveMQ と RabbitMQ のマネージドメッセージブローカーの構築方法を解説します。既存のオンプレミスメッセージングシステムからの移行戦略と、SQS との使い分けを紹介します。 Amazon MQ で運用するメッセージブローカー - ActiveMQ と RabbitMQ の選定と移行 Amazon MQ の ActiveMQ と RabbitMQ ブローカーの選定基準、オンプレミスからの移行パターン、高可用性構成を解説します。 Amazon MWAA で Apache Airflow をマネージドに運用 - DAG の設計とワークフロー自動化 MWAA による Airflow 環境の構築、DAG の設計、S3 連携、オペレーターの活用を解説します。 Amazon SNS で構築する Pub/Sub メッセージング - ファンアウトパターンとフィルタリング SNS によるトピックベースのメッセージング、サブスクリプションフィルター、SQS ファンアウトパターンを解説します。