Today, we’re announcing the general availability of Express brokers, a new broker type for Amazon Managed Streaming for Apache Kafka (Amazon MSK). It’s designed to deliver up to three times more throughput per-broker, scale up to 20 times faster, and reduce recovery time by 90 percent as compared to Standard brokers running Apache Kafka. Express brokers come preconfigured with Kafka best practices by default, support Kafka APIs, and provide the same low latency performance that Amazon MSK customers expect, so they can continue using existing client applications without any changes.
Express brokers provide improved compute and storage elasticity for Kafka applications when using Amazon MSK provisioned clusters. Amazon MSK is a fully-managed AWS service that makes it easier for you to build and run highly available and scalable applications based on Apache Kafka.
Let’s dive deeper into some of the key features that Express brokers have and the benefits they provide:
m7g.16xl
Standard brokers safely handling 154 MBps ingress. Express brokers use opinionated settings and resource isolation, enabling m7g.16xl
size instances to safely manage up to 500 MBps ingress without compromising performance or availability during cluster events.You have choice options in Amazon MSK depending on your workload and preference:
MSK provisioned | MSK Serverless | ||
Standard brokers | Express brokers | ||
Configuration range | Most flexible | Flexible | Least flexible |
Cluster rebalancing | Customer managed | Customer managed but up to 20x faster |
MSK managed |
Capacity management | Yes | Yes (compute only) | No |
Storage management | Yes | No | No |
Express brokers lower costs, provide higher resiliency, and lower operational overhead, making them the best choice for all Kafka workloads. If you prefer to use Kafka without managing any aspect of its capacity, its configuration, or how it scales, then you can choose Amazon MSK Serverless. This provides a fully abstracted Apache Kafka experience that eliminates the need for any infrastructure management, scales automatically, and charges you on a pay-per-use consumption model that doesn’t require you to optimize resource utilization.
Getting started with Express brokers in Amazon MSK
To get started with Express brokers, you can use the Sizing and Pricing worksheet that Amazon MSK provides. This worksheet helps you estimate the cluster size you’ll need to accommodate your workload and also gives you a rough estimate of the total monthly cost you’ll incur.
The throughput requirements of your workload are the primary factor in the size of your cluster. You should also consider other factors, such as partition and connection count to arrive at the size and number of brokers you’ll need for your cluster. For example, if your streaming application needs 30 MBps of data ingress (write) and 80 MBps data egress (read) capacity, you can use three express.m7g.large
brokers to meet your throughput needs (assuming the partition count for your workload is within the maximum number of partitions that Amazon MSK recommends for an m7g.large
instance).
The following table shows the recommended maximum ingress, egress, and partition counts per instance size for sustainable and safe operations. You can learn more about these recommendations in the Best practices section of Amazon MSK Developer Guide.
Instance size | Ingress (MBps) | Egress (MBps) |
express.m7g.large |
15.6 | 31.2 |
express.m7g.4xlarge |
124.9 | 249.8 |
express.m7g.16xlarge |
500.0 | 1000.0 |
Once you have decided the number and size of Express brokers you’ll need for your workload, go to the AWS Management Console or use the CreateCluster
API to create an Amazon MSK provisioned cluster.
When you create a new cluster on the Amazon MSK console, in the Broker type option, choose Express brokers and then select the mount of compute capacity that you want to provision for the broker. As you can see in the screen shot, you can use Apache Kafka 3.6.0 version and Graviton-based instances for Express brokers. You don’t need to preprovision storage for Express brokers.
You can also customize some of these configurations to further fine-tune the performance of your clusters according to your own preferences. To learn more, visit Express broker configurations in the Amazon MSK developer guide.
To create an MSK cluster in the AWS Command Line Interface (AWS CLI), use the create-cluster
command.
aws kafka create-cluster
--cluster-name "channy-express-cluster"
--kafka-version "3.6.0"
--number-of-broker-nodes 3
--broker-node-group-info file://brokernodegroupinfo.json
A JSON file named brokernodegroupinfo.json
specifies the three subnets over which you want Amazon MSK to distribute the broker nodes.
{
"InstanceType": "express.m7g.large",
"BrokerAZDistribution": "DEFAULT",
"ClientSubnets": [
"subnet-0123456789111abcd",
"subnet-0123456789222abcd",
"subnet-0123456789333abcd"
]
}
Once the cluster is created, you can use the bootstrap connection string to connect your clients to the cluster endpoints.
With Express brokers, you can scale vertically (changing instance size) or horizontally (adding brokers). Vertical scaling doubles throughput without requiring partition reassignment. Horizontal scaling adds brokers in sets of three and and allows you to create more partitions, but it requires partition reassignment for new brokers to serve traffic.
A major benefit of Express brokers is that you can add brokers and rebalance partitions within minutes. On the other hand, rebalancing partitions after adding Standard brokers can take several hours. The graph below shows the time it took to rebalance partitions after adding 3 Express brokers to a cluster and reassigning 2000 partitions to each of the new brokers.
As you can see, it took approximately 10 minutes to reassign these partitions and utilize the additional capacity of the new brokers. When we ran the same experiment on an equivalent cluster comprising of Standard brokers, partition reassignment took over 24hours.
To learn more about the partition reassignment, visit Expanding your cluster in the Apache Kafka documentation.
Things to know
Here are some things you should know about Express brokers:
Now available
The Express broker type is available today in the US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Frankfurt), and Europe (Ireland), and Europe (Stockholm) Regions.
You pay an hourly rate for Apache Kafka broker instance usage (billed at one-second resolution) for Express brokers, with varying fees depending on the size of the broker instance and active brokers in your MSK clusters. You also pay a per-GB rate for data written to an Express broker (billed at per-byte resolution). To learn more, visit the Amazon MSK pricing page.
Give Express brokers for Amazon MSK a try in the Amazon MSK console. For more information, visit the Amazon MSK Developer Guide and send feedback to AWS re:Post for Amazon MSK or through your usual AWS support contacts.
— Channy
Source: AWS News