Logotipo de Zephyrnet

Resolver nombres de host DNS privados para Amazon MSK Connect | Servicios web de Amazon

Fecha:

Conexión de Amazon MSK es una característica de Streaming administrado por Amazon para Apache Kafka (Amazon MSK) que ofrece un entorno Apache Kafka Connect totalmente administrado en AWS. Con MSK Connect, puede implementar conectores totalmente administrados creados para Kafka Connect que mueven o extraen datos de almacenes de datos populares como Amazon S3 y Amazon OpenSearch Service. Con la introducción del Soporte de DNS privado en MSK Connect, los conectores pueden resolver nombres de dominio privados de clientes utilizando sus servidores DNS configurados en el conjunto de opciones DHCP de VPC del cliente. Esta publicación muestra una solución para resolver nombres de host DNS privados definidos en una VPC de cliente para MSK Connect.

Es posible que desee utilizar la compatibilidad con nombres de host DNS privados para MSK Connect por varios motivos. Antes de la capacidad de resolución de DNS privada incluida con MSK Connect, utilizaba el servicio de resolución de DNS de VPC para la resolución de DNS. MSK Connect no utilizó los servidores DNS privados definidos en los conjuntos de opciones DHCP de VPC del cliente para la resolución de DNS. Los conectores solo pudieron hacer referencia a nombres de host en la configuración o complemento del conector que se pueden resolver públicamente y no pudieron resolver nombres de host privados definidos en una zona alojada privada ni usar servidores DNS en otra red de cliente.

Muchos clientes se aseguran de que sus aplicaciones DNS internas no se puedan resolver públicamente. Por ejemplo, es posible que tenga una base de datos MySQL o PostgreSQL y no desee que el nombre DNS de su base de datos se pueda resolver o acceder públicamente. Servicio de base de datos relacional de Amazon (Amazon RDS) o Aurora amazónica Los servidores tienen nombres DNS que se pueden resolver públicamente pero no son accesibles. Puede tener varias aplicaciones internas, como bases de datos, almacenes de datos u otros sistemas donde los nombres DNS no se pueden resolver públicamente.

Con el reciente lanzamiento de la compatibilidad con DNS privado de MSK Connect, puede configurar conectores para hacer referencia a nombres de dominio públicos o privados. Los conectores utilizan los servidores DNS configurados en la opción DHCP de su VPC para resolver nombres de dominio. Ahora puede utilizar MSK Connect para conectarse de forma privada con bases de datos, almacenes de datos y otros recursos en su VPC para cumplir con sus necesidades de seguridad.

Si tiene una base de datos MySQL o PostgreSQL con DNS privado, puede configurarla en un servidor DNS personalizado y configurar la opción DHCP específica de VPC para realizar la resolución de DNS usando el servidor DNS personalizado local de la VPC en lugar de usar el servicio DNS. resolución.

Resumen de la solución

Un cliente puede tener diferentes opciones de arquitectura para configurar su MSK Connect. Por ejemplo, pueden tener Amazon MSK y MSK Connect en la misma VPC o sistema fuente en VPC1 y Amazon MSK y MSK Connect en VPC2 o sistema fuente; Amazon MSK y MSK Connect están todos en VPC diferentes.

La siguiente configuración utiliza dos VPC diferentes, donde la VPC MySQL hospeda la base de datos MySQL y la VPC MSK hospeda Amazon MSK, MSK Connect, el servidor DNS y varios otros componentes. Puede ampliar esta arquitectura para admitir otras topologías de implementación utilizando Gestión de identidades y accesos de AWS (IAM) permisos y opciones de conectividad.

Esta publicación proporciona instrucciones paso a paso para configurar MSK Connect, donde recibirá datos de una base de datos MySQL de origen con un nombre de host DNS privado en la VPC MySQL y enviará datos a Amazon MSK usando MSK Connect en otra VPC. El siguiente diagrama ilustra la arquitectura de alto nivel.

Las instrucciones de configuración incluyen los siguientes pasos clave:

  1. Configure las VPC, las subredes y otros componentes principales de la infraestructura.
  2. Instale y configure el servidor DNS.
  3. Sube los datos a la base de datos MySQL.
  4. Implemente Amazon MSK y MSK Connect y consuma los registros de captura de datos modificados (CDC).

