View a markdown version of this page

イベントのストレージとバックアップパイプラインを Amazon SNS にデプロイしてサブスクライブする - Amazon Simple Notification Service

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

イベントのストレージとバックアップパイプラインを Amazon SNS にデプロイしてサブスクライブする

イベントのアーカイブと分析のために、Amazon SNS は Amazon Data Firehose とのネイティブ統合の使用を推奨するようになりました。Firehose 配信ストリームを SNS トピックにサブスクライブできます。これにより、Amazon Simple Storage Service (Amazon S3) バケット、Amazon Redshift テーブル、Amazon OpenSearch Service (OpenSearch Service) などのアーカイブと分析エンドポイントへ通知を送信することができます。Firehose 配信ストリームで Amazon SNS を使用するのは、フルマネージド型のコードレスソリューションであり、 AWS Lambda 関数を使用する必要はありません。詳細については、「Firehose 配信ストリームへのファンアウト」を参照してください。

このページでは、イベントのストレージおよびバックアップパイプラインをデプロイして Amazon SNS トピックにサブスクライブする方法を説明します。このプロセスは、パイプラインに関連付けられた AWS SAM テンプレートを自動的に CloudFormation スタックに変換し、スタックを にデプロイします AWS アカウント。また、このプロセスでは、イベントのストレージおよびバックアップパイプラインを構成する、以下のようなリソースのセットを作成して設定します。

  • Amazon SQS キュー

  • Lambda function

  • Firehose 配信ストリーム

  • Amazon S3 バックアップバケット

Amazon S3 バケットを送信先としてストリームを設定する方法の詳細については、「Amazon Data Firehose API リファレンス」の「S3DestinationConfiguration」を参照してください。

イベントの変換、イベントバッファ処理の設定、イベント圧縮の設定、およびイベント暗号化の設定の詳細については、「Amazon Data Firehose デベロッパーガイド」の「配信ストリームの作成」を参照してください。

イベントのフィルター処理の詳細については、このガイドの「Amazon SNS サブスクリプションフィルターポリシー」を参照してください。

  1. AWS Lambda コンソール にサインインします。

  2. ナビゲーションパネルで [関数] を選択し、[関数の作成] を選択します。

  3. [関数の作成] ページで、次の操作を実行します。

    1. [サーバーレスアプリケーションリポジトリの参照]、[パブリックアプリケーション][カスタム IAM ロールまたはリソースポリシーを作成するアプリケーションの表示] を選択します

    2. fork-event-storage-backup-pipeline を検索し、このアプリケーションを選択します。

  4. [fork-event-storage-backup-pipeline] ページで、以下の操作を行います。

    1. [アプリケーション設定] セクションで、[アプリケーション名] に名前 (my-app-backup など) を入力します。

      注記
      • 名前は、デプロイごとに一意にする必要があります。アプリケーション名を再利用すると、デプロイは (新しいスタックを作成するのではなく) 以前にデプロイされた CloudFormation スタックのみを更新します。

    2. (オプション) [BucketArn] に、着信イベントのロード先となる Amazon S3 バケットの ARN を入力します。値を入力しない場合、 AWS アカウントに新しい Amazon S3 バケットが作成されます。

    3. (オプション) [DataTransformationFunctionArn] に、着信イベントを変換する Lambda 関数の ARN を入力します。値を入力しないと、データ変換は無効になります。

    4. (オプション) アプリケーションの Lambda 関数の実行のためも以下の LogLevel 設定のいずれかを入力します。

      • DEBUG

      • ERROR

      • INFO (デフォルト)

      • WARNING

    5. [TopicArn] に、このフォークパイプラインのインスタンスをサブスクライブする Amazon SNS トピックの ARN を入力します。

    6. (オプション) [StreamBufferingIntervalInSeconds] および [StreamBufferingSizeInMBs] に、着信イベントのバッファ処理を設定するための値を入力します。値を入力しないと、300 秒と 5 MB が使用されます。

    7. (オプション) 着信イベントを圧縮する形式として次の [StreamCompressionFormat] 設定のいずれかを入力します。

      • GZIP

      • SNAPPY

      • UNCOMPRESSED (デフォルト)

      • ZIP

    8. (オプション) [StreamPrefix] に、Amazon S3 バックアップバケットに保存されているファイルを指定するための文字列プレフィックスを入力します。値を入力しないと、プレフィックスは使用されません。

    9. (オプション) [SubscriptionFilterPolicy] に、着信イベントをフィルター処理するために使用する Amazon SNS サブスクリプションフィルターポリシーを JSON 形式で入力します。フィルターポリシーは、OpenSearch Service インデックスでインデックスを作成するイベントを決定します。値を入力しないと、フィルター処理は使用されません (すべてのイベントにインデックスが作成されます)。

    10. (オプション)SubscriptionFilterPolicyScope には、文字列 MessageBody または MessageAttributes を入力して、ペイロードベースまたは属性ベースのメッセージフィルタリングを有効にします。

    11. [I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications.] を選択して、[デプロイ] を選択します。

[my-app のデプロイステータス] ページに、Lambda によって [Your application is being deployed] ステータスが表示されます。

リソースセクションで、スタックの作成 CloudFormation を開始し、各リソースの CREATE_IN_PROGRESS ステータスを表示します。プロセスが完了すると、 は CREATE_COMPLETE ステータス CloudFormation を表示します。

デプロイが完了すると、Lambda によって [アプリケーションはデプロイ済みです] ステータスが表示されます。

Amazon SNS トピックに発行されたメッセージは、イベントのストレージおよびバックアップパイプラインによってプロビジョニングされた Amazon S3 バックアップバケットに自動的に保存されます。