メッセージングとは?
- サーバー間、プロセス間、スレッド間でメッセージをやり取りすること
メッセージには同期と非同期がある
-
同期メッセージング
- HTTP通信
- senderはreceiverから結果が来るのを待つ
-
非同期メッセージング
- 投げっぱなしで結果を要求しない
- 受け手のサーバーを増やしたりすれば、並行処理できる量が増えるのでスケーラビリティが高い
SQSとSNSの比較
-
SQS(Simple Queue Service)
- フルマネージドなキューイングサービス
- キューに入れたメッセージを複数の受信者が並列で実行する
- 日次のバッチ処理など1日数時間かかる処理を分散して高速処理できたりする
-
SNS(Simple Notification Service)
- フルマネージドなメッセージングサービス
- マルチプロトコルでプッシュしたメッセージを通知できる
- HTTP(S)、メール、SQS,モバイルプッシュ
- 無料枠: モバイルプッシュ100万件、HTTP: 10万件、SQS: 無料、メール: 1000件
- トピックをSubsribe->トピックへpublish->連携エンドポイントへプッシュ通知
SNSのメリット
- 非同期メッセージなので、処理を待たずに並列処理できる
- イベントをトリガーに動作する疎結合なシステムが作れる
- 既存システムと組み合わせやすい
- 色んな通知に使える(監視数値が超えたらモバイル通知、メール通知)
- AWSの設定画面で受信側の設定ができて楽ちん