Menu
AWS CloudFormation
User Guide (API Version 2010-05-15)

AWS::Redshift::Cluster

The AWS::Redshift::Cluster resource creates an Amazon Redshift cluster. A cluster is a fully managed data warehouse that consists of a set of compute nodes. For more information about default values and valid values, see CreateCluster in the Amazon Redshift API Reference.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

Copy
{ "Type" : "AWS::Redshift::Cluster", "Properties" : { "AllowVersionUpgrade" : Boolean, "AutomatedSnapshotRetentionPeriod" : Integer, "AvailabilityZone" : String, "ClusterParameterGroupName" : String, "ClusterSecurityGroups" : [ String, ... ], "ClusterSubnetGroupName" : String, "ClusterType" : String, "ClusterVersion" : String, "DBName" : String, "ElasticIp" : String, "Encrypted" : Boolean, "HsmClientCertificateIdentifier" : String, "HsmConfigurationIdentifier" : String, "KmsKeyId" : String, "MasterUsername" : String, "MasterUserPassword" : String, "NodeType" : String, "NumberOfNodes" : Integer, "OwnerAccount" : String, "Port" : Integer, "PreferredMaintenanceWindow" : String, "PubliclyAccessible" : Boolean, "SnapshotClusterIdentifier" : String, "SnapshotIdentifier" : String, "VpcSecurityGroupIds" : [ String, ... ] } }

YAML

Copy
Type: "AWS::Redshift::Cluster" Properties: AllowVersionUpgrade: Boolean AutomatedSnapshotRetentionPeriod: Integer AvailabilityZone: String ClusterParameterGroupName: String ClusterSecurityGroups: - String ClusterSubnetGroupName: String ClusterType: String ClusterVersion: String DBName: String ElasticIp: String Encrypted: Boolean HsmClientCertificateIdentifier: String HsmConfigurationIdentifier: String KmsKeyId: String MasterUsername: String MasterUserPassword: String NodeType: String NumberOfNodes: Integer OwnerAccount: String Port: Integer PreferredMaintenanceWindow: String PubliclyAccessible: Boolean SnapshotClusterIdentifier: String SnapshotIdentifier: String VpcSecurityGroupIds: - String

Properties

AllowVersionUpgrade

When a new version of the Amazon Redshift is released, tells whether upgrades can be applied to the engine that is running on the cluster. The upgrades are applied during the maintenance window.

Required: No

Type: Boolean

Update requires: No interruption

AutomatedSnapshotRetentionPeriod

The number of days that automated snapshots are retained. If you set the value to 0, automated snapshots are disabled.

Required: No

Type: Integer

Update requires: No interruption

AvailabilityZone

The Amazon Elastic Compute Cloud (Amazon EC2) Availability Zone in which you want to provision your Amazon Redshift cluster. For example, if you have several EC2 instances running in a specific Availability Zone, you might want the cluster to be provisioned in the same zone in order to decrease network latency.

Required: No

Type: String

Update requires: Replacement

ClusterParameterGroupName

The name of the parameter group that you want to associate with this cluster.

Required: No

Type: String

Update requires: Some interruptions

ClusterSecurityGroups

A list of security groups that you want to associate with this cluster.

Required: No

Type: List of strings

Update requires: No interruption

ClusterSubnetGroupName

The name of a cluster subnet group that you want to associate with this cluster.

Required: No

Type: String

Update requires: Replacement

ClusterType

The type of cluster. You can specify single-node or multi-node.

Required: Yes

Type: String

Update requires: Some interruptions

ClusterVersion

The Amazon Redshift engine version that you want to deploy on the cluster.

Required: No

Type: String

Update requires: No interruption

DBName

The name of the first database that is created when the cluster is created.

Required: Yes

Type: String

Update requires: Replacement

ElasticIp

The Elastic IP (EIP) address for the cluster.

Required: No

Type: String

Update requires: Replacement

Encrypted

