Questions d'ordre général
Amazon Managed Streaming for Apache Kafka (Amazon MSK) est un service de streaming de données AWS qui gère l’infrastructure et les opérations Apache Kafka, permettant ainsi aux développeurs ainsi qu’aux gestionnaires DevOps d’exécuter des applications Apache Kafka et des connecteurs Apache Kafka Connect sur AWS sans avoir besoin d’expertise dans l’exploitation d’Apache Kafka. Amazon MSK exploite, entretient et met à l’échelle des clusters Apache Kafka, fournit des fonctionnalités de sécurité de niveau entreprise et intègre des intégrations AWS qui accélèrent le développement d’applications de streaming de données. Pour démarrer, vous pouvez migrer des charges de travail Apache Kafka et des connecteurs Apache Kafka Connect existants vers Amazon MSK ou, en quelques clics, en créer de nouveaux en quelques minutes. Aucuns frais de transfert de données ne vous seront facturés pour le trafic au sein du cluster, et aucun engagement ni paiement initial n’est requis. Ne payez que pour les ressources que vous utilisez.
Apache Kafka est une plateforme open source haute performance, tolérante aux pannes et évolutive qui permet de créer des pipelines et des applications de streaming de données en temps réel. Apache Kafka est une banque de données en continu qui sépare les applications produisant des données en continu (producteurs) dans sa banque de données des applications utilisant des données en continu (consommateurs) de sa banque de données. Les organisations utilisent Apache Kafka en tant que source de données pour des applications qui analysent et réagissent en permanence aux données en continu. En savoir plus sur Apache Kafka.
Apache Kafka Connect, un composant open source d’Apache Kafka, est un cadre qui permet de connecter Apache Kafka aux systèmes externes, par exemple les bases de données, les magasins clé-valeur, les index de recherche et les systèmes de fichiers.
Le streaming de données est un flux continu de petits enregistrements ou évènements (la taille d'un enregistrement ou d'un évènement est généralement de quelques kilooctets) générés par des milliers de machines, appareils, sites web et applications. Les données en streaming incluent une grande variété de données, telles que les fichiers journaux générés par les clients à l'aide de vos applications mobiles ou web ; les achats de e-commerce ; l'activité intrajeu des joueurs ; les informations provenant de réseaux sociaux, de parquets financiers et de services géospatiaux ; les journaux de sécurité, les métriques et la télémétrie issue de dispositifs connectés ou d'instruments des centres de données. Les services de streaming de données, tels qu'Amazon MSK et Amazon Kinesis Data Streams, facilitent la collecte, le traitement et la fourniture en continu de streaming de données. En savoir plus sur le streaming de données.
- Apache Kafka stocke les données de streaming de manière tolérante aux pannes, fournissant ainsi une mémoire tampon entre producteurs et consommateurs. Il stocke les évènements sous la forme d'une série d'enregistrements continue et préserve l'ordre dans lequel les enregistrements ont été produits.
- Apache Kafka permet à de nombreux producteurs de données, par exemple les sites web, les appareils IoT (Internet des objets), les instances Amazon Elastic Compute Cloud (Amazon EC2), de publier en continu les données en streaming et de les classer à l'aide de rubriques Apache Kafka. Plusieurs consommateurs de données (applications de machine learning, fonctions AWS Lambda ou microservices) effectuent la lecture dans ces rubriques à leur propre rythme, de la même façon qu'une file d'attente de messages ou un système de messagerie d'entreprise.
- Les consommateurs de données traitent les données des rubriques Apache Kafka selon le principe du premier entré, premier sorti, en préservant l’ordre dans lequel les données ont été produites.
Apache Kafka prend en charge des applications en temps réel qui transforment, transmettent et réagissent au streaming de données, et peut également être utilisé pour créer des pipelines de données en streaming en temps réel capables de transférer des données de manière fiable entre plusieurs systèmes ou applications.
En quelques clics dans la console, vous pouvez créer un cluster Amazon MSK. À partir de là, Amazon MSK remplace les agents en mauvais état, réplique automatiquement les données pour une haute disponibilité, gère les nœuds Apache ZooKeeper, déploie automatiquement les correctifs matériels nécessaires, gère les intégrations avec les services AWS, rend visibles les métriques importantes via la console et prend en charge les mises à niveau de version d'Apache Kafka afin que vous puissiez tirer parti des améliorations apportées à la version open source d'Apache Kafka.
Pour connaître les versions Apache Kafka prises en charge, consultez la documentation Amazon MSK.
Oui, toutes les API de plan de données et d'administration sont prises en charge de manière native par Amazon MSK.
Oui.
Oui. Les clients Apache Kafka peuvent utiliser sans frais supplémentaires AWS Glue Schema Registry, une fonctionnalité sans serveur d'AWS Glue. Consultez la documentation utilisateur de Schema Registry pour démarrer et pour en savoir plus.
Amazon MSK prend désormais en charge les instances M7g basées sur Graviton 3, de tailles « grandes » à « 16xlarge », pour exécuter toutes les charges de travail Apache Kafka. Les instances Graviton offrent les mêmes avantages en termes de disponibilité et de durabilité que MSK, avec des coûts jusqu’à 24 % inférieurs à ceux des instances M5 correspondantes. Les instances Graviton offrent un débit par instance jusqu'à 29 % supérieur à celui des instances M5 de MSK, ce qui permet aux clients d'exécuter des clusters MSK avec moins de courtiers ou des instances de plus petite taille.
MSK sans serveur
Q : Qu'est-ce que MSK Serverless ?
MSK Serverless est un type de cluster pour Amazon MSK qui vous permet d'exécuter facilement les clusters Apache Kafka sans avoir à gérer une capacité de calcul et de stockage. Avec MSK Serverless, vous pouvez exécuter vos applications sans avoir à allouer, configurer ou optimiser des clusters, et vous payez pour le volume de données que vous diffusez et retenez.
Q : MSK Serverless équilibre-t-il automatiquement les partitions au sein d'un cluster ?
Oui. MSK Serverless gère complètement les partitions, y compris la surveillance et leur migration vers des charges égales dans un cluster.
Q : Quelle capacité de débit de données MSK Serverless prend-t-il en charge ?
MSK Serverless fournit jusqu'à 200 Mbit/s de capacité en écriture et 400 Mbit/s de capacité en lecture par cluster. De plus, pour garantir un débit disponible suffisant pour toutes les partitions dans un cluster, MSK Serverless alloue jusqu'à 5 Mbit/s de capacité instantanée en écriture et de 10 Mbit/s de capacité instantanée en lecture par partition.
Q : Quelles fonctions de sécurité la solution MSK Serverless offre-t-elle ?
MSK Serverless chiffre l'ensemble du trafic en transit et toutes les données au repos utilisant des clés gérées par le service, émises via AWS Key Management Service (KMS). Les clients se connectent à MSK Serverless au moyen d'une connexion privée via AWS PrivateLink, sans exposer votre trafic sur l'Internet public. En outre, MSK Serverless offre le contrôle d'accès IAM, que vous pouvez utiliser pour gérer l'authentification client et l'autorisation client pour les ressources Apache Kafka, comme les rubriques.
Q : Comment les producteurs et les consommateurs accèdent-ils à mes clusters MSK Serverless ?
Quand vous créez un cluster MSK Serverless, vous fournissez les sous-réseaux d'un ou de plusieurs Amazon Virtual Private Cloud (VPC), qui hébergent les clients du cluster. Les clients hébergés sur l'un de ces VPC pourront se connecter au cluster MSK Serverless en utilisant sa chaîne d'agent d'amorçage.
Q : Dans quelle région MSK Serverless est-il disponible ?
Pour obtenir des informations à jour sur la disponibilité régionale, veuillez consulter la page de la tarification de MSK.
Q : Quels types d'authentification MSK Serverless prend-il en charge ?
MSK Serverless prend actuellement en charge AWS IAM pour l'authentification et l'autorisation client. Vos clients peuvent adopter un rôle IAM AWS pour l'authentification et vous pouvez appliquer des contrôles d'accès à l'aide d'une politique IAM associée.
Q : Comment puis-je traiter des données dans mon cluster MSK Serverless ?
Vous pouvez utiliser n'importe quel outil compatible avec Apache Kafka pour le traitement des données dans vos rubriques de cluster MSK sans serveur. MSK sans serveur s’intègre avec le service géré Amazon pour Apache Flink pour le traitement des flux avec état et AWS Lambda pour le traitement des événements. De plus, vous pouvez utiliser les connecteurs cibles Apache Kafka Connect pour envoyer des données vers la destination de votre choix.
Q : Comment MSK sans serveur assure-t-il une haute disponibilité ?
Lorsque vous créez une partition, MSK Serverless en crée 2 répliques et les disposent dans des zones de disponibilité différentes. En outre, MSK Serverless identifie automatiquement et restaure les ressources backend manquantes pour assurer une haute disponibilité.
Production et consommation de données
Q : Puis-je utiliser les API Apache Kafka pour le transfert de données entrantes et sortantes dans et hors d'Apache Kafka ?
Oui, Amazon MSK prend en charge les API natives de producteur et de consommateur Apache Kafka. Votre code d'application n'a pas besoin de changer lorsque les clients commencent à travailler avec des clusters au sein d'Amazon MSK.
Q : Puis-je utiliser Apache Kafka Connect, Apache Kafka Streams ou tout autre composant de l'écosystème d'Apache Kafka avec Amazon MSK ?
Oui, vous pouvez utiliser n'importe quel composant utilisant les API de producteur et de consommateur Apache Kafka et Apache Kafka Admin Client. Les outils qui chargent des fichiers .jar dans des clusters Apache Kafka ne sont actuellement pas compatibles avec Amazon MSK, notamment Confluent Control Center, Confluent Auto Data Balancer et Uber uReplicator.
Migration vers Amazon MSK
Oui, vous pouvez utiliser des outils tiers ou open source tels que MirrorMaker, pris en charge par Apache Kafka, pour répliquer les données de clusters dans un cluster Amazon MSK. Voici un atelier de migration Amazon MSK pour vous aider à terminer une migration.
Mises à niveau de version
Q : Les mises à niveau de version Apache Kafka sont-elles prises en charge ?
Oui, Amazon MSK prend en charge les mises à niveau de version Apache Kafka en place entièrement gérées pour les clusters approvisionnés. Pour en savoir plus sur comment mettre à niveau votre version Apache Kafka et connaître les bonnes pratiques en matière de haute disponibilité, veuillez consulter la documentation sur les mises à niveau de version.
Clusters
Vous pouvez créer votre premier cluster en quelques clics dans la console de gestion AWS ou à l'aide des kits SDK AWS. Tout d'abord, dans la console Amazon MSK, sélectionnez une région AWS dans laquelle créer un cluster Amazon MSK. Choisissez un nom pour votre cluster, le Virtual Private Cloud (VPC) avec lequel vous voulez exécuter le cluster, et les sous-réseaux de chaque zone de disponibilité. Si vous souhaitez créer un cluster approvisionné, vous pourrez également sélectionner un type d'instance d'agent, la quantité d'agents par zone de disponibilité et le stockage par agent.
Les clusters approvisionnés contiennent des instances d'agent, du stockage approvisionné et des nœuds Apache ZooKeeper abstraits. Les clusters sans serveur constituent une ressource, qui fait abstraction de toutes les ressources sous-jacentes.
Pour les clusters approvisionnés, vous pouvez choisir EC2 T3.small ou des instances dans les familles d'instances EC2 M7g et M5. Pour les clusters sans serveur, les agents sont complètement abstraits.
Non, pas à l'heure actuelle.
Non, chaque agent que vous approvisionnez comprend le stockage de volume de démarrage géré par le service Amazon MSK.
Certaines ressources, telles que les interfaces réseau Elastic (ENI), s’afficheront dans votre compte Amazon EC2. Les autres ressources Amazon MSK ne s'afficheront pas dans votre compte EC2 car elles sont gérées par le service Amazon MSK.
Pour les clusters approvisionnés, vous devez approvisionner les instances d'agent et le stockage d'agent avec chaque cluster que vous créez. Vous avez la possibilité d'allouer du débit de stockage à des volumes de stockage. Ces derniers peuvent servir à la mise à l'échelle I/O continue sans devoir allouer d'agents supplémentaires. Vous ne devez pas approvisionner des nœuds Apache ZooKeeper, car ces ressources sont incluses sans frais supplémentaires avec chaque cluster créé. Pour les clusters sans serveur, vous créez uniquement un cluster en tant que ressource.
Sauf indication contraire, Amazon MSK utilise les mêmes valeurs par défaut spécifiées par la version open source d'Apache Kafka. Les paramètres par défaut pour les deux types de clusters sont documentés ici.
Q : Puis-je modifier les configurations d'agent par défaut ou charger une configuration de cluster sur Amazon MSK ?
Oui, Amazon MSK vous permet de créer des configurations personnalisées et de les appliquer à des clusters existants ou nouveaux. Pour plus d’informations sur les configurations personnalisées, consultez la documentation de configuration.
Q : Quelles propriétés de configuration puis-je personnaliser ?
Les propriétés de configuration que vous pouvez personnaliser sont documentées ici.
Q : Quelle est la configuration par défaut d'une nouvelle rubrique ?
Sauf indication contraire, Amazon MSK utilise la configuration par défaut d’Apache Kafka.
Rubriques
Une fois votre cluster Apache Kafka créé, vous pouvez créer des rubriques à l'aide des API Apache Kafka. Toutes les actions et les configurations au niveau des rubriques et des partitions sont effectuées à l'aide des API Apache Kafka. La commande suivante est un exemple de création de rubrique à l'aide des API Apache Kafka et des détails de configuration disponibles pour votre cluster :
bin/kafka-topics.sh --create —bootstrap-server <BootstrapBrokerString> --replication-factor 3 --partitions 1 --topic TopicName
Mise en réseau
Q : Amazon MSK s'exécute-t-il dans un Amazon VPC ?
Oui, Amazon MSK s'exécute toujours dans un Amazon VPC géré par le service Amazon MSK. Les ressources Amazon MSK sont disponibles pour votre propre Amazon VPC, sous-réseau et groupe de sécurité que vous avez sélectionnés lors de la configuration du cluster. Les adresses IP de votre VPC sont attachées à vos ressources Amazon MSK via des interfaces réseau Elastic (ENI) ; tout le trafic réseau reste au sein du réseau AWS et n'est pas accessible par Internet par défaut.
Q : Comment les agents de mon cluster Amazon MSK sont-ils rendus accessibles aux clients de mon VPC ?
Les agents de votre cluster sont rendus accessibles aux clients de votre VPC via des ENI qui apparaissent dans votre compte. Les groupes de sécurité sur les ENI dictent la source et le type de trafic d'entrée et de sortie autorisé sur vos agents.
Q : Est-il possible de me connecter à mon cluster par le biais de l'Internet public ?
Oui, Amazon EMSK permet de se connecter en toute sécurité aux agents des clusters Amazon MSK qui exécutent Apache Kafka 2.6.0 ou des versions supérieures sur Internet. En permettant l'accès public, les clients autorisés externes à un Amazon Virtual Private Cloud (VPC) privé peuvent diffuser des données chiffrées vers et depuis des clusters Amazon MSK spécifiques. Vous pouvez activer l'accès public pour les clusters MSK après la création d'un cluster, et ce sans frais supplémentaires. Cependant, les coûts de transfert de données AWS standard pour l'entrée et la sortie des clusters s'appliquent. Pour en savoir plus sur l'activation de l'accès public, consultez la documentation sur l'accès public.
Q : La connexion entre mes clients et un cluster Amazon MSK est-elle privée ?
Par défaut, le seul moyen de produire et d'utiliser des données à partir d'un cluster Amazon MSK est via une connexion privée entre vos clients de votre VPC et le cluster Amazon MSK. Cependant, si vous activez l'accès public pour votre cluster Amazon MSK et que vous vous connectez à votre cluster MSK à l'aide de la chaîne d'agents publics d'amorçage, la connexion n'est plus privée, bien qu'elle ait été authentifiée, autorisée et chiffrée. Nous vous recommandons de configurer les groupes de sécurité du cluster afin d'avoir des règles TCP sortants qui autorisent l'accès public depuis votre adresse IP de confiance, et de rendre ces règles aussi restrictives que possible si vous activez l'accès public.
Connexion au VPC
Question : Comment me connecter à mon cluster Amazon MSK via Internet ?
Le moyen le plus simple consiste à activer la connectivité publique via Internet aux agents des clusters MSK qui exécutent Apache Kafka 2.6.0 ou des versions ultérieures. Par mesure de sécurité, vous ne pouvez pas activer l'accès public lors de la création d'un cluster MSK. Toutefois, vous pouvez mettre à jour un cluster existant afin de le rendre accessible publiquement. Vous pouvez aussi créer un cluster, puis le mettre à jour afin de le rendre accessible publiquement. Pour en savoir plus sur l'activation de l'accès public, consultez la documentation sur l'accès public.
Question : Comment me connecter à mon cluster Amazon MSK depuis l'intérieur du réseau AWS mais en dehors du VPC Amazon du cluster ?
Vous pouvez vous connecter à votre cluster MSK à partir de n'importe quel compte VPC ou AWS différent de celui de votre cluster MSK en activant la connectivité privée multi-VPC pour les clusters MSK exécutant les versions 2.7.1 ou ultérieures d'Apache Kafka. Vous ne pouvez activer la connectivité privée qu'après la création du cluster pour l'un des schémas d'authentification pris en charge (authentification IAM, SASL SCRAM et authentification Mtls). Vous devez configurer vos clients pour qu'ils se connectent en privé au cluster à l'aide des connexions VPC gérées par Amazon MSK qui utilisent la technologie AWS PrivateLink pour activer la connectivité privée. Pour en savoir plus sur la configuration de la connectivité privée, consultez la section Accès depuis la documentation AWS.
Chiffrement
Q : Puis-je chiffrer des données dans mon cluster Amazon MSK ?
Oui, Amazon MSK utilise le chiffrement côté serveur Amazon Elastic Block Store (Amazon EBS) et les clés AWS Key Management Service (AWS KMS) pour chiffrer les volumes de stockage.
Q : Les données sont-elles chiffrées pendant le transit entre des agents dans un cluster Amazon MSK ?
Oui, le chiffrement pendant le transit des nouveaux clusters par défaut est activé via le protocole TLS pour la communication entre agents. Pour les clusters approvisionnés, vous pouvez désactiver l'utilisation du chiffrement pendant le transit lors de la création d'un cluster.
Q : Les données sont-elles chiffrées en transit entre mes clients Apache Kafka et le service Amazon MSK ?
Oui, par défaut, le chiffrement en transit est défini sur TLS uniquement pour les clusters créés depuis l'interface de ligne de commande (CLI) ou la console de gestion AWS. Une configuration supplémentaire est requise pour que les clients puissent communiquer avec des clusters utilisant le chiffrement TLS. Pour les clusters approvisionnés, vous pouvez modifier le paramètre de chiffrement par défaut en sélectionnant les paramètres TLS/plaintext ou plaintext. En savoir plus sur le chiffrement MSK.
Q : Les données sont-elles chiffrées pendant leur transit entre les agents et les nœuds Apache ZooKeeper d’un cluster Amazon MSK ?
Oui, les clusters Amazon MSK fonctionnant sur Apache Kafka version 2.5.1 ou version supérieure prennent en charge le chiffrement TLS en transit entre les agents Apache Kafka et les nœuds ZooKeeper.
Gestion de l’accès
Q : Comment contrôler l'authentification du cluster et l'autorisation de l'API Apache Kafka ?
Pour les clusters sans serveur, vous pouvez utiliser le contrôle d'accès IAM pour l'authentification et l'autorisation. Pour les clusters provisionnés, vous disposez de trois options : 1) le contrôle d'accès AWS Identity and Access Management (IAM) pour AuthN/Z (recommandé), 2) l'authentification par certificat TLS (CA) pour AuthN et listes de contrôle d'accès pour AuthZ, et 3) SASL/SCRAM pour AuthN et listes de contrôle d'accès pour AuthZ. Amazon MSK recommande d'utiliser le contrôle d'accès IAM. Il s'agit de l'option la plus facile à utiliser et la plus sûre, car elle propose par défaut l'accès au moindre privilège.
Q : Comment fonctionne l'autorisation dans Amazon MSK ?
Si vous utilisez le contrôle d'accès IAM, Amazon MSK utilise les politiques que vous écrivez et son propre autorisateur pour autoriser les actions. Si vous utilisez l'authentification par certificat TLS ou SASL/SCRAM, Apache Kafka utilise des listes de contrôle d'accès (ACL) pour l'autorisation. Pour activer les listes ACL, vous devez activer l'authentification client à l'aide de certificats TLS ou SASL/SCRAM.
Q : Comment authentifier et autoriser un client simultanément ?
Si vous utilisez le contrôle d'accès IAM, Amazon MSK authentifiera et autorisera pour vous sans aucune configuration supplémentaire. Si vous utilisez l'authentification TLS, vous pouvez utiliser le Dname des certificats TLS des clients comme mandataire de la liste ACL pour autoriser les demandes des clients. Si vous utilisez l'authentification SASL/SCRAM, vous pouvez utiliser le nom d'utilisateur comme mandataire de la liste ACL pour autoriser les demandes des clients.
Q : Comment contrôler les actions de l'API de service ?
Vous pouvez contrôler les actions de l'API de service à l’aide d’AWS Identity and Access Management (IAM).
Q : Puis-je activer le contrôle d'accès IAM pour un cluster existant ?
Oui, vous pouvez activer le contrôle d'accès IAM pour un cluster existant, depuis la console AWS ou à l'aide de l'API UpdateSecurity.
Q : Puis-je utiliser le contrôle d'accès IAM en dehors d'Amazon MSK ?
Non, le contrôle d’accès IAM est uniquement disponible pour les clusters Amazon MSK.
Q : Comment fournir des autorisations d’accès intercompte à un client Apache Kafka dans un compte AWS différent de celui d’Amazon MSK pour qu’il puisse se connecter en privé à mon cluster Amazon MSK ?
Vous pouvez associer une politique de cluster à votre cluster Amazon MSK afin de fournir à vos clients Apache Kafka multi-comptes les autorisations nécessaires pour configurer une connectivité privée à votre cluster Amazon MSK. Lorsque vous utilisez l’authentification du client IAM, vous pouvez également utiliser la politique de cluster pour définir de manière granulaire les autorisations du plan de données Apache Kafka pour le client qui se connecte. Pour en savoir plus sur les stratégies de cluster, consultez la documentation sur les politiques de cluster.
Surveillance, métriques, journaux et étiquettes
Vous pouvez contrôler les performances de vos clusters à l'aide de la console Amazon MSK, de la console Amazon CloudWatch, ou à l'aide de JMX et des métriques d'hôtes qui utilisent Open Monitoring with Prometheus, une solution de surveillance open source.
Q : Quel est le coût des différents niveaux de surveillance CloudWatch ?
Le coût de la surveillance de votre cluster avec Amazon CloudWatch dépend du niveau de surveillance et de la taille de votre cluster Apache Kafka. Amazon CloudWatch est facturé par métrique par mois et inclut une offre gratuite. Consultez la section Tarification Amazon CloudWatch pour plus d'informations. Pour plus de détails sur le nombre de métriques exposées pour chaque niveau de surveillance, veuillez consulter la documentation qui traite de la surveillance d'Amazon MSK.
Q : Quels outils de surveillance sont compatibles avec Open Monitoring with Prometheus ?
Les outils qui sont conçus pour une lecture depuis des exportateurs Prometheus sont compatibles avec Open Monitoring, tels que : Datadog, Lenses, New Relic, Sumo Logic ou un serveur Prometheus. Pour plus de détails sur Open Monitoring, veuillez consulter la documentation Amazon MSK Open Monitoring.
Q : Comment surveiller l'état et les performances de mes clients ?
Vous pouvez utiliser n'importe quelle surveillance côté client prise en charge par la version d'Apache Kafka que vous utilisez.
Q : Puis-je étiqueter des ressources Amazon MSK ?
Oui, vous pouvez étiqueter des clusters Amazon MSK depuis la console AWS ou l'interface AWS Command Line Interface (AWS CLI).
Q : Comment puis-je contrôler le décalage subi pour les consommateurs ?
Les métriques du décalage des consommateurs au niveau de la rubrique sont incluses dans le jeu de métriques par défaut qu'Amazon MSK publie sur Amazon CloudWatch pour tous les clusters. Aucune configuration supplémentaire n'est nécessaire pour obtenir ces métriques. Pour les clusters approvisionnés, vous pouvez obtenir des métriques de décalage des consommateurs de niveau de partition (dimension de la partition). Pour ce faire, vous pouvez activer la surveillance améliorée (PER_PARTITION_PER_TOPIC) sur votre cluster. Vous pouvez aussi activer Open Monitoring sur votre cluster, et utiliser un serveur Prometheus pour capturer les métriques de niveau de partition des agents de votre cluster. Les métriques du décalage des consommateurs sont disponibles au port 11001, tout comme les autres métriques Apache Kafka.
Q : Combien coûte la publication de la métrique du décalage du consommateur sur Amazon CloudWatch ?
Les métriques de niveau de rubrique sont incluses dans le jeu par défaut des métriques gratuites Amazon MSK. Les métriques de niveau de partition sont facturées selon la tarification Amazon CloudWatch.
Q : Comment accéder aux journaux d'agent Apache Kafka ?
Vous pouvez activer la diffusion de journaux d'agent pour les clusters approvisionnés. Vous pouvez livrer des journaux d'agent à Amazon CloudWatch Logs, Amazon Simple Storage Service (S3) et Amazon Kinesis Data Firehose. Kinesis Data Firehose prend en charge le service Amazon OpenSearch entre autres destinations. Pour savoir comment activer cette fonction, consultez la documentation sur les journaux Amazon MSK. Pour en savoir plus sur les tarifs, consultez les pages relatives à la tarification de CloudWatch Logs et Kinesis Data Firehose.
Q : Quel est le niveau de journalisation pour les journaux d'agent ?
Amazon MSK fournit des journaux de niveau INFO à tous les agents au sein d'un cluster approvisionné.
Q : Comment accéder aux journaux Apache ZooKeeper ?
Vous pouvez demander les journaux Apache ZooKeeper à l'aide d'un ticket de support.
Q : Puis-je journaliser l'utilisation des API de ressources d'Apache Kafka, comme la création de rubriques ?
Oui, si vous utilisez le contrôle d'accès IAM, l'utilisation des API de ressources Apache Kafka est enregistrée dans AWS CloudTrail.
Gestion des métadonnées
Q : Qu'est-ce qu'Apache ZooKeeper ?
De https://zookeeper.apache.org : « Apache ZooKeeper est un service centralisé permettant de gérer les informations de configuration, de nommer, de fournir une synchronisation distribuée et de fournir des services de groupe. Tous ces types de services sont utilisés sous une forme ou une autre par des applications distribuées », y compris Apache Kafka.
Q : Amazon MSK utilise-t-il Apache ZooKeeper ?
Oui, Amazon MSK utilise Apache ZooKeeper pour la gestion des métadonnées. En outre, à partir de la version 3.7 d’Apache Kafka, vous pouvez créer des clusters en mode ZooKeeper ou en mode KRaft. Un cluster créé avec le mode KRaft utilise des contrôleurs KRaft pour la gestion des métadonnées au lieu des nœuds ZooKeeper.
Q : Qu’est-ce que KRaft ?
KRaft (Apache Kafka Raft) est le protocole de consensus qui déplace la gestion des métadonnées dans les clusters Apache Kafka des nœuds externes Apache ZooKeeper vers un groupe de contrôleurs au sein d’Apache Kafka. Cette modification permet aux métadonnées d’être stockées et répliquées en tant que sujets dans les courtiers Apache Kafka, ce qui accélère la propagation des métadonnées. Consultez votre guide du développeur.
Q : des modifications d’API sont-elles nécessaires pour utiliser le mode KRaft sur Amazon MSK par rapport au mode ZooKeeper ?
Aucune modification de l’API n’est requise pour utiliser le mode KRAFT sur Amazon MSK. Cependant, si vos clients utilisent encore la chaîne de connexion --zookeeper, vous devez mettre à jour vos clients pour qu’ils utilisent la chaîne de connexion --bootstrap-server afin de se connecter à votre cluster et d’effectuer des actions d’administration. L’indicateur --zookeeper est obsolète dans la version 2.5 d’Apache Kafka et est supprimé à partir d’Apache Kafka 3.0. Nous vous recommandons donc d’utiliser les versions récentes du client Apache Kafka et la chaîne de connexion --bootstrap-server.
Q : j’ai des outils qui se connectent à ZooKeeper, comment fonctionneront-ils pour les clusters KRaft sans ZooKeeper ?
Vous devez vérifier que tous les outils que vous utilisez sont capables d’utiliser les API d’administration d’Apache Kafka sans connexion à ZooKeeper. Par exemple, consultez notre documentation mise à jour sur l’utilisation de Cruise Control pour les clusters en mode KRaft. Cruise Control a également publié les étapes à suivre pour exécuter Apache Kafka sans connexion ZooKeeper.
Q : Puis-je héberger plus de partitions par courtier sur des clusters basés sur KRaft que sur des clusters basés sur ZooKeeper ?
Le nombre de partitions par courtier est le même sur les clusters basés sur KRaft et ZooKeeper. Toutefois, KRAFT vous permet d’héberger davantage de partitions par cluster en provisionnant davantage de courtiers dans un cluster.
Intégrations
- Amazon S3 utilisant Kinesis Data Firehose pour fournir des données à Amazon S3 à partir de MSK d'une manière simple et sans code.
- Amazon Virtual Private Cloud (Amazon VPC) pour l'isolement et la sécurité du réseau
- Amazon CloudWatch pour les métriques
- AWS Key Management Service (AWS KMS) pour le chiffrement des volumes de stockage
- Amazon IAM pour l'authentification et l'autorisation d'Apache Kafka et des API de service
- AWS Lambda pour l'event sourcing de MSK
- AWS IoT pour l'event sourcing d'IoT
- AWS Glue Schema Registry pour contrôler l'évolution des schémas utilisés par les applications Apache Kafka
- AWS CloudTrail pour les journaux d'API AWS
- AWS Certificate Manager pour les autorités de certification privées pour l'authentification TLS des clients
- AWS CloudFormation pour la description et le approvisionnement des clusters Amazon MSK à l'aide de code
- Le service géré Amazon pour Apache Flink pour les applications Apache Flink entièrement gérées qui traitent des données de streaming
- Le service géré Amazon pour Apache Flink Studio pour le streaming SQL interactif sur Apache Kafka
- AWS Secrets Manager pour les informations d'identification des clients utilisées pour l'authentification SASL/SCRAM
- Amazon S3 utilisant Kinesis Data Firehose pour fournir des données à Amazon S3 à partir de MSK d'une manière simple et sans code.
- Amazon VPC pour l'isolement et la sécurité du réseau
- Amazon CloudWatch pour les métriques
- Amazon IAM pour l'authentification et l'autorisation d'Apache Kafka et des API de service
- AWS Glue Schema Registry pour contrôler l'évolution des schémas utilisés par les applications Apache Kafka
- AWS CloudTrail pour les journaux d'API AWS
- AWS PrivateLink pour la connectivité privée
Mise à l'échelle
Vous pouvez augmenter le stockage de vos clusters approvisionnés via la console de gestion AWS ou l'interface AWS CLI. Vous pouvez également utiliser le stockage à plusieurs niveaux pour stocker virtuellement un nombre illimité de données sur votre cluster sans avoir à ajouter des agents pour le stockage. Dans les clusters sans serveur, le stockage est mis à l'échelle rapidement en fonction de votre utilisation.
Apache Kafka stocke les données dans des fichiers appelés segments de journal. Lorsque chaque segment est complet, en fonction de la taille configurée au niveau du cluster ou du sujet, il est copié sur le niveau de stockage à faible coût. Les données sont conservées dans un stockage optimisé pour les performances pendant une durée ou une taille de rétention déterminée, puis elles sont supprimées. Il existe un paramètre distinct de limite de temps et de taille pour le stockage à faible coût, qui sera plus long que le niveau de stockage principal. Si les clients demandent des données à partir de segments stockés dans le niveau à faible coût, l'agent lira les données et les servira de la même manière que si elles étaient fournies à partir du stockage principal.
Q : Comment puis-je automatiquement étendre le stockage dans mon cluster ?
Vous pouvez créer une politique de scalabilité automatique pour le stockage en utilisant la console de gestion AWS ou en créant une stratégie AWS Application Auto Scaling à l'aide de l'interface AWS CLI ou des API.
Q : Puis-je mettre à l'échelle le nombre d'agents dans un cluster existant ?
Oui. Vous pouvez augmenter ou réduire le nombre d’agents pour les clusters approvisionnés Amazon MSK existants.
Q : Puis-je mettre à l’échelle la taille d’un agent dans un cluster existant ?
Oui. Vous pouvez procéder à une mise à l'échelle vers un type d'agent plus petit ou plus grand sur vos clusters approvisionnés Amazon MSK.
Q : Comment équilibrer les partitions entre les agents ?
Vous pouvez utiliser Cruise Control pour rééquilibrer automatiquement les partitions afin de gérer l'activité I/O. Pour plus d’informations, veuillez consulter la documentation Cruise Control. Vous pouvez également utiliser l’API Apache Kafka Admin kafka-reassign-partitions.sh pour réaffecter les partitions entre les agents. Dans les clusters sans serveur, Amazon MSK équilibre automatiquement les partitions.
Tarification et disponibilité
Q : Comment fonctionne la tarification d'Amazon MSK ?
La tarification dépend des ressources que vous créez. De plus amples informations sont disponibles sur notre page de tarification.
Q : Dois-je payer pour le transfert de données suite à la réplication de données ?
Non, tous les transferts de données au sein d'un cluster sont inclus avec le service, sans frais supplémentaires.
Q : Quelles sont les régions AWS qui offrent Amazon MSK ?
La liste des régions AWS qui proposent Amazon MSK est disponible ici.
Q : Comment fonctionne la tarification du transfert de données ?
Avec les clusters approvisionnés, vous devrez payer les frais de transfert de données AWS standard pour les données transférées vers et depuis un cluster Amazon MSK. Vous ne serez pas facturé pour le transfert de données dans le cluster dans une région, y compris le transfert de données entre agents et le transfert de données entre agents et nœuds Apache ZooKeeper.
Avec les clusters sans serveur, les frais de transfert de données standard d'AWS vous seront facturés à hauteur des données transférées vers ou depuis une région et pour les données transférées vers l'Internet public.
Conformité
- Éligible HIPAA
- PCI
- ISO
- SOC 1,2,3
Pour obtenir une liste complète des services AWS et des programmes de conformité, consultez la rubrique Services AWS concernés par le programme de conformité.
Contrat de niveau de service
Réplication
Q : Qu’est-ce que le réplicateur Amazon MSK ?
Le réplicateur Amazon MSK est une fonctionnalité d’Amazon MSK qui permet aux clients de répliquer des données de manière fiable sur des clusters Amazon MSK situés dans différentes Régions AWS (réplication entre régions) ou au sein de la même Région AWS (réplication dans la même région), sans avoir à écrire de code ni de gérer d’infrastructure. Vous pouvez utiliser la réplication entre régions pour créer des applications de streaming multi-régions hautement disponibles et tolérantes aux pannes pour une résilience accrue. Vous pouvez également utiliser la réplication CRR pour fournir un accès à latence plus faible aux consommateurs dans diverses régions géographiques. Vous pouvez utiliser la réplication sur une même région (SRR) pour distribuer des données d’un cluster à plusieurs clusters afin de partager des données avec vos partenaires et vos équipes. Vous pouvez également utiliser la réplication SRR ou CRR pour agréger les données de plusieurs clusters en un seul à des fins d’analyse.
Q : Comment utiliser le réplicateur MSK ?
Pour configurer la réplication entre une paire de clusters MSK source et cible, vous devez créer un réplicateur dans la Région AWS de destination. Pour créer un réplicateur, vous devez spécifier des informations telles que l'Amazon Resource Name (ARN) des clusters MSK source et cible et un rôle AWS Identity and Access Management (IAM) que MSK Replicator peut utiliser pour accéder aux clusters. Vous devez créer le cluster MSK cible s’il n’existe pas. Vous avez également la possibilité de configurer des paramètres supplémentaires, notamment la configuration du nom de la rubrique et la position de départ du réplicateur.
Q : Quels types de clusters Kafka sont pris en charge par le réplicateur MSK ?
MSK Replicator prend en charge la réplication sur des clusters MSK uniquement. Les clusters MSK de type alloué et sans serveur sont pris en charge. Vous pouvez également utiliser MSK Replicator pour passer du mode alloué au mode sans serveur ou vice-versa. Les autres clusters Kafka ne sont pas pris en charge.
Q : Puis-je spécifier les sujets que je souhaite répliquer ?
Oui, vous pouvez spécifier les sujets que vous souhaitez répliquer à l'aide des listes d'autorisation et de refus lors de la création du réplicateur.
Q : Est-ce que MSK Replicator reproduit les configurations de rubriques et les décalages de groupes de consommateurs ?
Oui. MSK Replicator réplique automatiquement les métadonnées Kafka requises, telles que la configuration de rubriques, les listes de contrôle d'accès (ACL) et les décalages de groupes de consommateurs, afin que les applications consommatrices puissent reprendre le traitement de manière fluide après le basculement. Vous pouvez désactiver un ou plusieurs de ces paramètres si vous souhaitez uniquement répliquer les données. Vous pouvez également spécifier les groupes de consommateurs que vous souhaitez répliquer à l'aide de listes d'autorisation ou de refus lors de la création du réplicateur.
Q : Dois-je mettre à l'échelle la réplication lorsque mon débit d'entrée change ?
Non, MSK Replicator déploie, alloue et met à l'échelle automatiquement l'infrastructure de réplication sous-jacente pour prendre en charge les modifications de votre débit d'entrée.
Q : Puis-je répliquer les données entre les clusters MSK de différents comptes AWS ?
Non, MSK Replicator prend uniquement en charge la réplication entre les clusters MSK d'un même compte AWS.
Q : Comment puis-je surveiller la réplication ?
Vous pouvez utiliser Amazon CloudWatch dans la région de destination pour consulter les métriques de « ReplicationLatency, MessageLag et ReplicatorThroughput » au niveau de la rubrique et de l’agrégation pour chaque réplicateur, sans frais supplémentaires. Les métriques seraient visibles sous ReplicatorName dans l’espace de noms « AWS/Kafka ». Vous pouvez également consulter les métriques « ReplicatorFailure, AuthError et ThrottleTime » pour vérifier si votre réplicateur rencontre des problèmes.
Q : Puis-je utiliser le réplicateur MSK pour répliquer les données d’un cluster vers plusieurs clusters ou pour répliquer les données de plusieurs clusters vers un seul cluster ?
Oui. Il vous suffit de créer un réplicateur différent pour chaque paire de clusters source et cible.
Q : Comment se connecte MSK Replicator aux clusters MSK source et cible ?
MSK Replicator utilise le contrôle d'accès IAM pour se connecter à vos clusters source et cible. Vous devez activer vos clusters MSK source et cible pour le contrôle d'accès IAM afin de créer un réplicateur. Vous pouvez continuer à utiliser d'autres méthodes d'authentification en même temps pour vos clients, notamment SASL/SCRAM et mTLS, car Amazon MSK prend en charge plusieurs méthodes d'authentification simultanément.
Q : À quelle latence de réplication dois-je m'attendre avec MSK Replicator ?
Le réplicateur MSK réplique les données de manière asynchrone. La latence de réplication varie en fonction de nombreux facteurs, notamment la distance réseau entre les Régions AWS de vos clusters MSK, la capacité de débit de vos clusters source et cible et le nombre de partitions sur vos clusters source et cible. Si vous rencontrez une latence élevée, suivez notre Guide de dépannage.
Q : Puis-je conserver les mêmes noms de rubrique avec le réplicateur MSK ?
Oui. Le réplicateur MSK vous permet de sélectionner une configuration de nom de rubrique parmi « Préfixe » et « Identique » lors de la création d’un nouveau réplicateur. Par défaut, le réplicateur MSK crée de nouvelles rubriques dans le cluster cible avec un préfixe généré automatiquement et ajouté au nom de la rubrique. Par exemple, le réplicateur MSK répliquera les données « topic » du cluster source vers une nouvelle rubrique du cluster cible appelée « <sourceKafkaClusterAlias>.topic ». Vous pouvez trouver le préfixe qui sera ajouté aux noms de rubrique dans le cluster cible dans le champ « sourceKafkaClusterAlias » à l’aide de l’API DescribeReplicator ou de la page de détails du réplicateur sur la console MSK. Si vous voulez répliquer des rubriques vers le cluster cible tout en préservant les noms d’origine, définissez simplement la configuration de nom de rubrique sur « Identique ».
Q. Pourquoi utiliser une configuration de nom de rubrique « identique » ?
Vous devez utiliser une configuration de nom de rubrique « Identique » pour simplifier la création d’architectures de données de streaming résilientes et hautement disponibles dans les régions AWS. En répliquant les rubriques Kafka vers d’autres clusters Amazon MSK tout en préservant les noms des rubriques d’origine, cette configuration réduit le besoin de reconfigurer les applications clientes lors de la configuration de la réplication ou des événements de basculement. Cela facilite l’établissement de configurations de clusters actifs-passifs couvrant plusieurs régions pour une résilience et une disponibilité accrues. Elle rationalise également les cas d’utilisation tels que l’agrégation des données entre clusters, les migrations entre clusters MSK et la distribution des données vers plusieurs zones géographiques. Vous ne devez pas utiliser cette configuration si vos clients ne peuvent pas traiter les données lorsque des métadonnées supplémentaires sont ajoutées aux en-têtes de vos enregistrements Kafka.
Q. Existe-t-il un risque de boucles de réplication infinies avec une configuration de nom de rubrique « Identique » ?
Non. Le réplicateur MSK empêche automatiquement la réplication des enregistrements vers la rubrique Kafka dont ils sont issus, évitant ainsi des boucles de réplication infinies. Pour ce faire, dans le cadre de la réplication, le réplicateur MSK ajoute des métadonnées aux en-têtes de vos enregistrements.
Q. Puis-je mettre à jour mon réplicateur existant pour utiliser une configuration de nom de rubrique identique ?
Non. La configuration de nom de rubrique ne peut pas être modifiée une fois qu’un réplicateur a été créé.
Q : Comment puis-je utiliser la réplication pour augmenter la résilience de mon application de streaming dans toutes les régions ?
Vous pouvez utiliser MSK Replicator pour configurer des topologies de clusters actif-actif ou actif-passif afin d'accroître la résilience de votre application Kafka dans toutes les régions. Dans une configuration actif-actif, les deux clusters MSK effectuent activement des opérations de lecture et d'écriture. En revanche, dans une configuration actif-passif, un seul cluster MSK diffuse activement des données, tandis que l’autre cluster est en veille. Nous vous recommandons d’utiliser une configuration de nom de rubrique « Identique » pour une configuration active-passive et une configuration « Préfixe » pour une configuration active-active. Cependant, l’utilisation de la configuration « Préfixe » vous obligera à reconfigurer vos consommateurs pour qu’ils lisent les rubriques répliquées. Si vous voulez éviter de reconfigurer vos clients, vous pouvez également utiliser une configuration « Identique » pour la configuration active-active. Cependant, vous devrez payer des frais supplémentaires de traitement et de transfert de données pour chaque réplicateur, car chaque réplicateur devra traiter deux fois la quantité habituelle de données, une fois pour la réplication et une autre pour éviter les boucles infinies.
Q. Quelles versions de Kafka prennent en charge la configuration de nom de rubrique identique ?
Elle est prise en charge pour tous les clusters MSK exécutés sur les versions 2.8.1 et supérieures de Kafka.
Q : Puis-je répliquer les données existantes sur le cluster source ?
Oui. Par défaut, lorsque vous créez un nouveau réplicateur, il commence à répliquer les données à partir de l’extrémité du flux (dernière position) sur le cluster source. Sinon, si vous souhaitez répliquer des données existantes, vous pouvez configurer un nouveau réplicateur pour commencer à répliquer les données à partir du décalage le plus ancien dans les partitions thématiques du cluster source.
Q : La réplication peut-elle entraîner une limitation des consommateurs sur le cluster source ?
MSK Replicator agissant en tant que consommateur pour votre cluster source, il est possible que la réplication entraîne une limitation des autres consommateurs sur votre cluster source. Cela dépend de la capacité de lecture dont vous disposez sur votre cluster source et du débit des données que vous répliquez. Nous vous recommandons de fournir une capacité identique pour vos clusters source et cible et de prendre en compte le débit de réplication lors du calcul de la capacité dont vous avez besoin. Vous pouvez également définir des quotas Kafka pour le réplicateur sur vos clusters source et cible afin de contrôler la capacité que le réplicateur peut utiliser.
Q : Puis-je compresser les données avant de les écrire dans le cluster cible ?
Oui, vous pouvez spécifier votre choix de codec de compression lors de la création du réplicateur parmi None, GZIP, Snappy, LZ4 et ZSTD.
Démarrer avec Amazon MSK
Consultez la page de tarification d'Amazon MSK.
Apprenez à configurer votre cluster Apache Kafka sur Amazon MSK dans ce guide étape par étape.
Exécutez votre cluster Apache Kafka sur Amazon MSK. Connectez-vous à la console Amazon MSK.