AWSアプリケーション統合

Amazon SNSとは

フルマネージドのPub/Sub(発行・購読)メッセージングサービス。1つのトピックに発行したメッセージを、複数のサブスクライバー(Lambda・SQS・HTTP・メール・SMS等)に同時配信するファンアウトを実現する。

SNSフィルタリングポリシーで、サブスクライバーごとに受信するメッセージを属性でフィルタリングできる。FIFO SNSトピックでFIFO SQSへの順序保証ファンアウトも可能。

試験での問われ方

「1つのイベントを複数の処理系に同時配信したい」シナリオではSNSを選ぶ。代表的なファンアウト構成は、1つのSNSトピックに複数のSQSキューをサブスクライブさせ、各キューの先にそれぞれ別のLambdaやワーカーをぶら下げる形だ。キュー側でバッファリング・再試行・DLQができるため、処理系ごとに独立してスケール・リトライできるのが利点になる。

サブスクリプションごとにメッセージ属性で受信対象を絞るフィルタリングポリシーを使えば、1トピックから条件に合うサブスクライバーにだけ配信できる。順序保証・重複排除が必要ならSNS FIFOトピックを使い、配信先もFIFO SQSにする(FIFO同士でしか組めない)点を押さえる。

SNSは配信先がオフラインの場合メッセージを失う(永続化しない)という引っかけに注意。永続化が必要な場合はSQSをサブスクライバーにする設計で対応する。

このサービスが登場する演習問題(12問)

関連サービス