FIFO トピックのメッセージ耐久性 - Amazon Simple Notification Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

FIFO トピックのメッセージ耐久性

Amazon SNS FIFO トピックと Amazon SQS キューは耐久性があります。どちらのリソースタイプも、複数のアベイラビリティーゾーンにわたって冗長的にメッセージを保存し、例外的なケースを処理するためのデッドレターキューを提供します。

Amazon SNS では、クライアント側またはサーバー側のエラーにより、Amazon SNS トピックがサブスクライブされた Amazon SQS キューにアクセスできない場合、メッセージの配信は失敗します。

  • Amazon SNS FIFO トピックに古いサブスクリプションのメタデータがあると、クライアント側のエラーが発生します。クライアント側のエラーの一般的な 2 つの原因は、Amazon SQS キュー所有者が次のいずれかを行う場合です。

    • キューを削除します。

    • Amazon SNS サービスプリンシパルがメッセージを配信できないようにキューポリシーを変更します。

    Amazon SNS は、クライアント側のエラーにより失敗したメッセージの配信を再試行しません。

  • サーバー側のエラーは、次の状況で発生する可能性があります。

    • Amazon SQS サービスは利用できません。

    • Amazon SQS は、Amazon SNS サービスからの有効なリクエストを処理できません。

    サーバー側のエラーが発生すると、Amazon SNS FIFO トピックは、失敗した配信を 23 日間、最大 100,015 回再試行します。詳細については、「Amazon SNS メッセージ配信の再試行」を参照してください。

どのようなタイプのエラーでも、Amazon SNS は Amazon SQS デッドレターキューへのメッセージをサイドラインして、データが失われないようにします。

Amazon SQS では、コンシューマーアプリケーションがメッセージの受信、処理、およびキューからの削除に失敗すると、メッセージ処理は失敗します。最大数の受信リクエストが失敗した場合、Amazon SQS はメッセージをデッドレターキューにサイドラインし、データが失われないようにします。

自動車部品価格管理のユースケース例の場合、会社は Amazon SQS デッドレターキュー (DLQ) を各 Amazon SNS FIFO トピックサブスクリプションおよびサブスクライブされた各 Amazon SQS キューに割り当てることができます。これにより、価格更新の損失から会社を保護します。

メッセージが失われないように Amazon SQS デッドレターキューを設定します。

Amazon SNS サブスクリプションに関連するデッドレターキューは、サブスクライブキューと同じタイプの Amazon SQS キューである必要があります。例えば、Amazon SQS FIFO キューの Amazon SNS FIFO サブスクリプションでは、デッドレターキューとして Amazon SQS FIFO キューが必要です。同様に、Amazon SQS 標準キューの Amazon SNS FIFO サブスクリプションには、デッドレターキューとして Amazon SQS 標準キューが必要です。詳細については、Amazon SNS デッドレターキュー (DLQ) と『AWS コンピューティングブログ』の「Amazon SNS、Amazon SQS 用の DLQ を使用した耐久性のあるサーバーレスアプリケーションの設計、AWS Lambda」の投稿を参照してください。

ダウンストリームの障害からの回復に役立つ耐久性が拡張され、トピック所有者は FIFO トピックを使用してメッセージを最大 365 日間アーカイブすることもできます。トピックサブスクライバーは、これらのメッセージをサブスクライブされたエンドポイントにリプレイして、ダウンストリームアプリケーションの障害によるメッセージを回復したり、既存のアプリケーションの状態を複製したりできます。詳細については、「FIFO トピックのメッセージのアーカイブとリプレイ」を参照してください。