Project Metamorphosis: Unveiling the next-gen event streaming platformLearn More

Deploying Apache Kafka on AWS Elastic Block Store (EBS)

Apache Kafka is designed to be highly performant, reliable, scalable, and fault tolerant. At the same time, the performance and reliability of a Kafka cluster is highly dependent on the underlying infrastructure. That interdependence makes the right infrastructure choices critical to any successful deployment. For users who have made the decision to deploy Kafka on the AWS Cloud, making the right choices on storage infrastructure can seem daunting. The reality is that selecting reasonable infrastructure is easier than you think.

Let’s start by thinking about the Kafka cluster at a high level. At its core, the Kafka cluster is a set of servers that offer a shared service where data can be published and retrieved by external clients. Each server is referred to as a Kafka broker, and the data managed by the brokers is logically divided into distinct topics. Data for each topic is persisted locally on the brokers, in a replicated and partitioned manner that prevents data loss or catastrophic disruption if a broker fails. By design, Kafka clusters will automatically re-replicate data and re-balance the client connections when a broker node is lost from the cluster. The brokers are optimized to aggregate the physical I/O for the topic data, resulting in a general pattern of sequential operations against the storage tier. Readers interested in a more comprehensive discussion of the Kafka architecture can refer to the documentation.

Consider what this implies for the underlying storage infrastructure in a Kafka Cluster. Obviously, the absolute performance is critically important… as higher performance reduces the time needed to persist the data as it arrives in the cluster as well as the time needed to retrieve data for a consume or a new cluster node when re-replication is needed. EBS volumes in AWS are an excellent option here. They provide consistent levels of I/O performance (IOPS) and ultimate flexibility in their deployment. A properly designed Kafka cluster based on EBS storage can virtually eliminate the re-replication overhead that would be triggered by an instance failure, as the EBS volumes can be reassigned to a new instance quickly and easily. And from an operations perspective, a Kafka cluster deployed against EBS storage can be shut down cleanly without risk of data loss, a capability not possible when using EC2 Local Instance Storage.

This is why we view the new st1 and sc1 EBS offerings from Amazon as very promising. At a cost up to 50% lower than earlier EBS offerings, and optimized for sequential I/O workloads, we observed that these storage volumes delivered the performance and reliability needed for Kafka environments. We will conduct more detailed testing and welcome hearing about what others have found. (See Amazon blog: EBS Update – New Cold Storage and Throughput Options) .

The other infrastructure components (CPU, memory, networking) also play an important role in the capabilities of any Kafka cluster. In future blogs, I’ll discuss the considerations for those sub-systems in greater detail. It was important to start with storage, because reliable, persistent data platforms such as Kafka are impossible without it.

Did you like this blog post? Share it now

Subscribe to the Confluent blog

More Articles Like This

Project Metamorphosis Month 4: Confluent Cloud for Apache Kafka Available Everywhere

We launched Project Metamorphosis in April with the goal of making it dramatically easier for organizations to leverage an event streaming platform for their business needs. By reimagining event streaming […]

How Tencent PCG Uses Apache Kafka to Handle 10 Trillion+ Messages Per Day

As one of the world’s biggest internet-based platform companies, Tencent uses technology to enrich the lives of users and assist the digital upgrade of enterprises. An example product is the […]

Apache Kafka as a Service with Confluent Cloud Now Available on AWS Marketplace

You may already know that Confluent Cloud is available across AWS, Azure, and Google Cloud, allowing you to access the amazing stack built by Confluent including a battle-tested version of […]

Sign Up Now

Start your 3-month trial. Get up to $200 off on each of your first 3 Confluent Cloud monthly bills

Nouvelles inscriptions uniquement.

En cliquant sur le bouton « inscription » ci-dessus, vous acceptez que nous traitions vos informations personnelles conformément à notre Politique de confidentialité.

En cliquant sur « Inscription » ci-dessus, vous acceptez les termes du/de la Conditions d'utilisation et de recevoir occasionnellement des e-mails publicitaires de la part de Confluent. Vous comprenez également que nous traiterons vos informations personnelles conformément à notre Politique de confidentialité.

Get Confluent Cloud

Get up to $200 off on each of your first 3 Confluent Cloud monthly bills


Choose one sign-up option below

Marketplaces

  • AWS
  • Azure
  • Google Cloud

  • Billed through your Cloud provider*
  • Stream only on 1 cloud
*Billing admin role needed

Marketplaces

  • Billed through your Cloud provider*
  • Stream only on 1 cloud
  • Billing admin role needed

*Billing admin role needed

Confluent


  • Pay with a credit card
  • Stream across multiple clouds

Confluent

  • Pay with a credit card
  • Stream across multiple clouds

En cliquant sur le bouton « inscription » ci-dessus, vous acceptez que nous traitions vos informations personnelles conformément à notre Politique de confidentialité.

En cliquant sur « Inscription » ci-dessus, vous acceptez les termes du/de la Conditions d'utilisation et de recevoir occasionnellement des e-mails publicitaires de la part de Confluent. Vous comprenez également que nous traiterons vos informations personnelles conformément à notre Politique de confidentialité.

Gratuit à vie sur un seul broker Kafka
i

Le logiciel permettra une utilisation illimitée dans le temps de fonctionnalités commerciales sur un seul broker Kafka. Après l'ajout d'un second broker, un compteur de 30 jours démarrera automatiquement sur les fonctionnalités commerciales. Celui-ci ne pourra pas être réinitialisé en revenant à un seul broker.

Sélectionnez un type de déploiement
Déploiement manuel
  • tar
  • zip
  • deb
  • rpm
  • docker
ou
Déploiement automatique
  • kubernetes
  • ansible

En cliquant sur le bouton « télécharger gratuitement » ci-dessus, vous acceptez que nous traitions vos informations personnelles conformément à notre Politique de confidentialité.

En cliquant sur « Téléchargement gratuit » ci-dessus, vous acceptez la Contrat de licence Confluent et de recevoir occasionnellement des e-mails publicitaires de la part de Confluent. Vous acceptez également que vos renseignements personnels soient traitées conformément à notre Politique de confidentialité.

Ce site Web utilise des cookies afin d'améliorer l'expérience utilisateur et analyser les performances et le trafic sur notre site Web. Nous partageons également des informations concernant votre utilisation de notre site avec nos partenaires publicitaires, analytiques et de réseaux sociaux.