Accéder au contenu principal

AWS MSK pour les débutants : Un guide complet de démarrage

Découvrez comment démarrer avec AWS MSK, un service Kafka géré, dans ce guide pour débutants qui contient des conseils pratiques et une comparaison des meilleures alternatives.
Actualisé 22 janv. 2025  · 20 min de lecture

De nombreuses entreprises choisissent de passer à AWS MSK pour éviter les problèmes opérationnels liés à la gestion des clusters Apache Kafka.

Dans ce tutoriel, nous allons explorer les caractéristiques, les avantages et les meilleures pratiques d'AWS MSK. Nous passerons également en revue les étapes de base pour configurer AWS MSK et nous verrons comment il se compare à d'autres services populaires tels que Kinesis et Confluent.

Qu'est-ce que l'AWS MSK ?

Tout d'abord, nous allons comprendre Apache Kafka et pourquoi il est si utile pour le streaming de données. 

Apache Kafka est une plateforme de streaming distribuée en open-source qui gère des flux de données en temps réel et permet de créer des applications pilotées par les événements. Il peut ingérer et traiter des données en continu au fur et à mesure qu'elles se présentent.

Selon le site web de Kafka, plus de 80 % des entreprises du classement Fortune 100 font confiance à Kafka et l'utilisent.

Plus important encore, Kafka est évolutif et très rapide. Cela signifie qu'il peut traiter beaucoup plus de données que ce que pourrait contenir une seule machine, et ce avec une latence très faible.

Si vous souhaitez apprendre à créer, gérer et dépanner Kafka pour le streaming de données, envisagez de suivre le cours Introduction à Kafka

Quel est le meilleur moment pour utiliser Apache Kafka ? 

  1. Lorsque vous devez traiter des quantités massives de données en temps réel, par exemple pour traiter des flux de données d'appareils IoT.
  2. Lorsque vous avez besoin d'un traitement et d'une analyse immédiats des données, comme dans le cas d'un suivi en direct de l'activité des utilisateurs ou de systèmes de détection des fraudes.
  3. Dans les scénarios d'externalisation d'événements où vous avez besoin de pistes d'audit avec des exigences de conformité et des réglementations.

Cependant, la gestion des instances Kafka peut s'accompagner de nombreux maux de tête. C'est là qu'intervient AWS MSK.

AWS MSK combine Apache Kafka et AWS.

Image par l'auteur

AWS MSK (Managed Streaming for Kafka) est un service entièrement géré qui prend en charge l'approvisionnement, la configuration, la mise à l'échelle et la maintenance des clusters Kafka. Vous pouvez l'utiliser pour créer des applications qui réagissent instantanément aux flux de données.

Kafka est souvent utilisé dans le cadre d'une installation de traitement de données plus importante, et AWS MSK facilite encore la création de pipelines de données en temps réel qui déplacent des données entre différents systèmes.

Comment AWS MSK fonctionne dans l'écosystème AWS.

Comment fonctionne Amazon MSK. Source de l'imagee : AWS

Si vous ne connaissez pas encore AWS, vous pouvez suivre notre cours Introduction à AWS pour vous familiariser avec les principes de base. Lorsque vous serez prêt, vous pourrez passer à notre cours sur la technologie et les services cloud AWS pour explorer l'ensemble des services sur lesquels les entreprises s'appuient.

Caractéristiques de AWS MSK

AWS MSK se distingue de la concurrence par le fait qu'il s'agit d'un service entièrement géré. Vous n'avez pas à vous préoccuper de la mise en place de serveurs ou des mises à jour. 

Mais ce n'est pas tout. Ces cinq caractéristiques clés du système AWS MSK en font un investissement rentable :

  1. MSK est hautement disponible et AWS garantit le respect d'accords de niveau de service stricts. Il remplace automatiquement les composants défaillants sans interruption de service de vos applications.
  2. MSK dispose d'une option de mise à l'échelle automatique pour le stockage, de sorte qu'il s'adapte automatiquement à vos besoins. Vous pouvez également augmenter ou réduire rapidement votre capacité de stockage ou ajouter des courtiers si nécessaire.
  3. En termes de sécurité, MSK est une solution complète qui assure le cryptage au repos et en transit. Il s'intègre également à AWS IAM pour le contrôle d'accès.
  4. Si vous utilisez déjà Kafka, vous pouvez passer à MSK sans modifier votre code, car MSK prend en charge toutes les API et tous les outils habituels de Kafka.
  5. MSKest une option rentable qui ne nécessite pas l'embauche d'une équipe entière d'ingénieurs pour surveiller et gérer les clusters. AWS se targue même d'être jusqu'à 40 % moins cher que Kafka autogéré.

Avantages de l'utilisation de AWS MSK

Comme nous l'avons déjà vu, AWS MSK offre une valeur immédiate grâce à sa disponibilité, son évolutivité, sa sécurité et sa facilité d'intégration. Ces avantages fondamentaux en ont fait le choix privilégié des entreprises qui exécutent des charges de travail Kafka dans le cloud.

AWS MSK résout quatre problèmes critiques auxquels tout projet de flux de données est confronté :

  • MSK est un service entièrement géré, qui vous permet de vous concentrer sur la création d'applications plutôt que sur la gestion de l'infrastructure.
  • MSK est hautement disponible et fiable, ce qui devient de plus en plus critique de nos jours, car les utilisateurs attendent un accès 24 heures sur 24 et 7 jours sur 7 aux services et aux applications.
  • MSK dispose de capacités de sécurité essentielles et complètes.
  • MSK dispose d'une intégration native avec AWS, ce qui facilite grandement la création de solutions complètes de données en continu au sein de l'écosystème AWS.

Configuration de l'AWS MSK

Pour commencer avec AWS MSK, créez d'abord votre compte AWS. Si vous utilisez AWS pour la première fois, apprenez à configurer votre compte AWS grâce à notre tutoriel complet.

Connectez-vous à la console de gestion AWS et ouvrez la console MSK. Cliquez sur "Créer un cluster" pour lancer le processus d'installation. 

AWS MSK Get Started, Créer un cluster.

Démarrer avec AWS MSK. Image source : AWS

Sélectionnez "Création rapide" pour les paramètres par défaut, puis entrez un nom de cluster descriptif.

À partir de là, vous pouvez sélectionner de nombreuses options supplémentaires, qui dépendent toutes de vos propres besoins pour votre cluster. Voici un bref aperçu des choix possibles :

  • Type de grappe : "Provisionné" ou "sans serveur"
  • Version d'Apache Kafka
  • Type de courtier : "Standard" ou "Express"
  • Taille du courtier
  • Volume de stockage EBS

Options de configuration de AWS MSK Create Cluster.

Options de configuration de l'AWS MSK

Le cluster est toujours créé au sein d'un Amazon VPC. Vous pouvez choisir d'utiliser le VPC par défaut ou de configurer et de spécifier un VPC personnalisé.

Il ne vous reste plus qu'à attendre que votre cluster soit activé, ce qui peut prendre de 15 à 30 minutes. Vous pouvez surveiller l'état de votre cluster à partir de la page de résumé du cluster, où vous verrez l'état passer de "Création" à "Actif".

Ingestion et traitement des données avec AWS MSK

Une fois que votre cluster MSK est installé, vous devez créer une machine cliente pour produire et consommer des données sur un ou plusieurs sujets. Étant donné qu'Apache Kafka s'intègre si bien à de nombreux producteurs de données (tels que les sites web, les appareils IoT, les instances Amazon EC2, etc.), MSK partage également cet avantage.

Apache Kafka organise les données dans des structures appelées "topics". Chaque thème se compose d'une ou de plusieurs partitions. Les partitions représentent le degré de parallélisme dans Apache Kafka. Les données sont réparties entre les courtiers à l'aide d'un partitionnement des données.

