Preguntas frecuentes sobre Amazon Managed Streaming para Apache Kafka

Aspectos generales

Amazon MSK es un servicio de transmisión de datos de AWS que administra la infraestructura y las operaciones de Apache Kafka, lo que facilita a los desarrolladores y administradores de DevOps la ejecución de aplicaciones de Apache Kafka y conectores Kafka Connect en AWS, sin necesidad de convertirse en expertos en el funcionamiento de Apache Kafka. Amazon MSK opera, mantiene y escala clústeres de Apache Kafka, proporciona características de seguridad de nivel empresarial listas para usar y cuenta con integraciones de AWS incorporadas que agilizan el desarrollo de aplicaciones de datos de streaming.

Para comenzar, puede migrar las cargas de trabajo de Apache Kafka y los conectores de Kafka Connect existentes a Amazon MSK o crear otros nuevos desde cero en unos pocos pasos. No se aplican cargos de transferencia de datos para el tráfico interno de los clústeres utilizado para la replicación y no se exigen compromisos ni pagos iniciales. Paga solo por los recursos que consume.

Apache Kafka es una plataforma de código abierto, de alto rendimiento, tolerante a errores y escalable para la creación de aplicaciones y canalizaciones de datos de streaming en tiempo real. Apache Kafka es un almacén de datos de streaming que separa las aplicaciones que producen datos de streaming (productores) en su almacén de datos de las aplicaciones que consumen datos de streaming (consumidores) de su almacén de datos. Las organizaciones utilizan Apache Kafka como origen de datos para las aplicaciones que analizan y reaccionan continuamente ante la transmisión de datos.

Los datos de streaming son una secuencia continua de pequeños registros o eventos (el tamaño de un registro o evento normalmente es de unos pocos kilobytes) generada por miles de máquinas, dispositivos, sitios web y aplicaciones. Los datos de streaming incluyen una amplia variedad de datos, como los archivos de registros generados por los clientes que utilizan sus aplicaciones móviles o web, las compras de comercio electrónico, la actividad de los jugadores en los juegos, la información de las redes sociales, los parqués financieros, los servicios geoespaciales, los registros de seguridad, las métricas y la telemetría de los dispositivos conectados o la instrumentación en los centros de datos. Los servicios de datos de streaming como Amazon MSK y Amazon Kinesis Data Streams facilitan la recopilación, el procesamiento y la entrega de datos de streaming continuamente.

Kafka Connect, un componente de código abierto de Apache Kafka, es un marco para conectar Apache Kafka con sistemas externos, como bases de datos, almacenes de valores de clave, índices de búsqueda y sistemas de archivos.

Las tres capacidades clave de Apache Kafka son las siguientes:

  • Apache Kafka almacena los datos en streaming de forma tolerante a fallos, lo que proporciona un amortiguador entre productores y consumidores. Almacena los eventos como una serie continua de registros y conserva el orden en que se produjeron los registros.
  • Apache Kafka permite a muchos productores de datos, como sitios web, dispositivos de IoT e instancias de Amazon Elastic Compute Cloud (Amazon EC2), publicar continuamente datos de streaming y clasificarlos según los temas de Apache Kafka. Varios consumidores de datos (como las aplicaciones de machine learning, las funciones de AWS Lambda y los microservicios) leen estos temas a su propio ritmo, de forma similar a una cola de mensajes o un sistema de mensajería empresarial.
  • Los consumidores pueden procesar datos a partir de los temas de Apache Kafka con la estrategia primero en entrar y primero en salir, lo que permite conservar el orden en el que se generaron los datos.

Apache Kafka almacena registros en temas. Los productores de datos escriben registros en temas y los consumidores leen registros a partir de los temas. Cada registro en Apache Kafka consta de una clave, un valor y una marca temporal y, a veces, de metadatos de encabezado. Apache Kafka particiona los temas y replica estas particiones en varios nodos denominados agentes. Apache Kafka se ejecuta como un clúster en uno o más agentes, que pueden estar ubicados en varias zonas de disponibilidad de AWS a fin de crear un clúster con alta disponibilidad. Apache Kafka se basa en Apache ZooKeeper o Apache Kafka Raft(kRaft) para mantener los metadatos del clúster.

Apache Kafka admite aplicaciones en tiempo real que transforman y entregan datos de streaming y reaccionan a ellos, y se puede utilizar para crear canalizaciones de datos en streaming en tiempo real que envían datos entre varios sistemas o aplicaciones de manera confiable.

Sí, los clientes de Apache Kafka pueden utilizar AWS Glue Schema Registry, una característica sin servidor de AWS Glue, sin cargo adicional. Consulte la guía para usuarios de AWS Glue Schema Registry para empezar y obtener más información.

Amazon MSK facilita la introducción y la ejecución de Apache Kafka en AWS con alta disponibilidad y seguridad abiertas. Amazon MSK también ofrece integraciones con los servicios de AWS sin la sobrecarga operativa de ejecutar un clúster de Apache Kafka. Amazon MSK permite usar versiones de código abierto de Apache Kafka mientras que el servicio se encarga de administrar la configuración, el aprovisionamiento, las integraciones con AWS y el mantenimiento continuo de los clústeres de Apache Kafka.

En tan solo unos pasos en la consola, puede crear un clúster de Amazon MSK. A partir de ese momento, Amazon MSK reemplaza agentes que funcionan incorrectamente, replica de forma automática los datos para lograr alta disponibilidad, administra los nodos de metadatos, implementa de manera automática parches de hardware según sea necesario, administra las integraciones con servicios de AWS, torna visibles métricas importantes a través de la consola y admite las actualizaciones de versión de Apache Kafka para que pueda aprovechar las mejoras realizadas en la versión de código abierto de Apache Kafka.

Recursos

