AWS CloudFormation
User Guide (Version )

AWS::DAX::Cluster

Creates a DAX cluster. All nodes in the cluster run the same DAX caching software.

Syntax

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

JSON

{ "Type" : "AWS::DAX::Cluster", "Properties" : { "AvailabilityZones" : [ String, ... ], "ClusterName" : String, "Description" : String, "IAMRoleARN" : String, "NodeType" : String, "NotificationTopicARN" : String, "ParameterGroupName" : String, "PreferredMaintenanceWindow" : String, "ReplicationFactor" : Integer, "SecurityGroupIds" : [ String, ... ], "SSESpecification" : SSESpecification, "SubnetGroupName" : String, "Tags" : Json } }

YAML

Type: AWS::DAX::Cluster Properties: AvailabilityZones: - String ClusterName: String Description: String IAMRoleARN: String NodeType: String NotificationTopicARN: String ParameterGroupName: String PreferredMaintenanceWindow: String ReplicationFactor: Integer SecurityGroupIds: - String SSESpecification: SSESpecification SubnetGroupName: String Tags: Json

Properties

AvailabilityZones

The Availability Zones (AZs) in which the cluster nodes will be created. All nodes belonging to the cluster are placed in these Availability Zones. Use this parameter if you want to distribute the nodes across multiple AZs.

Required: No

Type: List of String

Update requires: No interruption

ClusterName

The name of the DAX cluster.

Note

Updates are not supported for this property.

Required: No

Type: String

Update requires: Replacement

Description

The description of the cluster.

Required: No

Type: String

Update requires: No interruption

IAMRoleARN

A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.

Note

Updates are not supported for this property.

Required: Yes

Type: String

Update requires: Replacement

NodeType

The node type for the nodes in the cluster. (All nodes in a DAX cluster are of the same type.)

Note

Updates are not supported for this property.

Required: Yes

Type: String

Update requires: Replacement

NotificationTopicARN

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent.

Note

The Amazon SNS topic owner must be same as the DAX cluster owner.

Required: No

Type: String

Update requires: No interruption

ParameterGroupName

The parameter group to be associated with the DAX cluster.

Required: No

Type: String

Update requires: No interruption

PreferredMaintenanceWindow

A range of time when maintenance of DAX cluster software will be performed. For example: sun:01:00-sun:09:00. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.

Required: No

Type: String

Update requires: No interruption

ReplicationFactor

The number of nodes in the DAX cluster. A replication factor of 1 will create a single-node cluster, without any read replicas. For additional fault tolerance, you can create a multiple node cluster with one or more read replicas. To do this, set ReplicationFactor to 2 or more.

Note

AWS recommends that you have at least two read replicas per cluster.

Required: Yes

Type: Integer

Update requires: No interruption

SecurityGroupIds

A list of security group IDs to be assigned to each node in the DAX cluster. (Each of the security group ID is system-generated.)

If this parameter is not specified, DAX assigns the default VPC security group to each node.

Required: No

Type: List of String

Update requires: No interruption

SSESpecification

Represents the settings used to enable server-side encryption on the cluster.

Required: No

Type: SSESpecification

Update requires: Replacement

SubnetGroupName

The name of the subnet group to be used for the replication group.

Important

DAX clusters can only run in an Amazon VPC environment. All of the subnets that you specify in a subnet group must exist in the same VPC.

Note

Updates are not supported for this property.

Required: No

Type: String

Update requires: Replacement

Tags

A set of tags to associate with the DAX cluster.

Required: No

Type: Json

Update requires: No interruption

Return Values

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the name of the created DAX cluster. For example:

{ "Ref": "MyResource" }

Returns a value similar to the following:

MyDAXCluster

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.

Arn

Returns the ARN of the DAX cluster. For example:

{ "Fn::GetAtt": ["MyDAXCluster", "Arn"] }

Returns a value similar to the following:

arn:aws:dax:us-east-1:111122223333:cache/MyDAXCluster
ClusterDiscoveryEndpoint

Returns the configuration endpoint of the DAX cluster. For example:

{ "Fn::GetAtt": ["MyDAXCluster", "ClusterDiscoveryEndpoint"] }

Returns a value similar to the following:

mydaxcluster.0h3d6x.clustercfg.dax.use1.cache.amazonaws.com:8111

Examples

Create Cluster

The following example creates a DAX cluster.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Create a DAX cluster", "Resources": { "daxCluster": { "Type": "AWS::DAX::Cluster", "Properties": { "ClusterName": "MyDAXCluster", "NodeType": "dax.r3.large", "ReplicationFactor": 1, "IAMRoleARN": "arn:aws:iam::111122223333:role/DaxAccess", "Description": "DAX cluster created with CloudFormation", "SubnetGroupName": {"Ref":"subnetGroupClu"} } }, "subnetGroupClu": { "Type": "AWS::DAX::SubnetGroup", "Properties": { "SubnetGroupName": "MySubnetGroup", "Description": "Subnet group for DAX cluster", "SubnetIds": [ {"Ref":"subnet1"}, {"Ref":"subnet2"} ] } }, "subnet1": { "Type": "AWS::EC2::Subnet", "Properties": { "VpcId": {"Ref":"daxVpc"}, "CidrBlock": "172.13.17.0/24", "AvailabilityZone": { "Fn::Select": [ 0, { "Fn::GetAZs": "" } ] } } }, "subnet2": { "Type": "AWS::EC2::Subnet", "Properties": { "VpcId": {"Ref":"daxVpc"}, "CidrBlock": "172.13.18.0/24", "AvailabilityZone": { "Fn::Select": [ 1, { "Fn::GetAZs": "" } ] } } }, "daxVpc": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "172.13.0.0/16" } } }, "Outputs": { "Cluster": { "Value": {"Ref":"daxCluster"} } } }

YAML

AWSTemplateFormatVersion: "2010-09-09" Description: "Create a DAX cluster" Resources: daxCluster: Type: AWS::DAX::Cluster Properties: ClusterName: "MyDAXCluster" NodeType: "dax.r3.large" ReplicationFactor: 1 IAMRoleARN: "arn:aws:iam::111122223333:role/DaxAccess" Description: "DAX cluster created with CloudFormation" SubnetGroupName: !Ref subnetGroupClu subnetGroupClu: Type: AWS::DAX::SubnetGroup Properties: SubnetGroupName: "CFNClusterSubnetGrp" Description: "Subnet group for DAX cluster" SubnetIds: - !Ref subnet1 - !Ref subnet2 subnet1: Type: AWS::EC2::Subnet Properties: VpcId: !Ref daxVpc CidrBlock: 172.13.17.0/24 AvailabilityZone: Fn::Select: - 0 - Fn::GetAZs: "" subnet2: Type: AWS::EC2::Subnet Properties: VpcId: !Ref daxVpc CidrBlock: 172.13.18.0/24 AvailabilityZone: Fn::Select: - 1 - Fn::GetAZs: "" daxVpc: Type: AWS::EC2::VPC Properties: CidrBlock: 172.13.0.0/16 Outputs: Cluster: Value: !Ref daxCluster