Amazon Simple Email Service
開発者ガイド

ステップ 4: Kinesis Data Firehose 配信ストリームを作成する

メール送信イベントを Amazon Kinesis Data Firehose に発行するには、Kinesis Data Firehose 配信ストリームを作成する必要があります。Kinesis Data Firehose 配信ストリームをセットアップしたら、Kinesis Data Firehose がデータを発行する場所を選択します。このチュートリアルでは、データを Amazon Redshift に発行するように Kinesis Data Firehose をセットアップし、Kinesis Data Firehose が中間ステップとしてレコードを Amazon S3 に発行することを選択します。このプロセスでは、Amazon Redshift が Amazon S3 から前のステップで作成したテーブルにレコードをコピーする方法を指定する必要があります。

このセクションでは、データを Amazon Redshift に送信する Kinesis Data Firehose 配信ストリームを作成する方法と、配信ストリームを編集して Amazon Redshift でどのようにして Amazon SES イベント発行データを Amazon S3 にコピーするかを指定する方法を示します。

注記

前のステップで説明したとおり、すでに Amazon Redshift クラスターをセットアップしてクラスターに接続し、データベーステーブルを作成している必要があります。

Kinesis Data Firehose 配信ストリームの作成

次の手順では、Amazon S3 を中間データの場所として使用し、データを Amazon Redshift に発行する Kinesis Data Firehose 配信ストリームを作成する方法を示しています。

Kinesis Data Firehose から Amazon Redshift への配信ストリームを作成するには

  1. AWS マネジメントコンソールにサインインして、Kinesis Data Firehose コンソール (https://console.aws.amazon.com/firehose/) を開きます。

  2. [Create Delivery Stream] を選択します。

  3. [Destination] ページで、次のオプションを選択します。

    • Destination - Amazon Redshift を選択します。

    • Delivery stream name - 配信ストリームの名前を入力します。

    • S3 bucket - [New S3 bucket] を選択してバケット名を入力し、リージョンを選択して [Create Bucket] を選択します。

    • Redshift cluster - 前のステップで作成した Amazon Redshift クラスターを選択します。

    • Redshift database - デフォルトのデータベース名である dev を入力します。

    • Redshift table -「ステップ 3: データベーステーブルを作成する」で作成したテーブルである「ses」を入力します。

    • Redshift table columns - このフィールドは空のままにします。

    • Redshift username - Amazon Redshift クラスターのセットアップ時に選択したユーザー名を入力します。

    • Redshift password - Amazon Redshift クラスターのセットアップ時に選択したパスワードを入力します。

    • Redshift COPY options - このフィールドは空のままにします。

    • Retry duration - これはデフォルト値のままにします。

    • COPY command - これはデフォルト値のままにします。次の手順で更新します。

  4. [Next] を選択します。

  5. [Configuration] ページで、フィールドをこのサンプルチュートリアルのデフォルト設定のままにします。必要なステップは、次の手順で説明するように、Kinesis Data Firehose がリソースにアクセスできるようにする IAM ロールを選択することだけです。

    1. [IAM Role] で、[Select an IAM role] を選択します。

    2. ドロップダウンメニューの [Create/Update existing IAM role] で、[Firehose delivery IAM role] を選択します。

      IAM コンソールに自動的に移動します。

    3. IAM コンソールで、フィールドをデフォルト値のままにして、[Allow] を選択します。

      Kinesis Data Firehose コンソールで Kinesis Data Firehose 配信ストリームのセットアップステップに戻ります。

  6. [Next] を選択します。

  7. [Review] ページで設定を確認した後、[Create Delivery Stream] を選択します。

Amazon Redshift コピーオプションの設定

次に、Amazon Redshift が Amazon SES イベント発行 JSON レコードを、「ステップ 3: データベーステーブルを作成する」で作成したデータベーステーブルにコピーする方法を指定する必要があります。これは、Kinesis Data Firehose 配信ストリームでコピーオプションを編集することにより行います。

この手順では、JSONPaths ファイルを作成する必要があります。JSONPaths ファイルは、Amazon Redshift COPY コマンドが JSON ソースデータを解析する方法を指定するテキストファイルです。この手順では、JSONPaths ファイルが提供されます。JSONPaths ファイルの詳細については、Amazon Redshift Database Developer Guideの「JSON 形式からの COPY」を参照してください。

Kinesis Data Firehose 配信ストリームの作成時にセットアップした Amazon S3 バケットに JSONPaths ファイルをアップロードし、次にアップロードした JSONPaths ファイルが使用されるように Kinesis Data Firehose 配信ストリームの COPY オプションを編集します。これらのステップについて、次の手順で説明します。

Amazon Redshift COPY コマンドオプションを設定するには

  1. JSONPaths ファイルを作成する - コンピューターで、jsonpaths.json というファイルを作成します。次のテキストをファイルにコピーし、ファイルを保存します。

    { "jsonpaths": [ "$.mail.messageId", "$.eventType", "$.mail.sendingAccountId", "$.mail.timestamp", "$.mail.destination", "$.mail.tags.ses:configuration-set", "$.mail.tags.campaign" ] }
  2. JSONPaths ファイルを Amazon S3 バケットにアップロードする - Amazon S3 コンソールに移動し、「Kinesis Data Firehose 配信ストリームの作成」で Kinesis Data Firehose 配信ストリームのセットアップ時に作成したバケットにファイルをアップロードします。

  3. Kinesis Data Firehose 配信ストリーム設定で COPY コマンドを設定する - ここまでで、作成したテーブルにデータを置くときに Amazon Redshift が使用する COPY コマンドの構文の設定に必要な情報を入手しました。次の手順では、Kinesis Data Firehose 配信ストリームで COPY コマンド情報を更新する方法を示します。

    1. Kinesis Data Firehose コンソールに移動します。

    2. [Redshift Delivery Streams] で、Amazon SES イベント発行用に作成した Kinesis Data Firehose 配信ストリームを選択します。

    3. [Details] ページで、[Edit] を選択します。

    4. [Redshift COPY options] ボックスに、次のテキストを入力します。以下の値は独自の値に置き換えてください。

      • S3-BUCKET-NAME - Amazon Redshift がアクセスできるように Kinesis Data Firehose がデータを置く Amazon S3 バケットの名前。このバケットは、「ステップ 4: Kinesis Data Firehose 配信ストリームを作成する」で Kinesis Data Firehose 配信ストリームをセットアップするときに作成しました。例: 「my-bucket」。

      • REGION – Amazon SES、Kinesis Data Firehose、Amazon S3、および Amazon Redshift リソースが配置されているリージョン。例: 「us-west-2」。

      json 's3://S3-BUCKET-NAME/jsonpaths.json' region 'REGION';
    5. [Save] を選択します。

次のステップ

ステップ 5: 設定セットをセットアップする