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 AWS 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:
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
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