All Products
Search
Document Center

Resource Orchestration Service:Deploy Apache Kafka in a cluster

Last Updated:Mar 06, 2025

This topic describes how to deploy Apache Kafka in a cluster by creating a stack in the Resource Orchestration Service (ROS) console.

Background information

Apache Kafka is an open source stream processing platform that is written in the Scala and Java programming languages. Apache Kafka is a high-throughput distributed publish-subscribe messaging system for processing streaming data of customer behaviors on websites.

You can use the Existing_Vpc_Cluster_Kafka sample template to create multiple Elastic Compute Service (ECS) instances based on existing resources, such as a virtual private cloud (VPC), vSwitch, and security group. Among the ECS instances, one is associated with an elastic IP address (EIP) to serve as the management node and the others are managed by using Auto Scaling. The following software versions are used in the sample template:

  • JDK 1.8.0: the Java Development Kit (JDK)

  • Scala 2.12: the programming language

  • Apache Kafka 0.10.2.2: the compute engine

The Apache Kafka data in the sample template is stored in a data disk. The default location of the storage directory /home/software/. The default location of the Apache Kafka bin directory is /home/software/kafka/bin.

After you create a stack by using the sample template, you can obtain the value of KafkaManagerUrl and log on to the Apache Kafka management console. If you want to access the URL specified by KafkaManagerUrl over the Internet, you must configure an inbound rule for the security group to allow traffic on port 9000. For more information, see Add a security group rule.

Step 1: Create a stack

  1. Log on to the ROS console.

  2. In the left-side navigation pane, choose Templates > Public Templates.

  3. Search for the Existing_Vpc_Cluster_Kafka sample template.

  4. Click Create Stack.

  5. In the Configure Parameters step, configure the Stack Name parameter and the following parameters.

    Parameter

    Description

    Example

    Existing VPC Instance ID

    The ID of the VPC.

    For more information about how to create and query a VPC, see Create and manage a VPC.

    vpc-bp1m6fww66xbntjyc****

    VSwitch Zone ID

    The zone ID of the vSwitch that resides in the VPC.

    Qingdao Zone C

    VSwitch ID

    The ID of the vSwitch that resides in the VPC.

    For more information about how to create and query a vSwitch, see Create and manage a vSwitch.

    vsw-bp183p93qs667muql****

    Business Security Group ID

    The ID of the ECS security group.

    For more information about how to query the ID of a security group, see Search for security groups.

    sg-bp15ed6xe1yxeycg7o****

    Instance Type

    The instance type of the ECS instances.

    Select a valid instance type. For more information, see Overview of instance families.

    ecs.c5.large

    Instance Password

    The password of the ECS instances.

    Test_12****

    Public IP Bandwidth

    The bandwidth of the public IP address.

    Unit: Mbit/s.

    5

    Disk Type

    The disk category. Valid values:

    • cloud_efficiency: ultra disk.

    • cloud_ssd: standard SSD.

    • cloud_essd: Enterprise SSD (ESSD).

    • cloud: basic disk.

    • ephemeral_ssd: local SSD.

    For more information, see Disks.

    cloud_efficiency

    Data Disk Space

    The data disk size of an ECS instance.

    Valid values: 20 to 32786.

    Unit: GB.

    20

    Kafka Listeners Port

    The listener port. The port number must be greater than 1000.

    Default value: 9092.

    9092

    Message Retention Time

    The maximum retention period of a message.

    Default value: 24.

    Unit: hour.

    24

    Topic Specifications

    The number of topics.

    Default value: 50.

    50

    Instance Amount

    The number of ECS instances in the cluster in which you want to deploy Apache Kafka.

    Valid values: 3 to 10.

    3

  6. Click Next:Check and Confirm. Then, click Create.

  7. On the Stack Information tab, view the stack status. Wait until the stack is created. Then, click Outputs to obtain the value of KafkaManagerUrl.

  8. Access the URL specified by KafkaManagerUrl and log on to the Apache Kafka management console.

Step 2: View resources

  1. In the left-side navigation pane, choose Deployment > Stacks.

  2. On the Stacks page, click the ID of the desired stack.

  3. Click the Resources tab to view information about the resources in the stack.

    The following table describes the resources in this example.

    Resource

    Quantity

    Resource description

    Specification description

    ALIYUN::ECS::InstanceGroup

    1

    Creates an ECS instance to deploy the Apache Kafka primary service.

    • An ECS instance that has the following specifications is created:

    • Instance type: ecs.c5.large.

    • Disk category: ultra disk.

    • System disk size: 40 GB.

    • Public IP address: A public IP address is allocated.

    ALIYUN::ESS::ScalingGroup

    2

    Creates two scaling groups to deploy Apache Kafka secondary services.

    Scaling groups automatically scale elastic computing resources based on the scaling rules that you configure to meet your business requirements.

    • Two ECS instances are created. Each ECS instance has the following specifications:

    • Instance type: ecs.c5.large.

    • Disk category: ultra disk.

    • System disk size: 40 GB.

    • Public IP address: A public IP address is allocated.

    ALIYUN::RAM::Role

    1

    Creates a Resource Access Management (RAM) role to issue a Security Token Service (STS) token that is valid within a short period of time. This way, you can grant access permissions in a secure manner.

    None.

    ALIYUN::VPC::EIP

    1

    Creates an EIP to associate the EIP with an ECS instance. This way, the ECS instance can be accessed over the Internet.

    None.

    ALIYUN::OOS::Template

    1

    Creates a CloudOps Orchestration Service (OOS) template to create lifecycle hooks.

    For more information, see Lifecycle hooks.

    None.

    Note

    For more information about the pricing details of resources, go to the relevant console or refer to the pricing documentation of each resource.