Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie greife ich von benutzerdefinierten Ports aus auf Amazon-MSK-Broker zu?
Ich möchte über benutzerdefinierte Ports auf Amazon Managed Streaming für Apache Kafka (Amazon MSK)-Broker zugreifen.
Kurzbeschreibung
Bei einer benutzerdefinierten Port-Konfiguration kannst du die advertised.listerner-Einstellungen von den Standardports (9092-plaintext/9094-TLS/9096-SASL-SCRAM/9098-IAM) auf einen beliebigen Port ändern, einschließlich 443. Diese Einstellungen bleiben in Apache ZooKeeper erhalten und bleiben nach einem Neustart des Brokers unverändert.
Du kannst eine benutzerdefinierte Port-Konfiguration entweder über eine Einzel-Port-Konfiguration oder eine Multi-Port-Konfiguration implementieren. Eine Konfiguration mit einem einzigen Port, z. B. Port 443, erfordert separate Network Load Balancer für jeden Broker. Eine Konfiguration mit mehreren Ports verwendet einen Network Load Balancer mit unterschiedlichen Ports für jeden Broker.
Die folgende Lösung konzentriert sich auf einen Einzel-Port-Konfigurationsansatz.
Wichtig: Amazon-MSK-KRaft-basierte Cluster unterstützen derzeit keine dynamischen Änderungen an beworbenen Listenern. Dies ist eine bekannte Einschränkung in der KRaft-Implementierung von Apache Kafka und gilt für alle KRaft-basierten Cluster, einschließlich derer, die auf Amazon MSK ausgeführt werden. Amazon MSK unterstützt KRaft in den Versionen 3.7 und höher. Verwende für Anwendungsfälle, die dynamische Listener-Aktualisierungen erfordern, ZooKeeper-basierte Cluster.
Lösung
Den Broker-Port aktualisieren
Um den Port für Broker 1 von 9094 auf 443 zu aktualisieren, führe auf dem Client-Computer einen Befehl aus, der dem folgenden Beispiel ähnelt:
./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]
Beispielausgabe:
Completed updating config for entity: broker 1
Um den Port für Broker 2 auf 443 zu aktualisieren, führe auf dem Client-Computer einen Befehl aus, der dem folgenden Beispiel ähnelt:
./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]
Beispielausgabe:
Completed updating config for entity: broker 2
Bewährte Methoden
Überprüfe die folgenden bewährten Methoden:
- Du musst die vorherigen Befehle für jeden Broker separat von demselben Client-Computer aus ausführen. Bei dieser Konfigurationsaktualisierung ist kein Broker-Neustart erforderlich.
- Wenn du die Werte für REPLICATION und REPLICATION_SECURE änderst, stelle sicher, -internal zum Namen des Brokers hinzuzufügen.
- Ersetze die Ports 9093 und 9095 in den vorherigen Befehlen nicht.
- Verwende die richtigen Werte für das Client-Feld, wenn du die Broker-Port-Konfiguration aktualisierst.
Verwende beispielsweise für TLS - CLIENT_SECURE [CLIENT_SECURE://b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:443].
Verwende für SASL - CLIENT_SASL_SCRAM [CLIENT_SASL_SCRAM://b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:443].
Verwende für IAM - CLIENT_IAM [CLIENT_IAM://b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com:443].
Gehe wie folgt vor, um die aktuelle Listener-Konfiguration des Brokers zu überprüfen:
-
Führe den folgenden Befehl aus, um die Apache-ZooKeeper-Shell zu starten:
./zookeeper-shell.sh ZooKeeper_connection_string -
Führe den folgenden Befehl aus, um die Konfigurationsinformationen für Broker 1 aufzulisten:
get /brokers/ids/1Beispielausgabe:
{ "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" }
Zwei Zielgruppen erstellen
Erstelle zwei Zielgruppen in derselben Amazon Virtual Private Cloud (Amazon VPC) wie dein Amazon-MSK-Cluster mit den folgenden Werten:
- Verwende für Zieltyp ip.
- Verwende für Protokoll TCP.
- Verwende für Port 9094.
Verwende dann die IP-Adresse des Brokers, um den Amazon-MSK-Broker für die jeweilige Zielgruppe zu registrieren.
Um die IP-Adresse des Brokers abzurufen, führe einen Befehl aus, der dem folgenden Beispiel ähnelt:
Broker 1
dig +short b-1.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com
Beispielausgabe:
10.0.3.##
Broker 2
dig +short b-2.testdns.mswah7.c1.kafka.us-east-1.amazonaws.com
Beispielausgabe:
10.0.4.##
Zwei Network Load Balancer erstellen
Erstelle zwei Network Load Balancer mit den folgenden Einstellungen:
- Ändere für Listener den Port so, dass er auf den vom Broker beworbenen Port 443 verweist.
- Wähle für Standardaktion die entsprechende Zielgruppe aus, um den Datenverkehr weiterzuleiten.
- Stelle bei Mappings (Zuordnungen) sicher, die Subnetze auszuwählen, in denen die Amazon-MSK-Broker existieren.
Stelle sicher, dass du das zonenübergreifende Load Balancing für die von dir erstellten Network Load Balancer aktivierst.
Eine private gehostete Amazon-Route-53-Zone erstellen
Erstelle eine private gehostete Amazon-Route-53-Zone mit den folgenden Werten:
- Gib für Domain-Name den Domainnamen aus der Broker-Zeichenfolge ein. Zum Beispiel kafka.us-east-1.amazonaws.com.
- Gib für VPC-ID die VPC-ID der Clients ein.
Zwei A-Typ-Aliasdatensätze erstellen
Um TLS-Handshake-Fehler zu vermeiden, erstelle zwei A-Typ-Aliasdatensätze mit Datensatznamen, die mit den jeweiligen DNS-Namen der Broker identisch sind.
Stelle sicher, dass die Regeln für eingehenden Datenverkehr für die Sicherheitsgruppe des Clusters den Datenverkehr von der IP-Adresse der Network Load Balancer zu Port 9094 zulassen.
Nachdem du alle vorherigen Schritte ausgeführt hast, stelle eine Verbindung zu dem vom Broker beworbenen Port 443 her.
Hinweis: Diese Lösung funktioniert bei allen Arten von Zugriffssteuerungsmethoden, die du für Amazon-MSK-Cluster aktiviert hast.
Ähnliche Informationen
Benutzerdefinierte Amazon-MSK-Konfigurationen
Einen benutzerdefinierten Domainnamen für den Amazon-MSK-Cluster konfigurieren
Nutzung privater Amazon-API-Gateway-APIs mithilfe von gegenseitiger TLS
- Themen
- Analytics
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr