AWS::MSK::Cluster
Creates a new MSK cluster. The following Python 3.6 examples shows how you can create a cluster that's distributed over two Availability Zones.
Before you run this Python script, replace the example subnet and security-group IDs with the IDs of your subnets and security group. When you create an MSK cluster, its brokers get evenly distributed over a number of Availability Zones that's equal to the number of subnets that you specify in the BrokerNodeGroupInfo parameter. In this example, you can add a third subnet to get a cluster that's distributed over three Availability Zones.
import boto3 client = boto3.client('kafka') response = client.create_cluster( BrokerNodeGroupInfo={ 'BrokerAZDistribution': 'DEFAULT', 'ClientSubnets': [ 'subnet-012345678901fedcba', 'subnet-9876543210abcdef01' ], 'InstanceType': 'kafka.m5.large', 'SecurityGroups': [ 'sg-012345abcdef789789' ] }, ClusterName='SalesCluster', EncryptionInfo={ 'EncryptionInTransit': { 'ClientBroker': 'TLS_PLAINTEXT', 'InCluster': True } }, EnhancedMonitoring='PER_TOPIC_PER_BROKER', KafkaVersion='2.2.1', NumberOfBrokerNodes=2 ) print(response)
Syntax
To declare this entity in your Amazon CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::MSK::Cluster", "Properties" : { "BrokerNodeGroupInfo" :BrokerNodeGroupInfo, "ClientAuthentication" :ClientAuthentication, "ClusterName" :String, "ConfigurationInfo" :ConfigurationInfo, "CurrentVersion" :String, "EncryptionInfo" :EncryptionInfo, "EnhancedMonitoring" :String, "KafkaVersion" :String, "LoggingInfo" :LoggingInfo, "NumberOfBrokerNodes" :Integer, "OpenMonitoring" :OpenMonitoring, "StorageMode" :String, "Tags" :{} }Key:Value, ...}
YAML
Type: AWS::MSK::Cluster Properties: BrokerNodeGroupInfo:BrokerNodeGroupInfoClientAuthentication:ClientAuthenticationClusterName:StringConfigurationInfo:ConfigurationInfoCurrentVersion:StringEncryptionInfo:EncryptionInfoEnhancedMonitoring:StringKafkaVersion:StringLoggingInfo:LoggingInfoNumberOfBrokerNodes:IntegerOpenMonitoring:OpenMonitoringStorageMode:StringTags:Key:Value
Properties
BrokerNodeGroupInfo-
Information about the broker nodes in the cluster.
Required: Yes
Type: BrokerNodeGroupInfo
Update requires: No interruption
ClientAuthentication-
Includes all client authentication related information.
Required: No
Type: ClientAuthentication
Update requires: No interruption
ClusterName-
The name of the cluster.
Required: Yes
Type: String
Update requires: Replacement
ConfigurationInfo-
Represents the configuration that you want MSK to use for the cluster.
Required: No
Type: ConfigurationInfo
Update requires: No interruption
CurrentVersion-
The version of the cluster that you want to update.
Required: No
Type: String
Update requires: No interruption
EncryptionInfo-
Includes all encryption-related information.
Required: No
Type: EncryptionInfo
Update requires: No interruption
EnhancedMonitoring-
Specifies the level of monitoring for the MSK cluster. The possible values are
DEFAULT,PER_BROKER, andPER_TOPIC_PER_BROKER.Required: No
Type: String
Update requires: No interruption
KafkaVersion-
The version of Apache Kafka. You can use Amazon MSK to create clusters that use Apache Kafka versions 1.1.1 and 2.2.1.
Required: Yes
Type: String
Update requires: No interruption
LoggingInfo-
Logging Info details.
Required: No
Type: LoggingInfo
Update requires: No interruption
NumberOfBrokerNodes-
The number of broker nodes in the cluster.
Required: Yes
Type: Integer
Update requires: No interruption
OpenMonitoring-
The settings for open monitoring.
Required: No
Type: OpenMonitoring
Update requires: No interruption
StorageMode-
This controls storage mode for supported storage tiers.
Required: No
Type: String
Update requires: No interruption
Tags-
Create tags when creating the cluster.
Required: No
Type: Map of String
Update requires: Replacement