Requisitos previos

Para seguir el tutorial de este post, necesitas lo siguiente:

Cree la infraestructura necesaria con AWS CloudFormation

Antes de configurar MSK Connect, debemos configurar las VPC, las subredes y otros componentes principales de la infraestructura. Para configurar recursos en su cuenta de AWS, complete los siguientes pasos:

  1. Elige Pila de lanzamiento para lanzar la pila en una región que admita Amazon MSK y MSK Connect.
  2. Especifique la clave privada que utiliza para conectarse a las instancias EC2.
  3. Actualice la ubicación SSH con su dirección IP local y mantenga los demás valores como predeterminados.
  4. Elige Siguiente.
  5. Revise los detalles en la página final y seleccione Reconozco que AWS CloudFormation podría crear recursos de IAM.
  6. Elige Crear pila y espere a que se creen los recursos necesarios.

La plantilla de CloudFormation crea los siguientes recursos clave en su cuenta:

  • VPC:
    • VPC de MSK
    • VPC MySQL
  • Subredes en la VPC de MSK:
    • Tres subredes privadas para Amazon MSK
    • Subred privada para servidor DNS
    • Subred privada para MSKClient
    • Subred pública para host bastión
  • Subredes en MySQL VPC:
    • Subred privada para base de datos MySQL
    • Subred pública para host bastión
  • Puerta de enlace de Internet conectada a MySQL VPC y MSK VPC
  • Puertas de enlace NAT conectadas a la subred pública MySQL y a la subred pública MSK
  • Tablas de rutas para respaldar el flujo de tráfico entre diferentes subredes en una VPC y entre VPC
  • Conexión peering entre MySQL VPC y MSK VPC
  • Base de datos MySQL y configuraciones.
  • servidor DNS
  • Cliente MSK con sus respectivas bibliotecas

Tenga en cuenta que si utiliza peering de VPC o Pasarela de tránsito de AWS con MSK Connect, no configure su conector para llegar a los recursos de VPC emparejados con IP en los rangos de CIDR. Para obtener más información, consulte Conexión desde conectores.

Configurar el servidor DNS

Complete los siguientes pasos para configurar el servidor DNS:

  1. Conéctese al servidor DNS. Hay tres archivos de configuración disponibles en el servidor DNS bajo el /home/ec2-user carpeta:
    • named.conf
    • mysql.internal.zone
    • kafka.us-east-1.amazonaws.com.zone
  2. Ejecute los siguientes comandos para instalar y configurar su servidor DNS:
    sudo yum install bind bind-utils –y
    cp /home/ec2-user/named.conf /etc/named.conf
    chmod 644 /etc/named.conf
    cp mysql.internal.zone /var/named/mysql.internal.zone
    cp kafka.region.amazonaws.com.zone /var/named/kafka.region.amazonaws.com.zone
    

  3. Actualizar /etc/named.conf.

Para el atributo permitir-transferencia, actualice la dirección IP interna del servidor DNS para permitir-transferencia

{ localhost; <DNS Server internal IP address>; };.

Puede encontrar la dirección IP del servidor DNS en la plantilla de CloudFormation Salidas .

Note que el clúster MSK aún no está configurado en esta etapa. Necesitamos actualizar los nombres DNS del broker Kafka y sus respectivas direcciones IP internas en el /var/named/kafka.region.amazonaws.com archivo de configuración después de configurar el clúster MSK más adelante en esta publicación. Para obtener instrucciones, consulte aquí.

También tenga en cuenta que estas configuraciones configuran el servidor DNS para esta publicación. En su propio entorno, puede configurar el servidor DNS según sus necesidades.

  1. Reinicie el servicio DNS:
    sudo su
    service named restart
    

Deberías ver el siguiente mensaje:

Redirecting to /bin/systemctl restart named.service

Su servidor DNS personalizado ya está funcionando.

Sube los datos a la base de datos MySQL.

Normalmente podemos utilizar un Amazon RDS para MySQL base de datos, pero para esta publicación, utilizamos servidores de bases de datos MySQL personalizados. El DNS de Amazon RDS es de acceso público y MSK Connect lo admite, pero en el pasado no podía admitir bases de datos o aplicaciones con DNS privado. con lo último nombres de host DNS privados lanzamiento de la función, también puede admitir DNS privados de aplicaciones, por lo que utilizamos una base de datos MySQL en la instancia EC2.