Puede consultar la Guía de introducción de Amazon MSK para configurar un clúster y producir y consumir a partir de él. En resumen, puede crear su primer clúster en unos pocos pasos en la consola de administración de AWS o mediante los SDK de AWS. En primer lugar, en la consola de Amazon MSK, seleccione la región de AWS en la que desee crear el clúster de MSK. Elija un nombre para su clúster, la nube privada virtual (VPC) con la que desea ejecutar el clúster y las subredes para cada zona de disponibilidad. Si va a crear un clúster aprovisionado, también puede elegir un tipo de instancia de agente y el número de agentes por zona de disponibilidad.

Los clústeres aprovisionados contienen instancias de intermediario y nodos de metadatos abstractos. Los clústeres sin servidor son un recurso en sí mismos, que abstraen todos los recursos subyacentes.

En Apache Kafka, los agentes son los servidores individuales que forman el clúster Apache Kafka. Son responsables de almacenar y replicar los datos publicados en los temas de Kafka, administrar las particiones dentro de esos temas, gestionar las solicitudes de los clientes (producir y consumir mensajes) y coordinarse entre sí para mantener el estado general del despliegue de Kafka. Los agentes son los componentes principales que permiten la arquitectura distribuida, escalable y tolerante a fallos de Kafka.

Para los clústeres aprovisionados, puede elegir instancias EC2 T3.small o instancias de las familias de instancias M7g y M5 de EC2. En el caso de los clústeres sin servidor, los agentes están completamente abstraídos. MSK también ofrece los tipos de bróker estándar y express.

No, cada agente que aprovisione incluirá almacenamiento para volúmenes de arranque que administra el servicio Amazon MSK.

Algunos recursos, como las interfaces de red elásticas (ENI), se mostrarán en su cuenta de Amazon EC2. Otros recursos de Amazon MSK no aparecerán en su cuenta de Amazon EC2 porque los administra el servicio Amazon MSK.

Para los clústeres aprovisionados, debe aprovisionar instancias de agente en todos los clústeres que cree. En los agentes estándar, aprovisionará el almacenamiento y, de forma opcional, habilitará el rendimiento de almacenamiento aprovisionado para los volúmenes de almacenamiento, que se puede utilizar para escalar la E/S sin tener que aprovisionar agentes adicionales. Con los agentes express, no necesita aprovisionar ni administrar el almacenamiento. Para todos los tipos de clústeres, no es necesario aprovisionar nodos de metadatos, como los nodos Apache ZooKeeper o KRAFT, ya que estos recursos se incluyen sin costo adicional en cada clúster que crees. Para los clústeres sin servidor, solo tiene que crear un clúster como recurso.

Amazon MSK usa la replicación líder-seguidor de Apache Kafka para replicar datos entre agentes. Amazon MSK facilita la implementación de clústeres con replicación Multi-AZ. Con los agentes estándar, tiene la opción de utilizar una estrategia de replicación personalizada por tema. Los agentes express garantizan una mayor disponibilidad al replicar siempre sus datos en tres zonas de disponibilidad. Los agentes líderes y seguidores se desplegarán y aislarán mediante el tipo de agente y la estrategia de replicación especificados. Por ejemplo, si selecciona agentes estándar con una estrategia de replicación de tres agentes de zonas de disponibilidad y con un agente por clúster de zona de disponibilidad, Amazon MSK creará un clúster de tres agentes (un agente en tres zonas de disponibilidad de una región) y, de forma predeterminada (a menos que decida anular el factor de replicación del tema), el factor de replicación del tema también será de tres. Para obtener más información sobre lo que ocurre durante la conmutación por error del cliente, consulte nuestra documentación sobre la conmutación por error del cliente.

Sí, Amazon MSK permite crear configuraciones personalizadas y aplicarlas a los clústeres nuevos o a los ya existentes. Los agentes express protegen una mayor parte de las configuraciones de los valores subóptimos que pueden afectar la disponibilidad y la durabilidad. Los agentes express también ofrecen una experiencia más sencilla al abstraer las configuraciones que tienen que ver con el almacenamiento, ya que Amazon MSK administra completamente la capa de almacenamiento. Para obtener más información sobre las configuraciones personalizadas, consulte la documentación de configuración.

Una vez que se haya creado el clúster de Apache Kafka, podrá crear temas con las API de Apache Kafka. Todas las configuraciones y las acciones a nivel de particiones y temas se realizan con las API de Apache Kafka. El siguiente comando es un ejemplo de cómo crear un tema con las API de Apache Kafka y los detalles de configuración disponibles para su clúster:


<path-to-your-kafka-installation>/bin/kafka-topics.sh --create — bootstrap-server <BootstrapBrokerString> --replication-factor 3 --partitions 1 -- topic TopicName

Amazon MSK ofrece dos opciones de despliegue para los clústeres de Apache Kafka: Amazon MSK Provisioned y Amazon MSK Serverless. MSK Provisioned le ofrece distintos niveles de control sobre su clúster y, al mismo tiempo, elimina la mayor parte de la sobrecarga operativa que conlleva la administración de los clústeres de Apache Kafka. Con MSK Provisioned, puede escalar su clúster en unidades de agentes. Puede elegir entre varios tipos de agentes, incluidos los agentes estándar y express. Por el contrario, MSK Serverless es un tipo de clúster que abstrae por completo la escalabilidad y la administración de clústeres. Con MSK Serverless puede ejecutar sus aplicaciones sin tener que aprovisionar, configurar ni optimizar clústeres, y solo pagará el volumen de datos que transmita o retenga. Amazon MSK también ofrece varias opciones para simplificar la conexión a los clústeres de MSK. Estas opciones incluyen Amazon MSK Connect, Amazon MSK Replicator y otras integraciones nativas de AWS. Consulte las secciones siguientes para obtener más información. 

Amazon MSK Provisioned

MSK Provisioned es una opción de despliegue de clústeres de MSK que permite configurar y escalar manualmente los clústeres de Apache Kafka. Esto le proporciona diferentes niveles de control sobre la infraestructura que alimenta su entorno Apache Kafka.

Con MSK Provisioned, puede elegir los tipos de instancias, los volúmenes de almacenamiento del tipo de agente estándar y la cantidad de nodos de agente que componen los clústeres de Kafka. También puede escalar su clúster añadiendo o eliminando agentes a medida que evolucionen sus necesidades de procesamiento de datos. Esta flexibilidad le permite optimizar los clústeres para sus requisitos de carga de trabajo específicos, ya sea para maximizar el rendimiento, la capacidad de retención u otras características de rendimiento.

Además de las opciones de configuración de la infraestructura, MSK Provisioned ofrece beneficios operativos, de supervisión y de seguridad de nivel empresarial. Esto incluye características como las actualizaciones de la versión de Apache Kafka, la seguridad integrada mediante el cifrado y el control de acceso, y la integración con otros servicios de AWS, como Amazon CloudWatch, para la supervisión. MSK Provisioned ofrece dos tipos principales de agentes: estándar y express.

Los agentes estándar le brindan la mayor flexibilidad para configurar sus clústeres, mientras que los agentes express ofrecen más elasticidad, rendimiento, resiliencia y facilidad de uso para ejecutar aplicaciones de streaming de alto rendimiento. Consulte las subsecciones siguientes para obtener más información sobre cada oferta. La siguiente tabla también destaca las comparaciones de características clave entre los agentes estándar y express.

 

Característica Estándar Express
Administración del almacenamiento Administrado por el cliente (las características incluyen almacenamiento de EBS, almacenamiento por niveles, rendimiento del almacenamiento aprovisionado, escalamiento automático y alertas de capacidad de almacenamiento) Totalmente administrado por MSK
Instancias compatibles T3, M5, M7g M7g
Consideraciones sobre el tamaño y la escala Rendimiento, conexiones, particiones, almacenamiento Rendimiento, conexiones, particiones
Ajuste del número de agentes Escalamiento vertical y horizontal Escalamiento vertical y horizontal
Versiones de Kafka Consultar la documentación Comienza en la versión 3.6
Configuración de Apache Kafka Más configurable Principalmente administrado por MSK para una mayor resiliencia
Seguridad Cifrado, acceso privado/público, autenticación y autorización: IAM, SASL/SCRAM, mTLS, texto sin formato, ACL de Kafka Cifrado, acceso privado/público, autenticación y autorización: IAM, SASL/SCRAM, mTLS, texto sin formato, ACL de Kafka
Supervisión CloudWatch, monitoreo abierto CloudWatch, monitoreo abierto
     
     

Sí, Amazon MSK admite instancias M7g basadas en AWS Graviton3 de tamaños de .large a .16xlarge para ejecutar todas las cargas de trabajo de Apache Kafka. Las instancias de Graviton ofrecen las mismas ventajas de disponibilidad y durabilidad que las de Amazon MSK, con costos hasta un 24 % más bajos en comparación con las instancias M5 correspondientes. Las instancias de Graviton proporcionan hasta un 29 % más de rendimiento por instancia en comparación con las instancias M5 de Amazon MSK, lo que permite a los clientes ejecutar clústeres de MSK con menos agentes o instancias de menor tamaño.

Agentes estándar

Los agentes estándar de MSK Provisioned ofrecen la mayor flexibilidad para configurar el rendimiento del clúster. Puede elegir entre una amplia gama de configuraciones de clústeres para lograr las características de disponibilidad, durabilidad, rendimiento y latencia requeridas para sus aplicaciones. También puede aprovisionar la capacidad de almacenamiento e incrementarla cuando sea necesario. Amazon MSK se encarga del mantenimiento del hardware de los agentes estándar y los recursos de almacenamiento adjuntos, reparando automáticamente los problemas de hardware que puedan surgir.

Agentes express

Los agentes express para MSK Provisioned hacen que Apache Kafka sea más fácil de administrar, más rentable de ejecutar a escala y más elástico con la baja latencia esperada. Los agentes incluyen un almacenamiento de pago por uso que se escala automáticamente y no requiere dimensionamiento, aprovisionamiento ni supervisión proactiva. Según el tamaño de instancia seleccionado, cada nodo de agente puede proporcionar hasta 3 veces más rendimiento por agente, escalar verticalmente hasta 20 veces más rápido y recuperarse un 90 % más rápido en comparación con los agentes estándar de Apache Kafka. Los agentes express vienen preconfigurados con las prácticas recomendadas por defecto de Amazon MSK y aplican cuotas de rendimiento de los clientes para minimizar la contención de recursos entre los clientes y las operaciones en segundo plano de Kafka.

  • Sin administración del almacenamiento: los agentes express eliminan la necesidad de aprovisionar o administrar cualquier recurso de almacenamiento. Obtiene un almacenamiento elástico, prácticamente ilimitado, de pago por uso y totalmente administrado. En los casos de uso de alto rendimiento, no es necesario razonar sobre las interacciones entre las instancias de procesamiento y los volúmenes de almacenamiento ni sobre los cuellos de botella de rendimiento asociados. Estas capacidades simplifican la administración de clústeres y eliminan la sobrecarga operativa de la administración del almacenamiento.
  • Escalamiento más rápido: los agentes express le permiten escalar su clúster y mover particiones más rápido que en los agentes estándar. Esta capacidad es crucial cuando necesita escalar horizontalmente su clúster para gestionar los próximos picos de carga o reducir horizontalmente su clúster para reducir los costos. Consulte las secciones sobre la expansión de su clúster, la eliminación de agentes, la reasignación de particiones y la configuración del control de velocidad de LinkedIn para reequilibrarlo para obtener más información sobre cómo escalar su clúster.
  • Mayor rendimiento: los agentes express ofrecen hasta 3 veces más rendimiento por agente que los agentes estándar. Por ejemplo, puede escribir datos de forma segura a una velocidad de hasta 500 MBps con cada intermediario express de tamaño m7g.16xlarge, en comparación con los 153,8 MBps del bróker estándar equivalente (ambos números suponen una asignación de ancho de banda suficiente para las operaciones en segundo plano, como la replicación y el reequilibrio).
  • Configurado para una alta resiliencia: los agentes express ofrecen automáticamente varias prácticas recomendadas preconfiguradas para mejorar la resiliencia de su clúster. Estas incluyen barreras de protección en las configuraciones críticas de Apache Kafka, las cuotas de rendimiento y la reserva de capacidad para operaciones en segundo plano y reparaciones no planificadas. Estas capacidades hacen que sea más seguro y sencillo ejecutar aplicaciones Apache Kafka a gran escala. Consulte las secciones sobre configuraciones de agentes de Express y cuotas de agentes de Amazon MSK Express para obtener más información.
  • Sin ventanas de mantenimiento: no hay ventanas de mantenimiento para los agentes express. Amazon MSK actualiza automáticamente el hardware del clúster de forma continua. Consulte los agentes de Amazon MSK Express para obtener más información.

Los agentes express proporcionan un mayor rendimiento por agente, por lo que puede crear clústeres con menos agentes para la misma carga de trabajo. Además, una vez que el clúster esté en funcionamiento, puede supervisar el uso de los recursos del clúster y ajustar el tamaño de la capacidad con mayor rapidez que con los agentes estándar. Por lo tanto, puede aprovisionar recursos que se ajusten a la capacidad que necesita y escalar más rápido para satisfacer cualquier cambio en la demanda.

Los clústeres con agentes express funcionan con las API y herramientas de Apache Kafka que utilizan el cliente Apache Kafka estándar.

Los agentes express vienen preconfigurados con las prácticas recomendadas predeterminadas de Amazon MSK que optimizan la disponibilidad y la durabilidad. Puede personalizar algunas de estas configuraciones para refinar aún más el rendimiento de los clústeres. Obtenga más información sobre las configuraciones de los agentes express en la Guía para desarrolladores de Amazon MSK.

Al igual que los agentes estándar, Amazon MSK se integra con AWS Key Management Service (AWS KMS) para ofrecer un cifrado transparente del lado del servidor para el almacenamiento en los agentes Express. Al crear un clúster de MSK con agentes de Express, puede especificar la clave de AWS KMS que desea que Amazon MSK utilice para cifrar los datos en reposo. Si no especifica una clave de KMS, Amazon MSK crea una clave administrada de AWS para usted y la utiliza en su nombre. Amazon MSK también usa TLS para cifrar los datos en tránsito para los agentes express, al igual que para los agentes estándar.

La mayoría de las características y capacidades de MSK Provisioned que funcionan en los agentes estándar también funcionan con clústeres que utilizan agentes express. Algunas diferencias incluyen: la administración del almacenamiento, la disponibilidad del tipo de instancia y las versiones compatibles. Consulte la tabla en la que se comparan los agentes estándar y express de MSK Provisioned y destaca algunas similitudes y diferencias clave.

Sí, puede migrar los datos de su clúster de Kafka a un clúster compuesto por agentes de Express que utilicen MirrorMaker 2 o Amazon MSK Replicator, que copia los datos y los metadatos de su clúster en un clúster nuevo. Puede obtener más información sobre el uso de MirrorMaker 2 y MSK Replicator en la Guía para desarrolladores de Amazon MSK.

Los agentes express aumentan la relación precio-rendimiento, proporcionan una mayor resiliencia y reducen los gastos operativos, lo que los convierte en la opción ideal para todas las cargas de trabajo de Apache Kafka en MSK Provisioned. Sin embargo, puede elegir tipos de agentes estándar si desea controlar más configuraciones y ajustes de sus agentes. Con los agentes estándar, puede personalizar un conjunto más amplio de configuraciones de Kafka, incluidos el factor de replicación, el tamaño de los archivos de registro y las políticas de elección de líderes, lo que le brinda más flexibilidad en la configuración de su clúster.

Amazon MSK Serverless

MSK Serverless es un tipo de clúster para Amazon MSK que le facilita la ejecución de los clústeres de Apache Kafka sin tener que administrar la capacidad informática ni de almacenamiento. Con MSK Serverless puede ejecutar sus aplicaciones sin tener que aprovisionar, configurar ni optimizar clústeres, y solo pagará el volumen de datos que transmita o retenga. 

Sí, MSK Serverless administra completamente las particiones, lo que incluye monitorearlas y migrarlas para emparejar la carga en el clúster.

MSK Serverless proporciona hasta 200 MBps de capacidad de escritura y 400 MBps de capacidad de lectura por clúster. Además, para garantizar que haya suficiente disponibilidad de rendimiento para todas las particiones en un clúster, MSK Serverless asigna hasta 5 MBps de capacidad de escritura instantánea y 10 MBps de capacidad de lectura instantánea por partición. 

MSK Serverless cifra todo el tráfico en tránsito y todos los datos en reposo gracias a las claves administradas por servicios que emite AWS KMS. Los clientes se conectan a MSK Serverless mediante una conexión privada que usa AWS PrivateLink para que el tráfico no quede expuesto en una red de Internet pública. Además, MSK Serverless ofrece el control de acceso de AWS Identity and Access Management (IAM), que puede usar para administrar la autenticación y la autorización de los clientes a los recursos de Apache Kafka, como los temas.

Cuando crea un clúster de MSK Serverless, puede proporcionar subredes de una o más nubes de Amazon Virtual Private Cloud (Amazon VPC) que alojen a los clientes del clúster. Los clientes alojados en cualquiera de estas VPC de Amazon pueden conectarse al clúster MSK Serverless mediante su cadena de agente de arranque.

Para ver la disponibilidad regional actualizada, consulte la página de precios de Amazon MSK.

MSK Serverless admite actualmente IAM (gestión de acceso a la identidad) para la autenticación y autorización de clientes. Sus clientes pueden asumir un rol de IAM para la autenticación y usted puede imponer el control de acceso mediante la utilización de una política de IAM asociada.

Puede utilizar cualquier herramienta compatible con Apache Kafka para procesar datos en sus temas de clúster MSK Serverless. MSK Serverless se integra con Amazon Managed Service para Apache Flink para el procesamiento de transmisiones con estado y AWS Lambda para el procesamiento de eventos. También puede utilizar los conectores receptores de Apache Kafka Connect para enviar los datos a cualquier destino deseado. 

Cuando se crea una partición, MSK Serverless crea dos réplicas y las coloca en diferentes zonas de disponibilidad. Además, MSK Serverless detecta y recupera automáticamente los recursos backend fallidos para mantener alta disponibilidad.

Migración a Amazon MSK

Sí, puede usar herramientas de terceros o de código abierto como MirrorMaker2, compatible con Apache Kafka, para replicar datos de clústeres en un clúster de MSK. Consulte este laboratorio de migración de Amazon MSK para planificar la migración.

Versiones compatibles

Sí, Amazon MSK admite actualizaciones in situ de versiones de Apache Kafka completamente administradas para los clústeres aprovisionados. Para obtener más información sobre cómo actualizar su versión de Apache Kafka y las prácticas recomendadas de alta disponibilidad, consulte la documentación de actualizaciones de versión.

Todas las versiones de Apache Kafka son compatibles hasta que lleguen a la fecha de finalización del soporte. Para obtener más información sobre la política de finalización del soporte y las fechas, consulte nuestra documentación de soporte de versiones.

Redes

Sí, Amazon MSK siempre se ejecuta en una nube de Amazon VPC cuya administración está a cargo del servicio Amazon MSK. Los recursos de Amazon MSK estarán disponibles para su propia nube de Amazon VPC, la subred y el grupo de seguridad que seleccione al momento de configurar el clúster. Las direcciones IP de su VPC se adjuntan a sus recursos de Amazon MSK a través de ENI y todo el tráfico de red permanece dentro de la red de AWS. De forma predeterminada, no es posible acceder a él mediante Internet.

Los agentes de su clúster estarán disponibles para los clientes de su VPC a través de los ENI que aparecen en su cuenta. Los grupos de seguridad de las interfaces de red elástica determinarán la fuente y el tipo de tráfico de ingreso y egreso permitido en los agentes.

Sí, Amazon MSK ofrece una opción para conectarse de forma segura por Internet a los agentes de los clústeres de Amazon MSK que ejecutan Apache Kafka 2.6.0 o versiones posteriores. Al habilitar el acceso público, los clientes autorizados externos a una nube privada de Amazon VPC pueden transmitir datos cifrados desde y hacia clústeres de Amazon MSK específicos. Puede habilitar el acceso público a clústeres de MSK después de haber creado uno sin costo adicional, pero se aplican los costos de transferencia de datos de AWS estándar para solicitudes de entrada y salida de clústeres. Para más información sobre cómo activar el acceso público, consulte la documentación sobre el acceso público.

De forma predeterminada, la única manera de generar y consumir datos a partir de un clúster de Amazon MSK es a través de una conexión privada entre los clientes en su VPC y el clúster de Amazon MSK. Sin embargo, si activa el acceso público a su clúster de MSK y se conecta a él mediante la cadena pública de agente de arranque, la conexión (aunque esté autenticada, autorizada y cifrada) ya no se considerará privada. Le recomendamos que configure los grupos de seguridad del clúster para tener reglas TCP de entrada que permitan el acceso público desde su dirección IP de confianza y que haga que estas reglas sean lo más restrictivas posibles en caso de que active el acceso público.

Puede conectarse a su clúster de MSK desde cualquier VPC o cuenta de AWS que no sea la de su clúster de MSK de su VPC de Amazon al activar la conectividad privada de múltiples VPC para los clústeres de MSK que ejecuten Apache Kafka 2.7.1 o versiones posteriores. Solo puede activar la conectividad privada después de crear el clúster para cualquiera de los esquemas de autenticación compatibles (autenticación de IAM, SASL SCRAM y autenticación de mTLS). Debe configurar sus clientes para que se conecten de forma privada al clúster mediante conexiones de VPC administradas por Amazon MSK que utilizan la tecnología PrivateLink para habilitar la conectividad privada. Para obtener más información sobre la configuración de la conectividad privada, consulte la documentación de Acceso desde AWS.

Cifrado

Sí, Amazon MSK usa el cifrado del lado del servidor de Amazon Elastic Block Store (Amazon EBS) y las claves de AWS KMS para cifrar los volúmenes de almacenamiento.

Sí, de forma predeterminada, los clústeres nuevos tienen el cifrado en tránsito habilitado mediante TLS para la comunicación entre agentes. En el caso de los clústeres aprovisionados, puede optar por no usar el cifrado en tránsito cuando se crea un clúster.

Sí, de forma predeterminada, el cifrado en tránsito está configurado en TLS únicamente para los clústeres creados a partir de la CLI de AWS o la consola de administración de AWS. Se requiere configuración adicional para que los clientes logren comunicarse con los clústeres que usan el cifrado TLS. Para los clústeres aprovisionados, puede cambiar la configuración de cifrado predeterminada seleccionando la configuración de texto no cifrado o TLS/texto no cifrado. Obtenga más información sobre el cifrado de Amazon MSK.

Sí, los clústeres de MSK admiten el cifrado TLS en tránsito entre los intermediarios de Kafka y los nodos de metadatos.

Access Management

Para los clústeres sin servidor, puede utilizar el control de acceso de IAM para confirmar la autenticación y la autorización. Para los clústeres aprovisionados, tiene las siguientes opciones:

  • Control de acceso de IAM para Authn/Authz (recomendado)
  • Autenticación con certificado TLS para AuthN y listas de control de acceso para AuthZ
  • SASL/SCRAM para AuthN y listas de control de acceso para AuthZ

Amazon MSK recomienda utilizar el control de acceso de IAM. Es la opción más fácil de utilizar y, dado que tiene el acceso con privilegio mínimo de forma predeterminada, es la opción más segura.

Si utiliza IAM Access Control, Amazon MSK utiliza las políticas que usted escribe y su propio autorizador para autorizar acciones. Si utiliza la autenticación de certificados TLS o SASL/SCRAM, Apache Kafka utiliza listas de control de acceso (ACL) para la autorización. Para habilitar las ACL, debe habilitar la autenticación del cliente mediante certificados TLS o SASL/SCRAM.

Si utiliza el control de acceso IAM, Amazon MSK autenticará y autorizará en su nombre sin necesidad de ninguna configuración adicional. Si utiliza la autenticación TLS, puede usar el nombre D de los certificados TLS de los clientes como principal de la ACL para autorizar las solicitudes de los clientes. Si utiliza SASL/SCRAM, puede utilizar el nombre de usuario como principal de la ACL para autorizar las solicitudes de los clientes.

Puede controlar las acciones de la API de servicio mediante IAM.

Sí, puede habilitar el control de acceso de IAM para un clúster existente desde la consola de administración de AWS o mediante la API UpdateSecurity.

No, el control de acceso de IAM solo está disponible para los clústeres de MSK.

Puede adjuntar una política de clústeres a su clúster de Amazon MSK para proporcionar a sus cuentas múltiples permisos de cliente de Kafka a fin de configurar la conectividad privada con su clúster de Amazon MSK. Al utilizar la autenticación de clientes de IAM, también puede utilizar la política de clústeres para definir de forma detallada los permisos del plano de datos de Kafka para el cliente que se conecta. Para obtener más información sobre las políticas de clústeres, consulte la documentación de políticas de clústeres.

Supervisión, métricas, registro y etiquetado

Puede monitorear el rendimiento de sus clústeres mediante el uso de la consola de Amazon MSK o la consola de Amazon CloudWatch o a través de JMX y métricas de alojamiento con Open Monitoring with Prometheus, una solución de monitoreo de código abierto.

El costo del monitoreo de su clúster con CloudWatch depende del nivel de monitoreo y del tamaño del clúster de Apache Kafka. CloudWatch cobra por métrica al mes e incluye un nivel gratuito de AWS. Para obtener más información, consulte los precios de Amazon CloudWatch. Para obtener detalles sobre el número de métricas expuestas para cada nivel de monitoreo, consulte la documentación sobre el monitoreo de Amazon MSK.

Las herramientas que están diseñadas para hacer lecturas a partir de exportadores de Prometheus son compatibles con Open Monitoring, como Datadog, Lenses, New Relic, Sumo Logic o un servidor de Prometheus. Si desea obtener más detalles sobre Open Monitoring, consulte la documentación sobre Amazon MSK Open Monitoring.

Puede usar cualquier monitoreo del lado del cliente compatible con la versión de Apache Kafka que esté usando. 

Sí, es posible etiquetar los clústeres de Amazon MSK mediante la CLI o la consola de administración de AWS.

Las métricas de retraso del consumidor a nivel del tema se encuentran disponibles como parte del conjunto predeterminado de métricas que Amazon MSK publica en CloudWatch para todos los clústeres. No es necesario realizar configuraciones adicionales para obtener estas métricas.

Las métricas a nivel del tema se incluyen en el conjunto predeterminado de métricas de Amazon MSK, las cuales son gratuitas. Las métricas a nivel de la partición se cobran de acuerdo con los precios de Amazon CloudWatch.

Puede habilitar la entrega de los registros de los agentes para los clústeres aprovisionados. Puede entregar los registros de los agentes a registros de Amazon CloudWatch, Amazon Simple Storage Service (Amazon S3) y Amazon Data Firehose. Firehose es compatible con Amazon OpenSearch Service, entre otros destinos. Para aprender cómo habilitar esta característica, visite la documentación de registro de Amazon MSK. Para obtener información sobre los precios, consulte las páginas de precios de registros de Amazon CloudWatch y Amazon Data Firehose.

Amazon MSK ofrece registros de nivel INFO para todos los agentes dentro del clúster aprovisionado.

Sí, si utiliza el control de acceso de IAM, el uso de las API de recursos de Apache Kafka se registra en AWS CloudTrail.

Administración de metadatos

De https://zookeeper.apache.org: “Apache ZooKeeper es un servicio centralizado que le permite mantener la información de configuración, los nombres, proporcionar sincronización distribuida y prestar servicios grupales. Las aplicaciones distribuidas utilizan de alguna u otra forma todos estos tipos de servicios", incluido Apache Kafka.

Sí, Amazon MSK usa Apache ZooKeeper para la administración de metadatos. Además, a partir de la versión 3.7 de Apache Kafka, se pueden crear clústeres en modo ZooKeeper o en modo KRaft. Un clúster creado con el modo KRaft usa controladores KRaft para la administración de metadatos en lugar de nodos de ZooKeeper.

Apache KRaft es el protocolo de consenso que traslada la administración de metadatos en los clústeres de Kafka de nodos externos de Apache ZooKeeper a un grupo de controladores dentro de Kafka. Este cambio permite almacenar y replicar los metadatos como temas en los agentes de Kafka, lo que se traduce en una propagación más rápida de los metadatos. Para obtener más información, consulte nuestra documentación de Apache KRraft.

No se requieren cambios en la API para usar el modo Kraft en Amazon MSK. Sin embargo, si sus clientes siguen usando la cadena de conexión --zookeeper en la actualidad, debe actualizarlos para que usen la cadena de conexión --bootstrap-server para conectarse a su clúster y realizar acciones de administración. La marca --zookeeper está obsoleta en la versión 2.5 de Apache Kafka y se elimina a partir de Kafka 3.0. Por lo tanto, le recomendamos que utilice versiones recientes del cliente Apache Kafka y la cadena de conexión --bootstrap-server.

Debe comprobar que las herramientas que utiliza son capaces de utilizar las API de administración de Kafka sin conexiones ZooKeeper. Consulte nuestra documentación actualizada sobre el uso del control de velocidad para clústeres en modo KRaft. Cruise Control también publicó los pasos que se deben seguir para poner en marcha Kafka sin conexión a ZooKeeper.

La cantidad de particiones por agente es la misma en los clústeres basados en KRaft y ZooKeeper. Sin embargo, Kraft le permite hospedar más particiones por clúster al aprovisionar más agentes en un clúster.

Integraciones

Amazon MSK se integra con los siguientes servicios de AWS:

Amazon MSK Serverless se integra con los siguientes servicios de AWS:

  • Amazon S3 usa Firehose para entregar datos a Amazon S3 desde MSK sin necesidad de código
  • Amazon VPC para el aislamiento y la seguridad de la red
  • Amazon CloudWatch para métricas
  • IAM para la autenticación y la autorización de Apache Kafka y las API de servicios
  • AWS Glue Schema Registry para controlar la evolución de los esquemas utilizados por las aplicaciones de Apache Kafka
  • AWS CloudTrail para registros de API de AWS
  • AWS PrivateLink para la conectividad privada

Replicación

Amazon MSK Replicator es una característica de Amazon MSK que ayuda a los clientes a replicar datos de forma fiable en clústeres de MSK en diferentes regiones de AWS (replicación entre regiones) o dentro de la misma región de AWS (replicación en la misma región), sin necesidad de escribir código ni administrar la infraestructura. Puede utilizar la replicación entre regiones para crear aplicaciones de streaming multirregionales de alta disponibilidad y tolerantes a errores a fin de aumentar la resiliencia. También puede usar la replicación entre regiones para proporcionar un acceso de menor latencia a los consumidores de diferentes regiones geográficas. Puede usar la replicación en la misma región para distribuir datos de un clúster a varios clústeres para compartir datos con sus socios y equipos. También puede usar la replicación en la misma región para agregar datos de varios clústeres en uno solo para el análisis.

Para configurar la replicación entre un par de clústeres de MSK de origen y de destino, debe crear un replicador en la región de destino. Para crear un replicador, debe especificar detalles que incluyen el nombre de recurso de Amazon (ARN) de los clústeres de MSK de origen y destino y un rol de IAM que MSK Replicator puede utilizar para acceder a los clústeres. Deberá crear el clúster de MSK de destino si aún no existe.

MSK Replicator solo admite la replicación en clústeres de MSK. Se admiten clústeres MSK de tipos aprovisionados y sin servidor. También puede usar MSK Replicator para pasar de aprovisionado a sin servidor o viceversa con otros clústeres de Kafka que no sean compatibles.

Sí, puede especificar qué temas desea replicar mediante listas de temas permitidos y rechazados al crear el replicador. 

Sí, MSK Replicator replica de forma automática los metadatos de Kafka necesarios, como la configuración de los temas, las ACL y los desplazamientos de los grupos de consumidores, de modo que las aplicaciones consumidoras puedan reanudar el procesamiento sin problemas tras la conmutación por error. Puede optar por desactivar una o más de estas configuraciones si solo desea replicar los datos. También puede especificar qué grupos de consumidores desea replicar mediante listas de temas permitidos o rechazados al crear el replicador.

No, MSK Replicator implementa, aprovisiona y escala de forma automática la infraestructura de replicación subyacente para respaldar los cambios en el rendimiento de ingreso.

No, MSK Replicator solo admite la replicación en clústeres de MSK de la misma cuenta de AWS.

Puede usar CloudWatch en la región de destino para ver las métricas de ReplicationLatency,
MessageLag y ReplicatorThroughput a nivel de tema y agregado para cada replicator sin costo adicional. Las métricas están visibles en ReplicatorName en el espacio de nombres AWS/Kafka. También puede ver las métricas “ReplicatorFailure, AuthError and ThrottleTime” para comprobar si su replicador tiene algún problema.

Puede usar MSK Replicator para configurar topologías de clústeres activa-activa o activa-pasiva a fin de aumentar la resiliencia de su aplicación Kafka en todas las regiones. En una configuración activo-activa, ambos clústeres de MSK sirven activamente lecturas y escrituras. De forma comparativa, en una configuración activa-pasiva, solo un clúster de MSK a la vez sirve activamente datos de streaming, mientras que el otro clúster está en espera.

Sí. Al crear un replicador diferente para cada par de clústeres de origen y destino, puede replicar datos de un clúster en varios clústeres o replicar datos de muchos clústeres en uno.

MSK Replicator utiliza el control de acceso de IAM para conectarse a los clústeres de origen y destino. Debe activar los clústeres de MSK de origen y destino para el control de acceso de IAM a fin de crear un replicador. Puede seguir utilizando otros métodos de autenticación, incluidos SASL/SCRAM y mTLS, al mismo tiempo para sus clientes, ya que Amazon MSK admite varios métodos de autenticación a la vez.

MSK Replicator replica los datos de forma asíncrona. La latencia de la replicación varía en función de muchos factores, como la distancia de la red entre las regiones de los clústeres de MSK, la capacidad de rendimiento de los clústeres de origen y destino y el número de particiones de los clústeres de origen y destino.

