SNS トピックの通知先を変更する方法を教えてください

SNS トピックの通知先を変更する方法を教えてください

Clock Icon2021.11.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

SNS トピックのサブスクリプションで指定している通知先メールアドレスを変更したいです。

SNS コンソールで通知先を変更しようと思ったのですがメールアドレスを入力する箇所が見つかりません。

どうやって通知先を変更したらいいでしょうか?

どう対応すればいいの?

Amazon SNS トピックの通知先(エンドポイント)を変更する方法はございません。
サブスクリプションを解除し、再度登録し直す必要があります。

SNS コンソールでは次のとおり操作してください。

サブスクリプションの解除方法

  1. SNS コンソールのトピックへアクセス
  2. 対象のトピック名をクリック
  3. 変更したいサブスクリプション対象を検索(エンドポイントのメールアドレスなどを検索欄へ入力)
  4. 変更したいサブスクリプションをチェック
  5. [削除] ボタンをクリック
  6. [削除] ボタンをクリック

サブスクリプションの再登録方法

  1. SNS コンソールのトピックへアクセス
  2. [サブスクリプションの作成] をクリック
  3. [プロトコル] を選択
  4. [エンドポイント] を入力
  5. [サブスクリプションの作成] をクリック
  6. (プロトコルが E メールなら)宛先のメールの Confirm リンクをクリック

どうして変更できないの?

Amazon SNS のような Pub/Sub メッセージングモデルは、以下のキーワードを理解することが重要です。

  • メッセージ: 送信したい情報、Amazon SNS では基本的に JSON 文字列が該当する
  • パブリッシャー(プロデューサー、出版者): メッセージの送信元
  • サブスクライバー(コンシューマー、購読者): メッセージの送信先
  • エンドポイント: メッセージの宛先
  • トピック(ブローカー): メッセージを仲介し、出版(パブリッシュ)するもの

トピックを使ったメッセージ配信は、以下のような流れになります。

  1. サブスクライバーは自分の興味のあるトピックを購読します。
  2. パブリッシャーは送信先や送信方法を考慮せずに、トピックへメッセージを送信します。
  3. トピックはサブスクライバーが希望する方法(プロトコル)で、全サブスクライバーへメッセージを送信します。

以上を踏まえて、サブスクライバーが意図せずにエンドポイントが変更できてしまうと、興味のない、購読した覚えのないメッセージが届く状態となります。
購入した覚えのない定期便が届けられるようなイメージです。

Amazon SNS は Pub/Sub メッセージングモデルにしたがって、管理者側でトピックのエンドポイントを変更できず、サブスクライバーの意思によって購読/解除する仕組みになっていると思われます。

よって、エンドポイントを変更するにはサブスクライバーが購読を「解除」してから、再度「購読」し直す流れが正しいフローになります。

運用観点でのワンポイント

管理者の視点では「通知先を変更したいだけなのに、手間がかかるなー。」と思われるかもしれません。
しかしながら通知先の変更が管理者側でできてしまうと、メッセージングモデルの仕組みに綻びが生じます。

運用者も管理者視点だけではなく、利用者視点も持てると理解が捗ります。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.