Class: AWSCDK::MSK::CfnCluster::BrokerNodeGroupInfoProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
msk/cfn_cluster.rb

Overview

Describes the setup to be used for the broker nodes in the cluster.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client_subnets:, instance_type:, broker_az_distribution: nil, connectivity_info: nil, security_groups: nil, storage_info: nil) ⇒ BrokerNodeGroupInfoProperty

Returns a new instance of BrokerNodeGroupInfoProperty.

Parameters:

  • client_subnets (Array<String>)

    The list of subnets to connect to in the client virtual private cloud (VPC).

  • instance_type (String)

    The type of Amazon EC2 instances to use for brokers.

  • broker_az_distribution (String, nil) (defaults to: nil)

    This parameter is currently not in use.

  • connectivity_info (AWSCDK::IResolvable, AWSCDK::MSK::CfnCluster::ConnectivityInfoProperty, nil) (defaults to: nil)

    Information about the cluster's connectivity setting.

  • security_groups (Array<String>, nil) (defaults to: nil)

    The security groups to associate with the ENIs in order to specify who can connect to and communicate with the Amazon MSK cluster.

  • storage_info (AWSCDK::IResolvable, AWSCDK::MSK::CfnCluster::StorageInfoProperty, nil) (defaults to: nil)

    Contains information about storage volumes attached to Amazon MSK broker nodes.



764
765
766
767
768
769
770
771
772
773
774
775
776
777
# File 'msk/cfn_cluster.rb', line 764

def initialize(client_subnets:, instance_type:, broker_az_distribution: nil, connectivity_info: nil, security_groups: nil, storage_info: nil)
  @client_subnets = client_subnets
  Jsii::Type.check_type(@client_subnets, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "clientSubnets")
  @instance_type = instance_type
  Jsii::Type.check_type(@instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "instanceType")
  @broker_az_distribution = broker_az_distribution
  Jsii::Type.check_type(@broker_az_distribution, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "brokerAzDistribution") unless @broker_az_distribution.nil?
  @connectivity_info = connectivity_info.is_a?(Hash) ? ::AWSCDK::MSK::CfnCluster::ConnectivityInfoProperty.new(**connectivity_info.transform_keys(&:to_sym)) : connectivity_info
  Jsii::Type.check_type(@connectivity_info, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19tc2suQ2ZuQ2x1c3Rlci5Db25uZWN0aXZpdHlJbmZvUHJvcGVydHkifV19fQ==")), "connectivityInfo") unless @connectivity_info.nil?
  @security_groups = security_groups
  Jsii::Type.check_type(@security_groups, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "securityGroups") unless @security_groups.nil?
  @storage_info = storage_info.is_a?(Hash) ? ::AWSCDK::MSK::CfnCluster::StorageInfoProperty.new(**storage_info.transform_keys(&:to_sym)) : storage_info
  Jsii::Type.check_type(@storage_info, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19tc2suQ2ZuQ2x1c3Rlci5TdG9yYWdlSW5mb1Byb3BlcnR5In1dfX0=")), "storageInfo") unless @storage_info.nil?
end

Instance Attribute Details

#broker_az_distributionString? (readonly)

This parameter is currently not in use.



816
817
818
# File 'msk/cfn_cluster.rb', line 816

def broker_az_distribution
  @broker_az_distribution
end

#client_subnetsArray<String> (readonly)

The list of subnets to connect to in the client virtual private cloud (VPC).

Amazon creates elastic network interfaces (ENIs) inside these subnets. Client applications use ENIs to produce and consume data.

If you use the US West (N. California) Region, specify exactly two subnets. For other Regions where Amazon MSK is available, you can specify either two or three subnets. The subnets that you specify must be in distinct Availability Zones. When you create a cluster, Amazon MSK distributes the broker nodes evenly across the subnets that you specify.

Client subnets can't occupy the Availability Zone with ID use1-az3 .



789
790
791
# File 'msk/cfn_cluster.rb', line 789

def client_subnets
  @client_subnets
end

#connectivity_infoAWSCDK::IResolvable, ... (readonly)

Information about the cluster's connectivity setting.



821
822
823
# File 'msk/cfn_cluster.rb', line 821

def connectivity_info
  @connectivity_info
end

#instance_typeString (readonly)

The type of Amazon EC2 instances to use for brokers.

Depending on the broker type , Amazon MSK supports the following broker sizes:

Standard broker sizes

  • kafka.t3.small

You can't select the kafka.t3.small instance type when the metadata mode is KRaft.

  • kafka.m5.large, kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.8xlarge, kafka.m5.12xlarge, kafka.m5.16xlarge, kafka.m5.24xlarge
  • kafka.m7g.large, kafka.m7g.xlarge, kafka.m7g.2xlarge, kafka.m7g.4xlarge, kafka.m7g.8xlarge, kafka.m7g.12xlarge, kafka.m7g.16xlarge

Express broker sizes

  • express.m7g.large, express.m7g.xlarge, express.m7g.2xlarge, express.m7g.4xlarge, express.m7g.8xlarge, express.m7g.12xlarge, express.m7g.16xlarge

Some broker sizes might not be available in certian AWS Regions. See the updated Pricing tools section on the Amazon MSK pricing page for the latest list of available instances by Region.



811
812
813
# File 'msk/cfn_cluster.rb', line 811

def instance_type
  @instance_type
end

#security_groupsArray<String>? (readonly)

The security groups to associate with the ENIs in order to specify who can connect to and communicate with the Amazon MSK cluster.

If you don't specify a security group, Amazon MSK uses the default security group associated with the VPC. If you specify security groups that were shared with you, you must ensure that you have permissions to them. Specifically, you need the ec2:DescribeSecurityGroups permission.



828
829
830
# File 'msk/cfn_cluster.rb', line 828

def security_groups
  @security_groups
end

#storage_infoAWSCDK::IResolvable, ... (readonly)

Contains information about storage volumes attached to Amazon MSK broker nodes.



833
834
835
# File 'msk/cfn_cluster.rb', line 833

def storage_info
  @storage_info
end

Class Method Details

.jsii_propertiesObject



835
836
837
838
839
840
841
842
843
844
# File 'msk/cfn_cluster.rb', line 835

def self.jsii_properties
  {
    :client_subnets => "clientSubnets",
    :instance_type => "instanceType",
    :broker_az_distribution => "brokerAzDistribution",
    :connectivity_info => "connectivityInfo",
    :security_groups => "securityGroups",
    :storage_info => "storageInfo",
  }
end

Instance Method Details

#to_jsiiObject



846
847
848
849
850
851
852
853
854
855
856
857
# File 'msk/cfn_cluster.rb', line 846

def to_jsii
  result = {}
  result.merge!({
    "clientSubnets" => @client_subnets,
    "instanceType" => @instance_type,
    "brokerAzDistribution" => @broker_az_distribution,
    "connectivityInfo" => @connectivity_info,
    "securityGroups" => @security_groups,
    "storageInfo" => @storage_info,
  })
  result.compact
end