Esta instalación proporciona información sobre cómo configurar la base de datos MySQL en una instancia EC2 de un solo nodo. Esto no debe usarse para su configuración de producción. Debe seguir las instrucciones adecuadas para instalar y configurar MySQL en su cuenta.

La base de datos MySQL ya está configurada usando la plantilla CloudFormation y está lista para usar ahora. Para cargar los datos, complete los siguientes pasos:

  1. SSH a la instancia MySQL EC2. Para obtener instrucciones, consulte Conéctese a su instancia de Linux. El archivo de datos salesdb.sql ya está descargado y disponible en el /home/ec2-user directorio.
  2. Inicie sesión en mysqldb con el nombre de usuario master.
  3. Para acceder a la contraseña, navegue hasta Gerente de sistemas de AWS y Tienda de parámetros lengüeta. Seleccionar /Base de datos/Credenciales/maestro y haga clic en Ver más y copie el valor de la clave.
  4. Inicie sesión en MySQL usando el siguiente comando:
    mysql -umaster -p<MySQLMasterUserPassword>
    

  5. Ejecute los siguientes comandos para crear el salesdb base de datos y cargar los datos en la tabla:
    use salesdb;
    source /home/ec2-user/salesdb.sql;

Esto insertará los registros en varias tablas diferentes en el salesdb base de datos.

  1. Ejecute show table para ver las siguientes tablas en el salesdb:
    mysql> show tables;
    +-----------------------+
    | Tables_in_salesdb |
    +-----------------------+
    | CUSTOMER |
    | CUSTOMER_SITE |
    | PRODUCT |
    | PRODUCT_CATEGORY |
    | SALES_ORDER |
    | SALES_ORDER_ALL |
    | SALES_ORDER_DETAIL |
    | SALES_ORDER_DETAIL_DS |
    | SALES_ORDER_V |
    | SUPPLIER |
    +-----------------------+

Crear un conjunto de opciones DHCP

Los conjuntos de opciones de DHCP le brindan control sobre los siguientes aspectos del enrutamiento en su red virtual:

  • Puede controlar los servidores DNS, los nombres de dominio o los servidores de protocolo de tiempo de red (NTP) utilizados por los dispositivos en su VPC.
  • Puede desactivar completamente la resolución DNS en su VPC.

Para admitir DNS privado, puede utilizar un Ruta del Amazonas 53 zona privada o su propio servidor DNS personalizado. Si utiliza una zona privada de Route 53, la configuración funcionará automáticamente y no es necesario realizar ningún cambio en la opción DHCP predeterminada configurada para MSK VPC. Para un servidor DNS personalizado, complete los siguientes pasos para configurar una configuración DHCP personalizada usando Nube privada virtual de Amazon (Amazon VPC) y conéctelo a MSK VPC.

Habrá una opción DHCP predeterminada configurada en su VPC adjunta al servidor DNS proporcionado por Amazon. En esta etapa, las solicitudes irán al servidor DNS proporcionado por Amazon para su resolución. Sin embargo, creamos un nuevo conjunto de opciones DHCP porque estamos usando un servidor DNS personalizado.

  1. En la consola de Amazon VPC, elija Conjunto de opciones DHCP en el panel de navegación.
  2. Elige Crear conjunto de opciones DHCP.
  3. Nombre del conjunto de opciones DHCP, introduzca MSKConnect_Private_DHCP_OptionSet.
  4. Nombre de dominio y certificado SSL, introduzca mysql.internal.
  5. Servidor de nombres de dominio, ingrese la dirección IP del servidor DNS.
  6. Elige Crear conjunto de opciones DHCP.
  7. Navegue hasta la VPC de MSK y en la Acciones menú, seleccione Editar la configuración de VPC.
  8. Seleccione el conjunto de opciones DHCP recién creado y guárdelo.
    La siguiente captura de pantalla muestra las configuraciones de ejemplo.
  9. En la consola de Amazon EC2, navegue hasta privateDNS_bastion_host.
  10. Elige Estado de la instancia y Reiniciar instancia.
  11. Espere unos minutos y luego ejecute. nslookup de la hueste bastión; Debería poder resolverlo utilizando su servidor DNS local en lugar de la Ruta 53:
nslookup local.mysql.internal

Ahora nuestra configuración de infraestructura base está lista para pasar a la siguiente etapa. Como parte de nuestra infraestructura base, hemos configurado con éxito los siguientes componentes clave:

  • VPC de MSK y MySQL
  • Subredes
  • Instancias EC2
  • Emparejamiento de VPC
  • Tablas de ruta
  • Puertas de enlace NAT y puertas de enlace de Internet
  • Servidor DNS y configuración
  • Grupos de seguridad y NACL adecuados
  • Base de datos MySQL con los datos requeridos.

En esta etapa, el nombre DNS de la base de datos MySQL se puede resolver utilizando un servidor DNS personalizado en lugar de la Ruta 53.

Configurar el clúster MSK y MSK Connect

El siguiente paso es implementar el clúster MSK y MSK Connect, que recuperará registros del salesdb y enviarlo a un Servicio de almacenamiento simple de Amazon (Amazon S3) cubo. En esta sección, proporcionamos un tutorial sobre cómo replicar la base de datos MySQL (salesdb) a Amazon MSK usando debecio, un conector de código abierto. El conector monitoreará cualquier cambio en la base de datos y capturará cualquier cambio en las tablas.

Con MSK Connect, puede ejecutar cargas de trabajo de Apache Kafka Connect totalmente administradas en AWS. MSK Connect aprovisiona los recursos necesarios y configura el clúster. Supervisa continuamente el estado de salud y entrega de los conectores, parchea y administra el hardware subyacente, y escala automáticamente los conectores para que coincidan con los cambios en el rendimiento. Como resultado, puede centrar sus recursos en crear aplicaciones en lugar de administrar la infraestructura.

MSK Connect utilizará el servidor DNS personalizado en la VPC y no dependerá de la Ruta 53.

Crear una configuración de clúster MSK

Complete los siguientes pasos para crear un clúster MSK:

  1. En la consola de Amazon MSK, elija Configuraciones de clúster bajo Clústeres de MSK en el panel de navegación.
  2. Elige Crear configuración.
  3. Nombra la configuración mskc-tutorial-cluster-configuration.
  4. under Propiedades de configuración, elimina todo y agrega la línea auto.create.topics.enable=true.
  5. Elige Crear.

Cree un clúster MSK y adjunte la configuración

En el siguiente paso, adjuntamos esta configuración a un clúster. Complete los siguientes pasos:

  1. En la consola de Amazon MSK, elija Clusters bajo Clústeres de MSK en el panel de navegación.
  2. Elige Crear clusters y Creación personalizada.
  3. Para el nombre del clúster, ingrese mkc-tutorial-cluster.
  4. under Propiedades generales del clúster, escoger Aprovisionado para el tipo de clúster y utilice la versión predeterminada de Apache Kafka 2.8.1.
  5. Utilice todas las opciones predeterminadas para el Brokers y Almacenamiento .
  6. under Configuraciones, escoger Configuración personalizada.
  7. Seleccione mskc-tutorial-cluster-configuration con la revisión adecuada y elegir Siguiente.
  8. under Networking, elija la VPC de MSK.
  9. Seleccione las zonas de disponibilidad según su región, como us-east1a, us-east1by us-east1cy las respectivas subredes privadas MSK-Private-1, MSK-Private-2y MSK-Private-3 si estas en el us-east-1 Región. El acceso público a estos corredores debería estar cerrado.
  10. Copie el ID del grupo de seguridad de Grupos de seguridad elegidos.
  11. Elige Siguiente.
  12. under Métodos de control de acceso, selecciona Autenticación basada en roles de IAM.
  13. En Cifrado sección, bajo Entre clientes y corredores, Encriptación TLS se seleccionará de forma predeterminada.
  14. Encriptardatos ypt en reposo, seleccione Utilice la clave administrada de AWS.
  15. Utilice las opciones predeterminadas para Monitoreo y seleccionar Monitoreo básico.
  16. Seleccione Entregar a Amazon CloudWatch Logs.
  17. under Grupo de registro, escoger visite la consola de Amazon CloudWatch Logs.
  18. Elige Crear grupo de registro.
  19. Introduzca un nombre de grupo de registro y elija Crear.
  20. Volver a la Monitoreo y etiquetas página y debajo Grupos de registros, escoger Elija grupo de registro
  21. Elige Siguiente.
  22. Revise las configuraciones y elija Crear clúster. Se le redirigirá a la página de detalles del clúster.
  23. under Grupos de seguridad aplicados, anote el ID del grupo de seguridad que utilizará en un paso posterior.

La creación de clústeres suele tardar entre 25 y 30 minutos. Su estado cambia a Activo cuando se crea correctamente.

Actualice el archivo de zona /var/named/kafka.region.amazonaws.com

Antes de crear el conector MSK, actualice las configuraciones del servidor DNS con los detalles del clúster MSK.

  1. Para obtener la lista de DNS del servidor de arranque y las respectivas direcciones IP, navegue hasta el clúster y elija Ver información del cliente.
  2. Copie la información del servidor de arranque con el tipo de autenticación IAM.
  3. Puede identificar las direcciones IP del corredor usando nslookup desde su máquina local y le proporcionará la dirección IP local del corredor. Actualmente, su VPC apunta a la última opción de DHCP configurada y su servidor DNS no podrá resolver estos nombres DNS desde su VPC.
    nslookup <broker 1 DNS name>

Ahora puede iniciar sesión en el servidor DNS y actualizar los registros de diferentes corredores y las respectivas direcciones IP en el /var/named/kafka.region.amazonaws.com archivo.

  1. Cargar la msk-access.pem presentar a la BastionHostInstance desde su máquina local:
    scp -i "< your pem file>" Your pem file ec2-user@<BastionHostInstance IP address>:/home/ec2-user/

  2. Inicie sesión en el servidor DNS y abra el /var/named/kafka.region.amazonaws.com archive y actualice las siguientes líneas con los nombres DNS correctos del agente MSK y las respectivas direcciones IP:
    <b-1.<clustername>.******.c6> IN A <Internal IP Address - broker 1>
    <b-2.<clustername>.******.c6> IN A <Internal IP Address - broker 2>
    <b-3.<clustername>.******.c6> IN A <Internal IP Address - broker 3>
    

Tenga en cuenta que debe proporcionar el DNS del corredor como se mencionó anteriormente. Eliminar .kafka.<region id>.amazonaws.com del nombre DNS del corredor.

  1. Reinicie el servicio DNS:
    sudo su
    service named restart

Deberías ver el siguiente mensaje:

Redirecting to /bin/systemctl restart named.service

Su servidor DNS personalizado ya está en funcionamiento y debería poder resolverlo utilizando los nombres DNS del agente mediante el servidor DNS interno.

Actualice el grupo de seguridad para la conectividad entre la base de datos MySQL y MSK Connect

Es importante contar con la conectividad adecuada entre MSK Connect y la base de datos MySQL. Complete los siguientes pasos:

  1. En la consola de Amazon MSK, navegue hasta el clúster de MSK y en Configuración de red, copie el grupo de seguridad.
  2. En la consola de Amazon EC2, elija Grupos de seguridad en el panel de navegación.
  3. Editar el grupo de seguridad MySQL_SG y elige Añadir regla.
  4. Agregue una regla con MySQL/Aurora como tipo y el grupo de seguridad MSK como recurso entrante para su origen.
  5. Elige Guardar reglas.

Crear el conector MSK

Para crear su conector MSK, complete los siguientes pasos:

  1. En la consola de Amazon MSK, elija Conectores bajo Conexión MSK en el panel de navegación.
  2. Elige Crear conector.
  3. Seleccione Crear complemento personalizado.
  4. Descargue el complemento del conector MySQL para obtener la última versión estable de debecio sitio o descargar Debezium.zip.
  5. Cargue el archivo zip del conector MySQL en el depósito S3.
  6. Copie la URL del archivo, como s3://<bucket name>/Debezium.zip.
  7. Volver a la Elija un complemento personalizado página e ingrese la ruta del archivo S3 para URI de S3.
  8. Nombre de complemento personalizado, introduzca mysql-plugin.
  9. Elige Siguiente.
  10. Nombre, introduzca mysql-connector.
  11. Descripción, introduzca una descripción del conector.
  12. Tipo de clúster, escoger Clúster MSK.
  13. Seleccione el clúster existente de la lista (para esta publicación, mkc-tutorial-cluster).
  14. Especifique el tipo de autenticación como AMI.
  15. Utilice los siguientes valores para Configuración del conector:
    connector.class=io.debezium.connector.mysql.MySqlConnector
    database.history.producer.sasl.mechanism=AWS_MSK_IAM
    database.history.producer.sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
    database.allowPublicKeyRetrieval=true
    database.user=master
    database.server.id=123456
    tasks.max=1
    database.history.consumer.sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
    database.history.producer.security.protocol=SASL_SSL
    database.history.kafka.topic=dbhistory.salesdb
    database.history.kafka.bootstrap.servers=b-3.xxxxx.yyyy.zz.kafka.us-east-2.amazonaws.com:9098,b-1.xxxxx.yyyy.zz.kafka.us-east-2.amazonaws.com:9098,b-2. xxxxx.yyyy.zz.kafka.us-east-2.amazonaws.com:9098
    database.server.name=salesdb-server
    database.history.producer.sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
    database.history.consumer.sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
    database.history.consumer.security.protocol=SASL_SSL
    database.port=3306
    include.schema.changes=true
    database.hostname=local.mysql.internal
    database.password=xxxxxx
    table.include.list=salesdb.SALES_ORDER,salesdb.SALES_ORDER_ALL,salesdb.CUSTOMER
    database.history.consumer.sasl.mechanism=AWS_MSK_IAM
    database.include.list=salesdb
    

  16. Actualice la siguiente configuración del conector:
    database.user=master
    database.hostname=local.mysql.internal
    database.password=<MySQLMasterUserPassword>
    

  17. Tipo de capacidad, escoger Aprovisionado.
  18. Recuento de MCU por trabajador, ingrese 1.
  19. Numero de trabajadores, ingrese 1.
  20. Seleccione Usar la configuración predeterminada de MSK.
  21. En Permisos de acceso sección, en el Elija rol de servicio menú, seleccione MSK-Connect-PrivateDNS-MySQLConnector*, A continuación, elija Siguiente.
  22. En Seguridad sección, mantenga la configuración predeterminada.
  23. En Troncos sección, seleccionar Entregar registros a Amazon CloudWatch.
  24. Elige visite la consola de Amazon CloudWatch Logs.
  25. under Troncos en el panel de navegación, elija Grupo de registro.
  26. Elige Crear grupo de registro.
  27. Ingrese el nombre del grupo de registros, la configuración de retención y las etiquetas, luego elija Crear.
  28. Regrese a la página de creación del conector y elija Explorar grupo de registros.
  29. Elija el AmazonMSKConnect grupo de registro, luego elija Siguiente.
  30. Revise las configuraciones y elija Crear conector.

Espere a que se complete el proceso de creación del conector (entre 10 y 15 minutos).

El conector MSK Connect ya está en funcionamiento. Puede iniciar sesión en la base de datos MySQL utilizando su ID de usuario y realizar un par de cambios en el registro de la tabla de clientes. MSK Connect podrá recibir registros CDC y las actualizaciones de la base de datos estarán disponibles en MSK tema.

Consumir mensajes del tema MSK

Para consumir mensajes del tema MSK, ejecute el consumidor Kafka en el MSK_Client Instancia EC2 disponible en MSK VPC.

  1. SSH al MSK_Client Instancia EC2. El MSK_Client La instancia tiene las bibliotecas cliente Kafka requeridas, el archivo JAR de Amazon MSK IAM, client.properties y un perfil de instancia adjunto, junto con la función de IAM adecuada mediante la plantilla de CloudFormation.
  2. Agregue la MSKClientSG grupo de seguridad como origen del grupo de seguridad MSK con las siguientes propiedades:
    • Tipo de Propiedad, escoger Todo el tráfico.
    • Fuente, escoger Grupo de seguridad personalizado y MSK.

    Ahora estás listo para consumir datos.

  3. Para enumerar los temas, ejecute el siguiente comando:
    ./kafka-topics.sh --bootstrap-server <BootstrapServerString>

  4. Para consumir datos del salesdb-server.salesdb.CUSTOMER tema, utilice el siguiente comando:
    ./kafka-console-consumer.sh --bootstrap-server <BootstrapServerString> --consumer.config client.properties --topic salesdb-server.salesdb.CUSTOMER --from-beginning

Ejecute el consumidor de Kafka en su máquina EC2 y podrá registrar mensajes similares a los siguientes:

Struct{after=Struct{CUST_ID=1998.0,NAME=Customer Name 1998,MKTSEGMENT=Market Segment 3},source=Struct{version=1.9.5.Final,connector=mysql,name=salesdb-server,ts_ms=1678099992174,snapshot=true,db=salesdb,table=CUSTOMER,server_id=0,file=binlog.000001,pos=43298383,row=0},op=r,ts_ms=1678099992174}
Struct{after=Struct{CUST_ID=1999.0,NAME=Customer Name 1999,MKTSEGMENT=Market Segment 7},source=Struct{version=1.9.5.Final,connector=mysql,name=salesdb-server,ts_ms=1678099992174,snapshot=true,db=salesdb,table=CUSTOMER,server_id=0,file=binlog.000001,pos=43298383,row=0},op=r,ts_ms=1678099992174}
Struct{after=Struct{CUST_ID=2000.0,NAME=Customer Name 2000,MKTSEGMENT=Market Segment 9},source=Struct{version=1.9.5.Final,connector=mysql,name=salesdb-server,ts_ms=1678099992174,snapshot=last,db=salesdb,table=CUSTOMER,server_id=0,file=binlog.000001,pos=43298383,row=0},op=r,ts_ms=1678099992174}
Struct{before=Struct{CUST_ID=2000.0,NAME=Customer Name 2000,MKTSEGMENT=Market Segment 9},after=Struct{CUST_ID=2000.0,NAME=Customer Name 2000,MKTSEGMENT=Market Segment10},source=Struct{version=1.9.5.Final,connector=mysql,name=salesdb-server,ts_ms=1678100372000,db=salesdb,table=CUSTOMER,server_id=1,file=binlog.000001,pos=43298616,row=0,thread=67},op=u,ts_ms=1678100372612}

Mientras se probaba la aplicación, se actualizaron los registros con CUST_ID 1998, 1999 y 2000, y estos registros están disponibles en los registros.

Limpiar

Siempre es una buena práctica limpiar todos los recursos creados como parte de esta publicación para evitar costos adicionales. Para limpiar sus recursos, elimine el clúster MSK, la conexión MSK Connect, las instancias EC2, el servidor DNS, el host bastión, el depósito S3, la VPC, las subredes y los registros de CloudWatch.

Además, limpie todos los demás recursos de AWS que creó con AWS CloudFormation. Puede eliminar estos recursos en la consola de AWS CloudFormation eliminando la pila.

Conclusión

En esta publicación, analizamos el proceso de configuración de MSK Connect utilizando un DNS privado. Esta característica le permite configurar conectores para hacer referencia a nombres de dominio públicos o privados.

Podemos recibir la carga inicial y los registros CDC de una base de datos MySQL alojada en una VPC separada y su DNS no es accesible ni se puede resolver externamente. MSK Connect pudo conectarse a la base de datos MySQL y consumir los registros utilizando la función DNS privada de MSK Connect. El conjunto de opciones de DHCP personalizado se adjuntó a la VPC, lo que garantizó que la resolución de DNS se realizara utilizando el servidor DNS local en lugar de la Ruta 53.

Con la función de soporte de DNS privado de MSK Connect, puede hacer que sus bases de datos, almacenes de datos y sistemas como administradores secretos que funcionan con su propia VPC sean inaccesibles a Internet y poder superar esta limitación y cumplir con su postura de seguridad corporativa.

Para obtener más información y comenzar, consulte DNS privado para conexión MSK.


Acerca del autor.

Amar es arquitecto senior de soluciones en Amazon AWS en el Reino Unido. Trabaja con clientes de energía, servicios públicos, manufactura y automoción en implementaciones estratégicas, especializándose en el uso de AWS Streaming y soluciones avanzadas de análisis de datos, para impulsar resultados comerciales óptimos.

punto_img

Información más reciente

punto_img