Amazon Web Services ブログ

Category: Amazon Simple Notification Service (SNS)

Amazon SNS, Amazon SQS, AWS Lambda のデッドレターキューによる耐久性のあるサーバーレスアプリケーション設計

この投稿は Otavio Ferreira, Sr Manager, SNS の寄稿によるものです 郵便システムにおいて、デッドレターキューは配信不能な郵便物を取り扱うための施設です。pub/sub メッセージングモデルにおけるデッドレターキュー (DLQ: dead-letter-queue) は、トピックに対して発行されたメッセージがサブスクライブしているエンドポイントに配信できなかった場合に、そのメッセージを送ることができるキューを表します。 Amazon SNS による DLQ サポートによって、アプリケーションはメッセージ配信における各種故障モードに対する、さらなる耐久力と回復力を持つことが可能になりました。 メッセージの配信失敗と再試行を理解する Amazon SNSがサブスクライブされたエンドポイントにアクセス出来ない場合、メッセージの配信は失敗します。このような状況は大きく2つの原因によって引き起こされます: クライアントエラー。ここでクライアント (メッセージ送信者) は SNS となります。 サーバーエラー。ここではサーバーは、例えば Amazon SQS や AWS Lambda のようにサブスクリプションのエンドポイント (メッセージ受信者) をホストするシステムとなります。 クライアントエラー クライアントエラーは、 SNS の保持しているメタデータが最新ではない場合に発生します。クライアントエラーの発生するよくある原因としては、エンドポイントの所有者がエンドポイントを削除した場合が挙げられます。例えば SNS に紐付いたサブスクリプションを削除することなく、SNS トピックにサブスクライブした SQS キューを削除してしまったような場合です。やはりよくある別の例としては、エンドポイントに適用されたポリシーに対して、SNS がメッセージを配信することを阻害するような変更を加えてしまった場合が挙げられます。 これらのエラーは、クライアントがメッセージの配信を試みたにもかかわらず、クライアントの視点からエンドポイントがアクセス不能となっていることが原因で発生するため、クライアントエラーとして取り扱われます。SNS はクライアントエラーの結果として失敗したメッセージの配信を再試行することはありません。 サーバーエラー サーバーエラーは、サブスクライブしているエンドポイントを実行しているサーバーが利用できないか、または SNS からの有効なリクエストを処理できなかったことを表す例外応答を返した場合に発生します。 サーバーエラーが発生した場合、SNSは線形、指数的のいずれかのバックオフ機能に基づいて配信を再試行します。SQS や Lambda 上で実行される AWS […]

Read More

[AWS Black Belt Online Seminar] Amazon Simple Notification Service (SNS) 資料及び QA 公開

先日 (2019/6/4) 開催しました AWS Black Belt Online Seminar「Amazon Simple Notification Service (SNS)」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS) from Amazon Web Services Japan AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. SNS と Pinpoint との違いを教えて欲しい。 A. アプリケーション統合の目的でpub-subを実現したい場合はAmazon SNSをご利用ください。 mobile pushの用途で、より顧客エンゲージメントに関するマネージドな機能(分析、セグメントプッシュ、キャンペーン)を利用したい場合はAmazon Pinpointをご利用いただくのがお勧めです。またこれから新規にmobile push機能を利用される場合には、より新しいサービスであるAmazon Pinpointを選択して始めてみるのが、顧客エンゲージメント機能の独自実装が不要なため簡単です。Amazon SNSはデバイストークンを独自にデータベースで管理する必要があり、運用面のアーキテクチャも考えなければならない箇所が多くなります。一方、独自にデバイストークンのライフサイクルを管理したいといった要求がある場合には、Amazon SNSを選択することもできます。 Amazon PinpointはSMSの双方向送信が可能ですが、Amazon SNSは購読解除時以外に逆方向のSMSを受け付けることはできません。 Q. アンスクライブリンクの消し方について、ベストプラクティスはありますか? A. AWS CLIを使ってサブスクリプション解除されないようにできます。詳細はAWS公式サイトを参照ください。 […]

Read More