Termes clés à connaître lorsque vous travaillez avec des clusters Apache Kafka :

  • Les sujets sont le moyen fondamental d'organiser les données dans Kafka.
  • Producteurs sont des applications qui publient des données vers des sujets - ils génèrent et écrivent des données dans Kafka. Ils écrivent des données sur des sujets et des partitions spécifiques.
  • Consommateurs sont des applications qui lisent et traitent les données des thèmes. Ils tirent des données des sujets auxquels ils sont abonnés.

Lorsque vous construisez une architecture pilotée par les événements avec AWS MSK, vous devez configurer plusieurs couches, dont MSK est le principal composant d'ingestion de données. Voici un aperçu des couches qui peuvent être nécessaires :

  1. Configuration de l'ingestion des données
  2. Couche de traitement
  3. Couche de stockage
  4. Couche analytique

Exemple d'une architecture pilotée par les événements avec Amazon MSK et Amazon EventBridge. Source de l'image : AWS

Si vous souhaitez tirer parti de Python dans vos flux de travail de pipeline de données , consultez notre cours Introduction à AWS Bython en Python.

Meilleures pratiques pour l'utilisation de AWS MSK

AWS MSK est relativement simple à mettre en place et à utiliser immédiatement. Cependant, certaines bonnes pratiques essentielles amélioreront les performances de vos clusters et vous feront gagner du temps par la suite.

Dimensionnez votre cluster

Vous devrez choisir le bon nombre de partitions par courtier et le bon nombre de courtiers par grappe. 

Un certain nombre de facteurs peuvent influencer vos décisions, mais AWS vous propose quelques recommandations et ressources pratiques pour vous guider dans ce processus.

En outre, AWS fournit une feuille de calcul facile à utiliser pour vous aider à estimer la taille de votre cluster et les coûts associés à l'utilisation d'AWS MSK par rapport à un cluster EC2 Kafka similaire autogéré.

Construire des grappes hautement disponibles

