一般社団法人 全国個人事業主支援協会

COLUMN コラム

こんにちは。
私は普段フリーランスエンジニアとして、バックエンドやインフラ面からアプリ構築を支援したりしています。

今回はAWS SQS,SNS についてざっくりと書きます。
AWS SQS(Simple Queue Service)とAWS SNS(Simple Notification Service)は、どちらもメッセージングサービスですが、それぞれ異なるユースケースに適しています。

◇SQSの概要
AWS SQS(Simple Queue Service)
メッセージをキューに入れ、後で処理するためのサービスです。
メッセージが FIFO(First-In-First-Out)順に処理されることを保証するFIFOキューと、順序や重複なしでメッセージが処理される標準キューがあります。
◇SQSのメリット
スケーラビリティ: 自動的にスケールし、任意の規模のメッセージングをサポート。
信頼性: メッセージの一時的な保存と処理が保証される。
柔軟性: 非同期的な処理が可能で、プロデューサーとコンシューマーの非同期通信を実現。
コスト効率: 使用した分だけの料金が発生するため、コストを最適化できる。
◇SQSのデメリット
メッセージの順序: 標準キューではメッセージの順序が保証されない。
重複メッセージ: 標準キューではメッセージが重複する可能性がある。
デフォルトの保持期間: メッセージの保持期間がデフォルトで4日間(最大14日間)と制限されている。

◇SNSの概要
メッセージをサブスクライブしているエンドポイント(例えば、メール、SMS、HTTPエンドポイントなど)に即座に通知するためのサービスです。
パブリッシュ/サブスクライブモデルを採用しており、一つのメッセージを複数のサブスクライバーにブロードキャストできます。
◇SNSのメリット
リアルタイム性: メッセージが即座に配信される。
スケーラビリティ: 数百万のエンドポイントにメッセージを配信可能。
多様なエンドポイントのサポート: メール、SMS、HTTP、Lambda関数など、多様なエンドポイントに対応。
統合の容易さ: 他のAWSサービスとの統合が容易で、シームレスなメッセージングが可能。
◇SNSのデメリット
メッセージの永続性: メッセージが永続化されないため、配信に失敗した場合はメッセージが失われる可能性がある。
コスト: 大量のメッセージ配信が必要な場合、コストが増加する。
順序保証なし: メッセージの順序が保証されないため、順序が重要なシステムには不向き。
◇ユースケースの違い
SQSは、非同期的な処理が必要な場合や、信頼性の高いメッセージングが求められる場合に適しています。例えば、ジョブキューイングやバッチ処理など。
SNSは、即時通知が必要な場合や、一つのメッセージを複数のシステムにブロードキャストする必要がある場合に適しています。例えば、アラートシステムやリアルタイムの更新通知など。
これらのサービスは、システムのニーズに応じて適切に使い分けることで、効率的かつ効果的なメッセージングを実現できます。

The following two tabs change content below.

中川 豪

最新記事 by 中川 豪 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア