Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Comment accéder aux agents Amazon MSK à partir de ports personnalisés ?
Je souhaite accéder aux agents Amazon Managed Streaming pour Apache Kafka (Amazon MSK) à partir de ports personnalisés.
Brève description
Pour une configuration de port personnalisée, vous pouvez modifier les paramètres advertised.listerner à partir de vos ports par défaut (9092-plaintext/9094-TLS/9096-SASL-SCRAM/9098-IAM) vers n'importe quel port, y compris 443. Ces paramètres sont conservés dans Apache ZooKeeper et ne changent pas après le redémarrage de l’agent.
Vous pouvez implémenter une configuration de port personnalisée via une configuration à port unique ou à ports multiples. Une configuration à port unique, par exemple le port 443, nécessite des Network Load Balancers distincts pour chaque agent. Une configuration à ports multiples utilise un Network Load Balancer avec des ports différents pour chaque agent.
La résolution suivante se concentre sur une approche de configuration à port unique.
Important : Les clusters basés sur Amazon MSK Kraft ne prennent actuellement pas en charge les modifications dynamiques apportées aux écouteurs annoncés. Il s'agit d'une limitation connue de l'implémentation Kraft d'Apache Kafka et s'applique à tous les clusters basés sur Kraft, y compris ceux qui s'exécutent sur Amazon MSK. Amazon MSK prend en charge Kraft sur les versions 3.7 et supérieures. Pour les cas d'utilisation nécessitant des mises à jour dynamiques des écouteurs, utilisez des clusters basés sur ZooKeeper.
Résolution
Mettre à jour le port de l’agent
Pour mettre à jour le port de l’agent 1 de 9094 à 443, exécutez une commande similaire à l'exemple suivant depuis l’ordinateur client :
./kafka-configs.sh --bootstrap-server b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:9094 --entity-type brokers --entity-name 1 --alter --command-config client.properties --add-config advertised.listeners=[CLIENT_SECURE://b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:443,REPLICATION://b-1-internal.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:9093,REPLICATION_SECURE://b-1-internal.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:9095]
Exemple de sortie :
Completed updating config for entity: broker 1
Pour mettre à jour le port 443 de l’agent 2, exécutez une commande similaire à l'exemple suivant depuis l'ordinateur client :
./kafka-configs.sh --bootstrap-server b-2.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:9094 --entity-type brokers --entity-name 2 --alter --command-config client.properties --add-config advertised.listeners=[CLIENT_SECURE://b-2.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:443,REPLICATION://b-2-internal.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:9093,REPLICATION_SECURE://b-2-internal.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:9095]
Exemple de sortie :
Completed updating config for entity: broker 2
Bonnes pratiques
Examinez les bonnes pratiques suivantes :
- Vous devez exécuter les commandes précédentes pour chaque agent séparément depuis le même ordinateur client. Cette mise à jour de configuration ne requiert pas le redémarrage de l’agent.
- Lorsque vous modifiez les valeurs de REPLICATION et REPLICATION_SECURE, veillez à ajouter -internal au nom de l’agent.
- Ne remplacez pas les ports 9093 et 9095 dans les commandes précédentes.
- Utilisez les valeurs correctes pour le champ client lorsque vous mettez à jour la configuration du port de l’agent.
Par exemple, pour TLS - CLIENT_SECURE, utilisez [CLIENT_SECURE://b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:443].
Pour SASL - CLIENT_SASL_SCRAM, utilisez [CLIENT_SASL_SCRAM://b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:443].
Pour IAM - CLIENT_IAM, utilisez [CLIENT_IAM://b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:443].
Pour vérifier la configuration actuelle de l'écouteur de l’agent, procédez comme suit :
-
Pour lancer le shell Apache ZooKeeper, exécutez la commande suivante :
./zookeeper-shell.sh ZooKeeper_connection_string -
Pour répertorier les informations de configuration pour l’agent 1, exécutez la commande suivante :
get /brokers/ids/1Exemple de sortie :
{ "listener_security_protocol_map": { "REPLICATION_SECURE": "SSL", "CLIENT_SASL_SCRAM": "SASL_SSL", "REPLICATION": "PLAINTEXT", "CLIENT": "PLAINTEXT", "CLIENT_SECURE": "SSL" }, "endpoints": [ "CLIENT://b-1.testdns.xx.c14.kafka.us-east-1.amazonaws.com:9092", "CLIENT_SASL_SCRAM://b-1.dns.691zg3.c14.kafka.us-east-1.amazonaws.com:9096", "CLIENT_SECURE://b-1.testdns.xx.c14.kafka.us-east-1.amazonaws.com:9094", "REPLICATION://b-1-internal.testdns.xx.c14.kafka.us-east-1.amazonaws.com:9093", "REPLICATION_SECURE://b-1-internal.testdns.xx.c14.kafka.us-east-1.amazonaws.com:9095" ], "rack": "use1-az2", "jmx_port": 9099, "port": 9092, "host": "b-1.testdns.xx.c14.kafka.us-east-1.amazonaws.com", "version": 4, "timestamp": "1645081828199" }
Créer deux groupes cibles
Créez deux groupes cibles dans le même Amazon Virtual Private Cloud (Amazon VPC) que votre cluster Amazon MSK avec les valeurs suivantes :
- Pour Type de cible, utilisez ip.
- Pour Protocole, utilisez TCP.
- Pour Port, utilisez 9094.
Puis, utilisez l'adresse IP de l’agent pour enregistrer l’agent Amazon MSK auprès du groupe cible correspondant.
Pour obtenir l'adresse IP de l’agent, exécutez une commande similaire à l'exemple suivant :
Agent 1
dig +short b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com
Exemple de sortie :
10.0.3.##
Agent 2
dig +short b-2.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com
Exemple de sortie :
10.0.4.##
Créer deux Network Load Balancers
Créez deux Network Load Balancers avec les paramètres suivants :
- Pour Écouteurs, modifiez le port afin qu'il pointe vers le port 443 annoncé par l’agent.
- Pour Action par défaut, sélectionnez le groupe cible concerné pour transférer le trafic.
- Pour Mappages, veillez à sélectionner les sous-réseaux sur lesquels se trouvent les agents Amazon MSK.
Assurez-vous d'activer l'équilibrage de charge entre zones pour les Network Load Balancers que vous avez créés.
Créer une zone hébergée privée Amazon Route 53
Créez une zone hébergée privée Amazon Route 53 avec les valeurs suivantes :
- Pour Nom de domaine, saisissez le nom de domaine figurant dans la chaîne de votre agent. Par exemple, kafka.us-east-1.amazonaws.com.
- Pour ID de VPC, saisissez l'ID de VPC des clients.
Créer de deux enregistrements d'alias de type A
Pour éviter tout échec d'établissement de liaison TLS, créez deux enregistrements d'alias de type A avec des noms d'enregistrement identiques aux noms DNS respectifs des agents.
Assurez-vous que les règles entrantes du groupe de sécurité du cluster autorisent le trafic depuis l'adresse IP des Network Load Balancers vers le port 9094.
Après avoir effectué toutes les étapes précédentes, connectez-vous au port 443 annoncé par l’agent.
Remarque : Cette solution fonctionne pour tous les types de méthodes de contrôle d'accès que vous avez activées pour les clusters Amazon MSK.
Informations connexes
Configurations Amazon MSK personnalisées
Configurer un nom de domaine personnalisé pour votre cluster Amazon MSK
Utilisation d'API Amazon API Gateway privées à l'aide du protocole TLS mutuel
- Sujets
- Analytics
- Langue
- Français

Contenus pertinents
- demandé il y a 2 ans
- demandé il y a 2 ans
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 7 mois