LoginSignup
2
2

More than 3 years have passed since last update.

Amazon Simple Notification Service (SNS)のオンラインセミナー受けてみた

Last updated at Posted at 2019-06-15

AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)」の自分向けメモ
SNS使ったことあるレベルの人向け

前提

背景

  • 密結合の業務システム⇒疎結合のシステムにした場合
    • キューを保持する機能が必要
    • ポーリング処理の負荷が大きくなる
  • 疎結合+ファンアウト(一括送信)とすることで分散処理構成でもポーリングは不要

pub-sub

  • メッセージの発行者と購読者をトピックを間に挟んで分離できる

SNSの機能

Mobile Push(プッシュ通知)

  • ユーザーに通知
  • モバイルアプリが起動していなくても通知可能

pub-sub

  • 分散アプリの統合に利用可能
  • 構成要素は以下

    • Topic Owner
      • Topicの作成、管理者
    • Subscriber
      • Topicから任意のメッセージを受け取る購読者
    • Publisher
      • 任意のメッセージをTopicに送る発行者
  • SNS操作のAPIも用意されている

始め方

  1. Topic作成
  2. SubscriberがTopicに登録
  3. PublisherがTopicに送信

利用方法

アクセスコントロール

  • Topicへのアクセス制限が可能
  • デフォルトではTopic Ownerのみアクセス可能

フィルター

  • Publisherが指定したメッセージ属性を基にSubscriberはメッセージを部分的に受信可能
  • Filter Policyはホワイトリスト、ブラックリストどちらも可能

配信方法

  • PublisherはSubscriberの購読プロトコルに合わせて、メッセージのカスタムが可能
  • デフォルトは購読プロトコルに関わらず、同一メッセージ

リトライ

  • Retry設定は4種類
  • 購読プロトコルがHTTP/Sの場合、Subscriberは購読単位でJSON形式でRetry Policyを指定可能
  • Topic OwnerはTopic単位でHTTP/SのRetry PolicyをJSON形式で指定可能
    • SubscriberのRetry Policyを無効化する

プライベート発行

  • VPCからプライベートにメッセージを発行する
  • VPCエンドポイントからTopic発行

アプリケーション統合

CloudWatch Eventsからの発行

  • 発行者にEventsが指定可能

Step Functionsからの発行

  • Stateから発行可能

S3からの発行

  • S3オブジェクト操作をトリガーにTopic発行が可能
    • 通知が他処理のトリガー

SQS

  • SQSに保持してポーリングすることで確実に処理する
  • SNSと連携がとりやすい

Lambdaとの連携

  • SNSより複雑な処理の実行が可能
  • Lambdaを通じて、多くのAWSにファンアウトが可能
  • 処理後の情報を後続トピックに発行することで高度なフィルターやメッセージカスタマイズが可能

配信ステータスロギング

  • 成功時、失敗のログを確認可能
    • 失敗時は配信できなかった購読者の確認が可能
    • 試行回数も確認可能

Moblie Push(プッシュ通知)

  • プッシュ通知を構成するならSNSではなくPinpoint推奨

価格

  • Publish無料枠:100万件/月
    • 以降、0.50USD/100万件
  • Eメール無料枠:1000件/月
    • 以降、2USD/10万件
  • データ転送量はほぼ無料
  • Lambda、SQSは無料

まとめ

  • アーキテクチャの簡素化できる
  • 簡単にファンアウトできる
  • ワークロードをスケーラブルにできる
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2