No, MSK Replicator crea nuevos temas en el clúster de destino con un prefijo generado automáticamente que se agrega al nombre del tema. Por ejemplo, MSK Replicator replicará datos en el tema desde el clúster de origen a un nuevo tema en el clúster de destino llamado “<sourceKafkaClusterAlias>.topic”. MSK Replicator lo hace para distinguir los temas que contienen datos replicados del clúster de origen de otros temas del clúster de destino y evitar que los datos se repliquen circularmente entre los clústeres. Puede encontrar el prefijo que se añadirá a los nombres de los temas del clúster de destino en el campo SourceKafkaClusterAlias mediante la API DescribeReplicator o la página de detalles del Replicador de la consola de Amazon MSK.

Sí. De manera predeterminada, al crear un replicador nuevo, comienza a replicar los datos de la punta de la transmisión (último desplazamiento) en el clúster de origen. Como alternativa, si quiere replicar los datos existentes, puede configurar un replicador nuevo para que empiece a replicar los datos desde el primer desplazamiento en las particiones temáticas del clúster de origen.

Dado que MSK Replicator actúa como consumidor de su clúster de origen, es posible que la replicación provoque que otros consumidores se vean limitados en su clúster de origen. Esto depende de la capacidad de lectura que tenga en el clúster de origen y del rendimiento de los datos que vaya a replicar. Le recomendamos que aprovisione una capacidad idéntica para los clústeres de origen y de destino y que tenga en cuenta el rendimiento de la replicación al calcular la capacidad que necesita. También puede establecer cuotas de Kafka para el replicador en los clústeres de origen y destino a fin de controlar la capacidad que puede utilizar el replicador.

Sí, puede especificar el códec de compresión que desee al crear el replicador entre None, GZIP, Snappy, LZ4 y ZSTD.

Sí, puede especificar el códec de compresión que desee al crear el replicador entre None, GZIP, Snappy, LZ4 y ZSTD.

Escalado

Puede escalar verticalmente el almacenamiento en su clúster aprovisionado que se ejecuta en agentes estándar mediante la consola de administración de AWS o la CLI de AWS. También puede crear una política de almacenamiento de escalamiento automático mediante la consola de administración de AWS o al crear una política de AWS Application Auto Scaling con la AWS CLI o las API. El almacenamiento por niveles en los agentes estándar le permite almacenar prácticamente datos ilimitados en su clúster sin tener que añadir agentes para el almacenamiento. Con los agentes express, no necesita aprovisionar ni administrar el almacenamiento, y también tiene acceso a un almacenamiento prácticamente ilimitado. En los clústeres sin servidor, el almacenamiento se escala sin inconvenientes en función del uso.

Apache Kafka almacena datos en archivos llamados “segmentos de registro”. Conforme se completa cada segmento, con base en el tamaño configurado en el nivel de tema o de clúster, se copia en el nivel de almacenamiento de bajo costo. Los datos se guardan en un almacenamiento de rendimiento optimizado durante un tiempo, o tamaño, de retención específico y después se eliminan. Existen diferentes configuraciones de límite de tiempo y tamaño para el almacenamiento de bajo costo, las cuales son mayores que en el nivel de almacenamiento principal. Si los clientes solicitan datos de segmentos almacenados en el nivel de bajo costo, el agente leerá los datos desde ahí y los usará de la misma forma como si se usaran desde el almacenamiento principal.

Sí, puede aumentar o disminuir la cantidad de agentes para los clústeres aprovisionados de MSK.

Sí, puede elegir ajustar la escala a un tipo de agente de mayor o menor tamaño en sus clústeres aprovisionados de MSK.

Se puede utilizar Cruise Control para volver a equilibrar automáticamente las particiones y controlar el calor de E/S. Consulte la documentación de Cruise Control para obtener más información. De manera alternativa, puede utilizar la API de administrador de Kafka kafka-reassign-partitions.sh para reasignar particiones entre agentes. En los clústeres sin servidor, Amazon MSK equilibra las particiones de forma automática.

Precios y disponibilidad

El precio varía en función de los recursos que crea. Para obtener más información, consulte los precios de Amazon MSK.

No, las transferencias de datos internas del clúster están incluidas en el servicio sin cargo adicional.

Para obtener información sobre las regiones en las que Amazon MSK está disponible, consulte la tabla de regiones de AWS

Con los clústeres aprovisionados, pagará los cargos por transferencia de datos de AWS estándar para los datos transferidos desde y hacia un clúster de MSK. No se cobrarán las transferencias de datos dentro del clúster en una región, incluidos los datos transferidos entre agentes y los que se transfieren entre agentes y nodos de administración de metadatos.

Con los clústeres sin servidor, pagará los cargos por transferencia de datos de AWS estándar por los datos transferidos desde o hacia otra región y por los datos transferidos hacia la Internet pública.

No, no en este momento.

Conformidad

Amazon MSK es conforme o cumple con los requisitos para los siguientes programas:

  • Cumplimiento de requisitos de HIPAA
  • PCI
  • ISO
  • SOC 1, 2 y 3

Para obtener una lista completa de los servicios y los programas de conformidad de AWS, consulte los servicios de AWS en el ámbito del programa de cumplimiento.

Acuerdo de nivel de servicio

Nuestro SLA de Amazon MSK garantiza un porcentaje de tiempo de actividad mensual de al menos el 99,9 % para Amazon MSK (incluidos MSK sin servidor y MSK Connect). 

Si los despliegues Multi-AZ en Amazon MSK tienen un porcentaje de tiempo de actividad mensual inferior al 99,9 % durante cualquier ciclo de facturación mensual, reúne los requisitos para recibir un crédito de SLA para Amazon MSK en virtud del SLA de Amazon MSK.

Para obtener más información sobre todos los términos y condiciones del SLA, así como detalles sobre cómo presentar una reclamación, consulte la página del SLA de Amazon MSK.