Supprimer un courtier d'un cluster Amazon MSK - Amazon Managed Streaming for Apache Kafka

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Supprimer un courtier d'un cluster Amazon MSK

Utilisez cette opération Amazon MSK lorsque vous souhaitez supprimer des courtiers des clusters provisionnés par Amazon Managed Streaming for Apache Kafka (MSK). Vous pouvez réduire la capacité de stockage et de calcul de votre cluster en supprimant des ensembles de courtiers, sans impact sur la disponibilité, sans risque de durabilité des données ou sans interruption de vos applications de streaming de données.

Vous pouvez ajouter d'autres courtiers à votre cluster pour faire face à l'augmentation du trafic et supprimer des courtiers lorsque le trafic diminue. Grâce à la fonctionnalité d'ajout et de suppression de courtiers, vous pouvez utiliser au mieux la capacité de votre cluster et optimiser les coûts de votre infrastructure MSK. La suppression des courtiers vous permet de contrôler au niveau du courtier la capacité du cluster existant afin de répondre à vos besoins en matière de charge de travail et d'éviter la migration vers un autre cluster.

Utilisez la AWS console, l'interface de ligne de commande (CLI), le SDK ou AWS CloudFormation pour réduire le nombre de courtiers de votre cluster provisionné. MSK sélectionne les courtiers qui ne possèdent aucune partition (sauf pour Canary Topics) et empêche les applications de produire des données destinées à ces courtiers, tout en les retirant du cluster en toute sécurité.

Vous devez supprimer un courtier par zone de disponibilité si vous souhaitez réduire le stockage et le calcul d'un cluster. Par exemple, vous pouvez supprimer deux courtiers d'un cluster de deux zones de disponibilité ou trois courtiers d'un cluster de trois zones de disponibilité en une seule opération de suppression de courtiers.

Pour plus d'informations sur le rééquilibrage des partitions après avoir supprimé des courtiers d'un cluster, consultezRéaffecter les partitions.

Vous pouvez supprimer des courtiers de tous les clusters MSK provisionnés basés sur M5 et M7g, quelle que soit la taille de l'instance.

La suppression du broker est prise en charge sur les versions 2.8.1 et supérieures de Kafka, y compris sur les clusters en mode KraFT.

Préparez-vous à supprimer les courtiers en supprimant toutes les partitions

Avant de commencer le processus de suppression des courtiers, déplacez d'abord toutes les partitions, à l'exception __amazon_msk_canary_state de celles relatives aux sujets __amazon_msk_canary et des courtiers que vous souhaitez supprimer. Il s'agit de rubriques internes créées par Amazon MSK pour les indicateurs de santé et de diagnostic du cluster.

Vous pouvez utiliser les API d'administration Kafka ou le régulateur de vitesse pour déplacer des partitions vers d'autres courtiers que vous souhaitez conserver dans le cluster. Consultez la section Réattribution de partitions.

Exemple de processus pour supprimer des partitions

Cette section est un exemple de la procédure à suivre pour supprimer des partitions du broker que vous souhaitez supprimer. Supposons que vous ayez un cluster composé de 6 courtiers, 2 courtiers dans chaque AZ, et qu'il comporte quatre sujets :

  • __amazon_msk_canary

  • __consumer_offsets

  • __amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2

  • msk-brk-rmv

  1. Créez un ordinateur client comme décrit dans Création d'un ordinateur client.

  2. Après avoir configuré la machine cliente, exécutez la commande suivante pour répertorier toutes les rubriques disponibles dans votre cluster.

    ./bin/kafka-topics.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --list

    Dans cet exemple, nous voyons quatre noms de rubrique__amazon_msk_canary,__consumer_offsets,__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2, etmsk-brk-rmv.

  3. Créez un fichier json appelé topics.json sur la machine cliente et ajoutez tous les noms de rubriques utilisateur comme dans l'exemple de code suivant. Il n'est pas nécessaire d'inclure le nom du __amazon_msk_canary sujet, car il s'agit d'un sujet géré par un service qui sera automatiquement déplacé si nécessaire.

    { "topics": [ {"topic": "msk-brk-rmv"}, {"topic": "__consumer_offsets"}, {"topic": "__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2"} ], "version":1 }
  4. Exécutez la commande suivante pour générer une proposition visant à déplacer des partitions vers seulement 3 courtiers sur les 6 courtiers du cluster.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --topics-to-move-json-file topics.json --broker-list 1,2,3 --generate
  5. Créez un fichier appelé reassignment-file.json et copiez la commande proposed partition reassignment configuration que vous avez obtenue ci-dessus.

  6. Exécutez la commande suivante pour déplacer les partitions que vous avez spécifiées dans lereassignment-file.json.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --reassignment-json-file reassignment-file.json --execute

    La sortie ressemble à ce qui suit:

    Successfully started partition reassignments for morpheus-test-topic-1-0,test-topic-1-0
  7. Exécutez la commande suivante pour vérifier que toutes les partitions ont été déplacées.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --reassignment-json-file reassignment-file.json --verify

    La sortie ressemble à ce qui suit. Surveillez l'état jusqu'à ce que toutes les partitions des sujets que vous avez demandés aient été réattribuées avec succès :

    Status of partition reassignment: Reassignment of partition msk-brk-rmv-0 is completed. Reassignment of partition msk-brk-rmv-1 is completed. Reassignment of partition __consumer_offsets-0 is completed. Reassignment of partition __consumer_offsets-1 is completed.
  8. Lorsque le statut indique que la réaffectation de partition pour chaque partition est terminée, surveillez les UserPartitionExists métriques pendant 5 minutes pour vous assurer qu'elles s'affichent 0 pour les courtiers à partir desquels vous avez déplacé les partitions. Après avoir confirmé cela, vous pouvez procéder à la suppression du courtier du cluster.

Supprimer un courtier à l'aide de la console AWS de gestion

Pour supprimer des courtiers à l'aide de la console AWS de gestion
  1. Ouvrez la console Amazon MSK sur https://console.aws.amazon.com/msk/.

  2. Choisissez le cluster MSK qui contient les courtiers que vous souhaitez supprimer.

  3. Sur la page des détails du cluster, cliquez sur le bouton Actions et sélectionnez l'option Modifier le nombre de courtiers.

  4. Entrez le nombre de courtiers que vous souhaitez attribuer au cluster par zone de disponibilité. La console récapitule le nombre de courtiers qui seront supprimés dans les zones de disponibilité. Assurez-vous que c'est ce que vous voulez.

  5. Sélectionnez Enregistrer les modifications.

Pour éviter la suppression accidentelle de courtiers, la console vous demande de confirmer que vous souhaitez supprimer des courtiers.

Supprimer un broker à l'aide de la AWS CLI

Exécutez la commande suivante, en la ClusterArn remplaçant par le Amazon Resource Name (ARN) que vous avez obtenu lors de la création de votre cluster. Si vous n'avez pas l'ARN pour votre cluster, vous pouvez le trouver en listant tous les clusters. Pour plus d'informations, consultez Listing Amazon MSK clusters. Remplacez Current-Cluster-Version par la version actuelle du cluster.

Important

Les versions de cluster ne sont pas des entiers simples. Pour trouver la version actuelle du cluster, utilisez l'DescribeClusteropération ou la commande describe-cluster AWS CLI . Voici un exemple de version : KTVPDKIKX0DER.

Le paramètre Target-Number-of-Brokers représente le nombre total de nœuds d'agents que le cluster doit avoir une fois cette opération terminée avec succès. La valeur que vous spécifiez pour le nombre cible de courtiers doit être un nombre entier inférieur au nombre actuel de courtiers dans le cluster. Il doit également être un multiple du nombre de zones de disponibilité.

aws kafka update-broker-count --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-number-of-broker-nodes Target-Number-of-Brokers

La sortie de cette opération update-broker-count ressemble au JSON suivant.

{ "ClusterOperationInfo": { "ClientRequestId": "c0b7af47-8591-45b5-9c0c-909a1a2c99ea", "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "CreationTime": "2019-09-25T23:48:04.794Z", "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef", "OperationState": "UPDATE_COMPLETE", "OperationType": "DECREASE_BROKER_COUNT", "SourceClusterInfo": { "NumberOfBrokerNodes": 12 }, "TargetClusterInfo": { "NumberOfBrokerNodes": 9 } } }

Dans cette sortie, OperationType est DECREASE_BROKER_COUNT. Si OperationState a la valeur UPDATE_IN_PROGRESS, attendez un moment, puis exécutez à nouveau la commande describe-cluster-operation.

Supprimer un courtier à l'aide de l' AWS API

Pour supprimer les courtiers d'un cluster à l'aide de l'API, consultez UpdateBrokerCount dans le manuel Amazon Managed Streaming for Apache Kafka API Reference.