Amazon Simple Email Service
Developer Guide

Step 2: Create a Kinesis Firehose Delivery Stream

To publish email sending events to Amazon Kinesis Firehose, you must create a Kinesis Firehose delivery stream. When you set up a Kinesis Firehose delivery stream, you choose where Kinesis Firehose publishes the data. In this tutorial, we set up Kinesis Firehose to publish the data to Amazon Elasticsearch Service (Amazon ES).

This section shows how to create a Kinesis Firehose delivery stream using the Kinesis Firehose console. For the simplicity of this tutorial, we choose basic options. For information about all available options, see Creating an Amazon Kinesis Firehose Delivery Stream in the Amazon Kinesis Data Firehose Developer Guide.


You must have already set up an Amazon ES cluster, as explained in Step 1: Create an Amazon ES Cluster.

To create a delivery stream from Kinesis Firehose to Amazon Elasticsearch Service

  1. Sign in to the AWS Management Console and open the Kinesis Firehose console at

  2. Choose Create Delivery Stream.

  3. On the Destination page, choose the following options.

    • Destination – Choose Amazon Elasticsearch Service.

    • Delivery stream name – Type a name for the delivery stream.

    • Elasticsearch domain – Choose the Amazon ES domain that you created in Step 1: Create an Amazon ES Cluster.

    • Index – Type a name that you want to use to explore your email sending event data in Kibana. You can choose any name, but let's use holiday-sale for this tutorial. An index is analogous to a database. For example, if you want an easy way to access events from each of your email campaigns separately, you can use a different Kinesis Firehose stream and index for each campaign.

    • Index rotation – Choose NoRotation.

    • Type – Although this setting is not relevant to this tutorial, you must choose something, so type events. A type is a logical category or partition of your index.

    • Retry duration (sec) – Type 300.

    • Backup mode – Choose Failed Documents Only.

    • S3 bucket – Choose New S3 Bucket. Type a name for the bucket and choose the region your console is currently using.

    • S3 prefix – Leave this field empty.

  4. Choose Next.

  5. On the Configuration page, leave the fields at the default settings. The only step you must do is select an IAM role that enables Kinesis Firehose to access your resources, as explained in the following procedure.

    1. For IAM Role, choose Select an IAM role.

    2. In the drop-down menu, under Create/Update existing IAM role, choose Firehose delivery IAM role.

      You will be taken to the IAM console.

    3. In the IAM console, leave the fields at their default settings, and then choose Allow.

      You will return to the Kinesis Firehose delivery stream set-up steps in the Kinesis Firehose console.

  6. Choose Next.

  7. On the Review page, review your settings, and then choose Create Delivery Stream.

Next Step

Step 3: Set up a Configuration Set

On this page: