Apache Kafka sur AWS via Bitnami

Apache Kafka a pu s’imposer récemment comme une plateforme de référence pour gérer le messaging et répondre à de nouveaux besoins que les autres brokers et outillages associés ne pouvaient pas gérer.
Parmi les avantages de l’utilisation de Kafka, on cite entre autres :

  • Kafka est un service de messaging transactionnel distribué, partitionné et répliqué.
  • La communication entre Kafka et les clients utilise un protocole basé sur TCP simple et très performant.

Bitnami propose des configurations prêtes à l’emploi, montées et maintenues pour n’importe quel type d’utilisation.
On distingue trois axes principaux :

  • Montage en Cloud de production : Déploiement directement sur les fournisseurs Cloud (AWS, Azure, GCP, …).
  • Montage à base de containers (Cloud privé ou public) : possibilité de montage d’une infrastructure Kubernetes par exemple.
  • Montage d’un environnement personnel de test : Sur PC/MAC ou bien en Cloud.

Dans cet article, on verra un montage rapide d’une plateforme Apache Kafka sur Amazon Web Services.

Création d’une VM Kafka sur AWS EC2

Dans les offres gratuites AWS EC2, le Marketplace propose des environnements prêts à l’emploi montés et maintenus par Bitnami :

Avec une petite configuration du client SSH, par l’import de la clé privée, la prise en main est assez rapide pour commencer à exploiter la plateforme.

Configuration de base et test Publish/Subscribe

Chemin des binaires

bitnami@ip-172-31-14-178:~/stack/kafka/bin$ pwd
/home/bitnami/stack/kafka/bin
bitnami@ip-172-31-14-178:~/stack/kafka/bin$ ls
connect-distributed.sh        kafka-log-dirs.sh                    kafka-streams-application-reset.sh
connect-standalone.sh         kafka-mirror-maker.sh                kafka-topics.sh
kafka-acls.sh                 kafka-preferred-replica-election.sh  kafka-verifiable-consumer.sh
kafka-broker-api-versions.sh  kafka-producer-perf-test.sh          kafka-verifiable-producer.sh
kafka-configs.sh              kafka-reassign-partitions.sh         trogdor.sh
kafka-console-consumer.sh     kafka-replay-log-producer.sh         windows
kafka-console-producer.sh     kafka-replica-verification.sh        zookeeper-security-migration.sh
kafka-consumer-groups.sh      kafka-run-class.sh                   zookeeper-server-start.sh
kafka-consumer-perf-test.sh   kafka-server-start.sh                zookeeper-server-stop.sh
kafka-delegation-tokens.sh    kafka-server-stop.sh                 zookeeper-shell.sh
kafka-delete-records.sh       kafka-simple-consumer-shell.sh

Création d’un Topic Test

bitnami@ip-172-31-14-178:~/stack/kafka/bin$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic Test --from-beginning

Injection des messages dans le Topic

Consommation des messages depuis le Topic

Conclusion

Nous avons vu comment il est possible de s’approprier rapidement et facilement un environnement pour tester le fonctionnement de base du broker Kafka.
Mais il y a beaucoup de possibilités à explorer, que ce soit en terme de fonctionnalités de l’écosystème autour de Kafka ou bien en terme des différentes topologies Cloud privé ou public.
Liens Utiles :
https://bitnami.com/stack/kafka
https://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html