Transmisión administrada por Amazon para Apache Kafka (Amazon MSK) es un servicio completamente administrado que facilita la creación y ejecución de clústeres de Kafka en Servicios web de Amazon (AWS). Al trabajar con Amazon MSK, los desarrolladores están interesados en obtener al servicio localmente. Esto les permite probar su aplicación con un clúster de Kafka que tiene la misma configuración que la producción y proporciona una infraestructura idéntica al entorno vivo sin privación de ejecutar Kafka localmente.
Un Sin servidor Amazon MSK El punto final DNS privado solo es accesible desde Nubarrón privada posible de Amazon (VPC de Amazon) conexiones que se han configurado para conectarse. No se puede resolver directamente desde su entorno de incremento tópico. Una opción es usar Conexión directa de AWS o VPN de AWS Ser capaz de Conéctese a Amazon MSK Serverless desde su red tópicoSin bloqueo, construir una posibilidad de este tipo puede implicar costos y complejidad, y debe ser configurada por un equipo de plataforma.
Esta publicación presenta un enfoque práctico para obtener a su entorno de Amazon MSK para fines de incremento a través de un hospedador del bastión utilizando un túnel Secure Shell (SSH) (un método de conexión segura de uso popular). Ya sea que trabaje con Amazon MSK Serverless, donde el paso notorio no está arreglado, o con clústeres MSK aprovisionados que se mantienen privados intencionalmente, esta publicación lo consejero a través de los pasos para establecer una conexión segura e integrar sin problemas su entorno de incremento tópico con sus fortuna MSK.
Descripción caudillo de la posibilidad
La posibilidad le permite conectarse directamente al servicio Amazon MSK Serverless desde su entorno de incremento tópico sin usar Direct Connect ni una VPN. Se accede al servicio con el punto de conexión DNS del servidor de inicio boot-<
en el puerto 9098 y luego se enruta a través de un túnel SSH a un host bastión, que se conecta al clúster MSK Serverless. En el sucesivo paso, exploraremos cómo configurar esta conexión.
El flujo de la posibilidad es el sucesivo:
- El cliente de Kafka envía una solicitud para conectarse al servidor de inicio
- La consulta DNS para su punto final MSK Serverless se enruta a un servidor DNS configurado localmente
- El servidor DNS configurado localmente enruta la consulta DNS a
localhost
. - El túnel SSH reenvía todo el tráfico en el puerto 9098 desde el
localhost
al servidor MSK Serverless a través de Nubarrón de computación elástica de Amazon (Amazon EC2) host bastión.
La sucesivo imagen muestra el diagrama de casa.
Prerrequisitos
Antaño de implementar la posibilidad, debe tener los siguientes fortuna implementados en su cuenta:
- Un clúster MSK Serverless configurado con Encargo de identidad y paso de AWS Autenticación (IAM).
- A instancia de host bastión con paso de red al clúster MSK Serverless y autenticación de secreto pública SSH.
- AWS CLI configurada con un agraciado de IAM y poder acertar y crear temas en Amazon MSK. Utilice la política de IAM de Paso 2: Crear una función de IAM en el Presentación al uso de clústeres MSK Serverless
- Para los usuarios de Windows, instale Linux en Windows con el Subsistema de Windows para Linux 2 (WSL 2) utilizando Ubuntu 24.04. Para obtener instrucciones, consulte Cómo instalar Linux en Windows con WSL.
Esta consejero asume una implementación de MSK Serverless en us-east-1
pero se puede utilizar en cualquier Región de AWS donde MSK Serverless está arreglado. Adicionalmente, utilizamos OS X como sistema activo. En los siguientes pasos, reemplace msk-endpoint-url
con la URL del punto final de MSK Serverless con autenticación IAM. La URL del punto final de MSK tiene un formato como boot-<
.
Tutorial de posibilidad
Para obtener a su entorno de Amazon MSK con fines de incremento, utilice el sucesivo tutorial.
Configurar el servidor DNS tópico OSX
Instalar Máscara de DNS como servidor DNS tópico y configurar el solucionador para resolver el MSK de Amazon. La posibilidad utiliza Dnsmasq porque puede comparar solicitudes DNS con una almohadilla de datos de patrones y utilizarlos para determinar la respuesta correcta. Esta funcionalidad puede coincidir con cualquier solicitud que termine en kafka-serverless.us-east-1.amazonaws.com
y despachar 127.0.0.1
En respuesta. Siga estos pasos para instalar Dnsmasq:
- Refrescar brew e instalar Dnsmasq usando brew
- Iniciar el servicio Dnsmasq
- Redirigir todo el tráfico para Serverless MSK (
kafka-serverless.us-east-1.amazonaws.com
) a127.0.0.1
- Recargar la configuración de Dnsmasq y borrar el distinción
Configurar el solucionador OS X
Ahora que tiene un servidor DNS en funcionamiento, puede configurar su sistema activo para usarlo. Configure el servidor para despachar solo .kafka-serverless.us-east-1.amazonaws.com
consultas a Dnsmasq. La mayoría de los sistemas operativos similares a UNIX tienen un archivo de configuración llamado /etc/resolv.conf
que controla la forma en que se realizan las consultas DNS, incluido el servidor predeterminado que se utiliza para las consultas DNS. Utilice los siguientes pasos para configurar el solucionador de OS X:
- OS X asimismo le permite configurar solucionadores adicionales mediante la creación de archivos de configuración en el
/etc/resolver/
Es probable que este directorio no exista en tu sistema, por lo que tu primer paso debería ser crearlo: - Crea un nuevo archivo con El mismo nombre como su nuevo dominio de nivel superior (
kafka-serverless.us-east-1.amazonaws.com
) en el/etc/resolver/
directorio y adicionar127.0.0.1
como unnameserver
ingresando el sucesivo comando.
Configurar el servidor DNS tópico de Windows
En el Subsistema de Windows para Linux, primero instale Máscara de DNSluego configure el solucionador para resolver Amazon MSK y finalmente agregue localhost
como el primero nameserver
.
- Actualice apt e instale Dnsmasq usando apt. Instale el telnet utilidad para pruebas posteriores:
- Redirigir todo el tráfico para Serverless MSK (
kafka-serverless.us-east-1.amazonaws.com
) a127.0.0.1
. - Recargue la configuración de Dnsmasq y borre el distinción.
- Extenso
/etc/resolv.conf
y agregue el sucesivo código en la primera confín.
Crear túnel SSH
El sucesivo paso es crear el túnel SSH, que permitirá que cualquier conexión realizada a localhost:9098 en su máquina tópico se reenvíe a través del túnel SSH al agente de Kafka de destino. Siga los siguientes pasos para crear el túnel SSH:
- Reemplazar
bastion-host-dns-endpoint
con el punto final DNS notorio del host bastión, que viene en el estilo de<<xyz>>.compute-1.amazonaws.com
y reemplazarec2-key-pair.pem
con el par de claves del host bastión. Luego, cree el túnel SSH ingresando el sucesivo comando. - Deje el túnel SSH ejecutándose y ensenada una nueva ventana de terminal.
- Pruebe la conexión al servidor Amazon MSK ingresando el sucesivo comando.
Pruebas
Ahora configure el cliente de Kafka para usar la autenticación IAM y luego pruebe la configuración. Puede encontrar la última instalación de Kafka en Sitio de descarga de Apache KafkaLuego descomprima y copie el contenido de la carpeta Dafka en ~/kafka
.
- Descargue la autenticación IAM y descomprímala
- Configurar las propiedades de Kafka para utilizar IAM como mecanismo de autenticación
- Introduzca el sucesivo comando en
~/kafka/bin
Para crear un tema de ejemplo, asegúrese de que el túnel SSH creado en la sección inicial aún esté destapado y en funcionamiento.
Precisión
Para eliminar la posibilidad, complete los siguientes pasos para usuarios de Mac:
- Eliminar el archivo
/etc/resolver/kafka-serverless.us-east-1.amazonaws.com
- Eliminar la entrada
address=/kafka-serverless.us-east-1.amazonaws.com/127.0.0.1 in the file $(brew --prefix)/etc/dnsmasq.conf
- Detener el servicio Dnsmasq
sudo brew services stop dnsmasq
- Eliminar el servicio Dnsmasq
sudo brew uninstall dnsmasq
Para eliminar la posibilidad, complete los siguientes pasos para los usuarios de WSL:
- Eliminar el archivo
/etc/dnsmasq.conf
- Eliminar la entrada
nameserver 127.0.0.1
En el archivo/etc/resolv.conf
- Eliminar el servicio Dnsmasq
sudo apt remove dnsmasq
- Quitar el telnet utilidad
sudo apt remove telnet
Conclusión
En esta publicación, le presenté una consejero sobre cómo los desarrolladores pueden conectarse a Amazon MSK Serverless desde entornos locales. La conexión se realiza mediante un punto de conexión de Amazon MSK a través de un túnel SSH y un host bastión. Esto permite a los desarrolladores constatar y realizar pruebas de forma tópico, sin privación de configurar un clúster de Kafka independiente.
Acerca del autor
Simón Peyer es arquitecto de soluciones en Amazon Web Services (AWS) y reside en Suiza. Es un emprendedor práctico y le apasiona conectar la tecnología con las personas mediante los servicios de AWS Cloud. Se centra especialmente en la transmisión de datos y las automatizaciones. Adicionalmente del trabajo, Simon disfruta de su clan, del aerofagia atrevido y del senderismo en las montañas.