アプリ連携中級CLF-C02SAA-C03
SNS + SQS ファンアウト構成
Amazon SNSで1つのイベントを複数のSQSキューへ配信し、通知・更新・分析などの処理を分岐する構成です。
#SNS#SQS#Fanout#Pub/Sub#イベント駆動
構成図
使用AWSサービス
サービス名をクリックすると、用語詳細ページへ移動します。
概要
SNS + SQSのファンアウト構成は、1つのイベントを複数の処理へ同時に配信するための設計です。注文作成イベントを、メール通知、在庫更新、分析ログ保存へ分岐させるようなケースで使います。 発行側はSNS TopicへPublishするだけでよく、処理側はそれぞれ独立したSQSキューでメッセージを受け取ります。
通信フロー
1. アプリケーションがSNS TopicへイベントをPublishします。 2. SNSが購読設定に基づいて複数のSQSキューへメッセージを配信します。 3. 各SQSキューが処理待ちメッセージを保持します。 4. 各Lambdaが担当キューからメッセージを取得します。 5. Lambdaごとに通知、更新、分析などの処理を実行します。
設計ポイント
処理ごとにSQSキューを分けることで、1つの処理が失敗しても他の処理へ影響しにくくなります。 SQS Queue Policyでは、指定したSNS Topicからのメッセージだけを受け付けるように制限します。 購読先を増やすとSQSリクエスト数とLambda実行回数も増えるため、不要な購読先は作りません。
SAA試験ポイント
1つのイベントを複数のシステムへ配信したい場合はSNSが候補です。さらに処理側の一時障害に備えたい場合はSNS + SQSを組み合わせます。 疎結合、ファンアウト、イベント駆動というキーワードと一緒に覚えます。
他のAWS構成図も確認する
SAA対策では、AWSサービスを単体ではなく構成パターンとして理解することが重要です。