Indicates whether the data in the cluster is encrypted at rest.

Required: No

Type: Boolean

Update requires: Replacement

HsmClientCertificateIdentifier

Specifies the name of the HSM client certificate that the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.

Required: No

Type: String

Update requires: No interruption

HsmConfigurationIdentifier

Specifies the name of the hardware security module (HSM) configuration that contains the information that the Amazon Redshift cluster can use to retrieve and store keys in an HSM.

Required: No

Type: String

Update requires: No interruption

KmsKeyId

The AWS Key Management Service (AWS KMS) key ID that you want to use to encrypt data in the cluster.

Required: No

Type: String

Update requires: Replacement

MasterUsername

The user name that is associated with the master user account for this cluster.

Required: Yes

Type: String

Update requires: Replacement

MasterUserPassword

The password associated with the master user account for this cluster.

Required: Yes

Type: String

Update requires: No interruption

NodeType

The node type that is provisioned for this cluster.

Required: Yes

Type: String

Update requires: No interruption

NumberOfNodes

The number of compute nodes in the cluster. If you specify multi-node for the ClusterType parameter, you must specify a number greater than 1.

Important

You can't specify this parameter for a single-node cluster.

Required: Conditional

Type: Integer

Update requires: Some interruptions

OwnerAccount

When you restore from a snapshot from another AWS account, the 12-digit AWS account ID that contains that snapshot.

Required: No

Type: String

Update requires: Replacement

Port

The port number on which the cluster accepts incoming connections.

Required: No

Type: Integer

Update requires: Replacement

PreferredMaintenanceWindow

The weekly time range (in UTC) during which automated cluster maintenance can occur. The format of the time range is ddd:hh24:mi-ddd:hh24:mi.

Required: No

Type: String

Update requires: No interruption

PubliclyAccessible

Indicates whether the cluster can be accessed from a public network.

Required: No

Type: Boolean

Update requires: Replacement

SnapshotClusterIdentifier

The name of the cluster the source snapshot was created from. For more information about restoring from a snapshot, see the RestoreFromClusterSnapshot action in the Amazon Redshift API Reference.

Required: No

Required: Conditional. This property is required if your IAM policy includes a restriction on the cluster name, where the resource element specifies anything other than the wildcard character (*) for the cluster name.

Update requires: Replacement

SnapshotIdentifier

The name of the snapshot from which to create a new cluster.

Required: Conditional. If you specified the SnapshotClusterIdentifier property, you must specify this property.

Type: String

Update requires: Replacement

VpcSecurityGroupIds

A list of VPC security groups that are associated with this cluster.

Required: No

Type: List of strings

Update requires: No interruption

Return Values

Ref

When the logical ID of this resource is provided to the Ref intrinsic function, Ref returns the resource name. For example:

Copy
{ "Ref": "myCluster" }

For the Amazon Redshift cluster myCluster, Ref returns the name of the cluster.

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

Endpoint.Address

The connection endpoint for the Amazon Redshift cluster. For example: examplecluster.cg034hpkmmjt.us-east-1.redshift.amazonaws.com .

Endpoint.Port

The port number on which the Amazon Redshift cluster accepts connections. For example: 5439.

Examples

The following examples describes a single-node Amazon Redshift cluster. The master user password is referenced from an input parameter that is in the same template.

JSON

Copy
"myCluster" : { "Type": "AWS::Redshift::Cluster", "Properties": { "DBName" : "mydb", "MasterUsername" : "master", "MasterUserPassword" : { "Ref" : "MasterUserPassword" }, "NodeType" : "dw.hs1.xlarge", "ClusterType" : "single-node" } }

YAML

Copy
myCluster: Type: "AWS::Redshift::Cluster" Properties: DBName: "mydb" MasterUsername: "master" MasterUserPassword: Ref: "MasterUserPassword" NodeType: "dw.hs1.xlarge" ClusterType: "single-node"

More Info

For a complete example template, see Amazon Redshift Template Snippets.