AWS vous recommande de configurer vos clusters pour qu'ils soient hautement disponibles. Ceci est particulièrement important lors d'une mise à jour (comme la mise à jour de la version d'Apache Kafka) ou lorsqu'AWS remplace un courtier. 

Pour garantir la haute disponibilité de vos grappes, vous devez procéder à trois opérations :

  1. Configurez vos clusters sur trois zones de disponibilité (également appelées clusters à trois zones).
  2. Définissez le facteur de réplication sur 3 ou plus.
  3. Fixez le nombre minimum de répliques synchronisées à RF-1.

L'avantage d'AWS est qu'il s'engage à respecter des accords de niveau de service stricts pour les déploiements multi-zones, faute de quoi vous récupérez vos crédits.

Surveillez l'utilisation du disque et de l'unité centrale

L'utilisation du disque et de l'unité centrale sont deux paramètres clés à surveiller par le biais d'AWS CloudWatch. Cela vous permettra non seulement d'assurer le bon fonctionnement de votre système, mais aussi de réduire les coûts. 

La meilleure façon de gérer l'utilisation des disques et les coûts de stockage associés est de mettre en place une alarme CloudWatch qui vous avertit lorsque l'utilisation des disques dépasse une certaine valeur, par exemple 85 %, et d'ajuster vos politiques de conservation. La définition d'une durée de conservation des messages dans votre journal peut grandement contribuer à libérer automatiquement de l'espace disque.

En outre, pour maintenir les performances de votre cluster et éviter les goulets d'étranglement, AWS vous recommande de maintenir l'utilisation totale du CPU pour vos courtiers à moins de 60 %. Vous pouvez surveiller ce phénomène à l'aide d'AWS CloudWatch et prendre des mesures correctives en mettant à jour la taille de votre courtier, par exemple.

Protégez vos données grâce au cryptage en transit

Par défaut, AWS chiffre les données en transit entre les courtiers de votre cluster MSK. Vous pouvez désactiver cette fonction si votre système fait l'objet d'une utilisation élevée de l'unité centrale ou d'une latence importante. Toutefois, il est fortement recommandé de toujours activer le chiffrement en transit et de trouver d'autres moyens d'améliorer les performances si cela vous pose un problème.

Consultez notre cours sur la sécurité AWS et la gestion des coûts pour en savoir plus sur la façon de sécuriser et d'optimiser votre environnement cloud AWS et de gérer les coûts et les ressources dans AWS.

Comparaison entre AWS MSK et d'autres outils de diffusion en continu

Lorsqu'il s'agit de choisir l'outil le mieux adapté à un projet, il est souvent nécessaire d'évaluer plusieurs options. Voici les alternatives les plus courantes à l'AWS MSK et leur comparaison. 

AWS MSK vs Apache Kafka sur EC2

Le principal compromis entre MSK et une option auto-hébergée utilisant EC2 est entre la commodité et le contrôle : MSK vous donne moins à gérer mais moins de flexibilité, tandis qu'EC2 vous donne un contrôle total mais nécessite plus de travail.

AWS MSK prend en charge toutes les tâches opérationnelles complexes, avec un provisionnement et une configuration automatiques. L'avantage est qu'il n'y a pas de coûts d'infrastructure initiaux. Il y a également une intégration transparente avec d'autres services AWS et des fonctions de sécurité robustes.

L'utilisation de Kafka sur EC2, en revanche, implique une installation et une configuration plus manuelles, et vous devez également vous charger vous-même de la maintenance et des mises à jour. Cette solution offre beaucoup plus de souplesse, mais peut s'accompagner d'une plus grande complexité et de coûts opérationnels plus élevés, et peut nécessiter des équipes plus qualifiées.

AWS MSK vs. Kinesis

Utilisez Kinesis pour la simplicité et l'intégration AWS approfondie et MSK pour la compatibilité avec Kafka ou un meilleur contrôle de votre configuration de streaming.

Kinesis est une architecture entièrement sans serveur qui utilise les "shards" pour le flux de données. AWS gère tout pour vous. Toutefois, il existe des limites à la conservation des données dont il faut tenir compte. Kinesis est une excellente solution pour les besoins simples en matière de flux de données.

AWS MSK s'appuie sur le modèle de sujet et de partition de Kafka, avec une rétention de données virtuellement illimitée, en fonction de votre stockage. Il s'agit d'une solution plus flexible et personnalisable que vous pouvez migrer hors d'AWS si nécessaire.

Si vous ne connaissez pas Kinesis, nous avons un cours qui vous guide pour travailler avec des données en continu à l'aide d'AWS Kinesis et Lambda.

AWS MSK vs. Confluent

Choisissez Confluent si vous avez besoin de fonctionnalités et d'un support complets, et choisissez MSK si vous êtes fortement investi dans AWS et que vous disposez d'une expertise Kafka en interne.

Confluent dispose d'un ensemble de fonctionnalités riches avec de nombreux connecteurs intégrés. Il s'agit d'une option plus coûteuse dans l'ensemble, mais elle propose un niveau gratuit avec des fonctionnalités limitées. Confluent fonctionne bien pour les charges de travail irrégulières et son processus de déploiement est plus simple.

En comparaison, AWS est plus rationalisé et se concentre sur les fonctionnalités de base de Kafka. Pour accéder à un ensemble de fonctionnalités plus étendu, AWS MSK doit être intégré à d'autres services AWS. Heureusement, cette intégration est transparente. AWS MSK a un coût de base plus faible et peut être une bonne option pour les charges de travail régulières.

Le tableau suivant propose une comparaison entre le système AWS MSK et ses alternatives :

Fonctionnalité

AWS MSK

Apache Kafka sur EC2

Kinesis

Confluent

Déploiement

Gestion complète

Autogestion sur EC2

Gestion complète

Entièrement géré ou autogéré

Facilité d'utilisation

Facile à mettre en place et à gérer

Nécessite une configuration et une mise à l'échelle manuelles

Configuration simple ; native AWS

Interface utilisateur conviviale et outils avancés

Évolutivité

Mise à l'échelle automatique avec réglages manuels

Mise à l'échelle manuelle

Une mise à l'échelle sans faille

Mise à l'échelle automatique avec flexibilité

Temps de latence

Faible latence

Faible latence

Temps de latence réduit pour les petites charges utiles

Comparable à MSK

Soutien au protocole

Compatible avec l'API Kafka

Compatible avec l'API Kafka

Protocole propriétaire Kinesis

API Kafka et protocoles additionnels

Conservation des données

Configurable (jusqu'à 7 jours par défaut)

Configurable

Configurable (max 365 jours)

Hautement configurable

Suivi et mesures

Intégré à CloudWatch

Nécessite une configuration personnalisée

Intégré à CloudWatch

Outils de surveillance avancés

Coût

Pay-as-you-go

Basé sur la tarification des instances EC2

Pay-as-you-go

Sur abonnement

Sécurité

Fonctions de sécurité AWS intégrées

Doit configurer la sécurité manuellement

Intégré à AWS IAM

Fonctions de sécurité complètes

Adéquation du cas d'utilisation

Le meilleur pour les utilisateurs de Kafka dans l'écosystème AWS

Flexible, mais exigeant beaucoup d'entretien

Le meilleur pour les applications natives AWS

Utilisateurs avancés de Kafka et entreprises

Réflexions finales

Apache Kafka est le choix idéal pour les situations où vous avez besoin d'une solution fiable à grande échelle qui ne peut pas se permettre de perdre des données et qui nécessite de connecter plusieurs sources de données ou de construire des pipelines de données complexes. AWS MSK évite de nombreux maux de tête liés à la mise en place et à la configuration des clusters Kafka, ce qui permet aux développeurs de se concentrer sur la création et l'amélioration des applications plutôt que sur l'infrastructure.

L'obtention d'une certification AWS est un excellent moyen de démarrer votre carrière dans ce domaine. Vous pouvez développer vos compétences AWS en consultant notre catalogue de cours et en acquérant une expérience pratique par le biais de projets!

FAQ

AWS MSK peut-il s'intégrer à d'autres services AWS tels que Lambda et S3 ?

Oui, AWS MSK s'intègre à de nombreux services AWS. Vous pouvez utiliser MSK Connect pour exécuter des connecteurs Kafka Connect entièrement gérés. Vous pouvez utiliser des connecteurs prédéfinis ou en créer de nouveaux pour déplacer des données entre MSK et des services tels que S3, OpenSearch et RDS. AWS MSK peut également servir de source d'événements pour les fonctions Lambda. Vous pouvez configurer Lambda pour qu'il interroge vos sujets MSK et invoque automatiquement des fonctions en fonction des nouveaux messages, avec une prise en charge du traitement par lots et de la gestion des erreurs.

Puis-je migrer mon cluster Kafka existant vers AWS MSK ?

Oui, la migration vers MSK est possible de différentes manières. Vous pouvez utiliser MirrorMaker 2.0 pour la réplication en cluster, effectuer une migration directe des sujets ou utiliser des outils tiers. AWS fournit une documentation détaillée sur la migration et les meilleures pratiques pour minimiser les temps d'arrêt.

Quels sont les paramètres de surveillance et de mesure disponibles pour les clusters AWS MSK ?

MSK s'intègre à CloudWatch pour la surveillance, fournissant des mesures pour la santé des courtiers, les performances des clusters et le retard des consommateurs. Les principales mesures comprennent l'utilisation du processeur, l'espace disque, le débit du réseau et le nombre de partitions.


Joleen Bothma's photo
Author
Joleen Bothma
LinkedIn
Sujets

Apprenez-en plus sur AWS grâce à ces cours !

cours

AWS Concepts

2 hr
20.4K
Discover the world of Amazon Web Services (AWS) and understand why it's at the forefront of cloud computing.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus