» aws_kinesis_stream

Provides a Kinesis Stream resource. Amazon Kinesis is a managed service that scales elastically for real-time processing of streaming big data.

For more details, see the Amazon Kinesis Documentation.

» Example Usage

resource "aws_kinesis_stream" "test_stream" {
  name             = "terraform-kinesis-test"
  shard_count      = 1
  retention_period = 48

  shard_level_metrics = [

  tags = {
    Environment = "test"

» Argument Reference

The following arguments are supported:

  • name - (Required) A name to identify the stream. This is unique to the AWS account and region the Stream is created in.
  • shard_count – (Required) The number of shards that the stream will use. Amazon has guidlines for specifying the Stream size that should be referenced when creating a Kinesis stream. See Amazon Kinesis Streams for more.
  • retention_period - (Optional) Length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 168 hours. Minimum value is 24. Default is 24.
  • shard_level_metrics - (Optional) A list of shard-level CloudWatch metrics which can be enabled for the stream. See Monitoring with CloudWatch for more. Note that the value ALL should not be used; instead you should provide an explicit list of metrics you wish to enable.
  • encryption_type - (Optional) The encryption type to use. The only acceptable values are NONE or KMS. The default value is NONE.
  • kms_key_id - (Optional) The GUID for the customer-managed KMS key to use for encryption. You can also use a Kinesis-owned master key by specifying the alias aws/kinesis.
  • tags - (Optional) A mapping of tags to assign to the resource.

» Attributes Reference

  • id - The unique Stream id
  • name - The unique Stream name
  • shard_count - The count of Shards for this Stream
  • arn - The Amazon Resource Name (ARN) specifying the Stream (same as id)

» Timeouts

aws_kinesis_stream provides the following Timeouts configuration options:

  • create - (Default 5 minutes) Used for Creating a Kinesis Stream
  • update - (Default 120 minutes) Used for Updating a Kinesis Stream
  • delete - (Default 120 minutes) Used for Destroying a Kinesis Stream

» Import

Kinesis Streams can be imported using the name, e.g.

$ terraform import aws_kinesis_stream.test_stream terraform-kinesis-test