はじめに
本記事は、AWSのメッセージングサービスである SQS、SNS、EventBridge の主な機能を簡単に比較してまとめたものになります。(2022/04/16現在)
サービスを選定する時の気づきになれば幸いです。
各サービスの機能の詳細は、AWS Black Belt Online Seminarの資料を一読してから、詳細はAWSのドキュメントを読むようにすると頭に入りやすいです。
SQS
AWS Black Belt Online Seminar SQS
Amazon Simple Queue Service のドキュメント
SNS
AWS Black Belt Online Seminar SNS
Amazon Simple Notification Service のドキュメント
EventBridge
AWS Black Belt Online Seminar EventBridge
Amazon EventBridge のドキュメント
メッセージングのモデル
SQS | SNS | EventBridge |
---|---|---|
キュー | トピック | バス |
SQS
SNS
EventBridge
サービスのビルディングブロック
SQS
引用: 仕組み
SNS
引用: 仕組み
EventBridge
引用: 仕組み
メッセージ処理のタイミング
SQS | SNS | EventBridge |
---|---|---|
Point to Point方式 | Pub/Sub方式 | Pub/Sub方式 |
スケジュール実行
SQS | SNS | EventBridge |
---|---|---|
できない | できない | できる |
EventBridge
スケジュールに従って実行する Amazon EventBridge ルールの作成
配信先のサービス
SQS
Lambda
SNS
Application-to-Application(A2A)配信先
Kinesis Data Firehose
Lambda
SQS
HTTP/S
Application-to-Person(A2P) 配信先
Email / SMS 通知
Mobile Push 通知
AWS Chatbot
EventBridge
Lambda関数
EC2インスタンス
Kinesis Data Streams のストリーム
Kinesis Data Firehose の配信ストリーム
CloudWatch Logs ロググループ
ECS タスク
Systems Manager Run Command
Systems Manager Automation
AWS Batch ジョブ
AWS Step Functionsステートマシン
AWS CodePipelineのパイプライン
AWS CodeBuildプロジェクト
Inspector の評価テンプレート
SNS トピック
SQS キュー
EC2 CreateSnapshot API call
EC2 RebootInstances API call
EC2 StopInstances API call
EC2 TerminateInstances API call
別のAWS アカウントのイベントバス
SaaS アプリケーションとの連携
SQS | SNS | EventBridge |
---|---|---|
できない | できない | できる |
EventBridge
Amazon EventBridge では、サポートされている SaaS プラットフォームからデータが取り込まれ、AWS のサービスターゲットにルーティングされます。
さらに、送信先にAPI を使用できる
API 送信先
API 送信先を使用すると、REST API コールを使用して、AWS サービス、統合された
SaaS (Software-as-a-Service) アプリケーション、および AWS 外のアプリケーションの間でイベントをルーティングできます。
メッセージの配信保証
SQS(標準) | SQS(FIFO) | SNS(標準) | SNS(FIFO) | EventBridge |
---|---|---|---|---|
at-least-once | exactly-once | at-least-once | exactly-once | at-least-once |
at-least-once
メッセージ が少なくとも一つの受信側へ配信される。
(2回以上のメッセージが配信される可能性がある。)
exactly-once
メッセージ は重複せず必ず一回だけ配信される。
メッセージの順序保証
SQS(標準) | SQS(FIFO) | SNS(標準) | SNS(FIFO) | EventBridge |
---|---|---|---|---|
保証なし | 保証あり | 保証なし | 保証あり | 保証なし |
SQS(FIFO)
SNS(FIFO)
メッセージの永続化
SQS | SNS | EventBridge |
---|---|---|
できる | できる | できる |
SQS
デフォルトは4日間。保存期間は1分間 〜 14日間の範囲内で設定可能。
SNS
引用:
Amazon SNS は、Amazon Kinesis Data Firehose を通じてメッセージのアーカイブと分析を提供します。
EventBridge
メッセージのバッチ処理
SQS | SNS | EventBridge |
---|---|---|
最大 10件 | 最大 10件 | できない |
SQS
SNS
メッセージのフィルタリング
SQS | SNS | EventBridge |
---|---|---|
できない | できる | できる |
SNS
EventBridge
Amazon EventBridge イベントパターンでのコンテンツのフィルタリング
メッセージの加工
SQS | SNS | EventBridge |
---|---|---|
できない | できない | できる |
EventBridge
さいごに
AWSの公式では、メッセージングサービスのデジションツリーとなるようなものをみつけることができなかったのですが、下記の記事が、サービスを選定する時に参考になるかと思います。