Aspectos generales

P. ¿Qué es Amazon MSK?
Amazon Managed Streaming para Apache Kafka (Amazon MSK) es un servicio de datos de streaming 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 de Apache 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 Apache Kafka Connect existentes a Amazon MSK, o bien crear nuevas cargas de trabajo de cero con unos pocos clics. No se aplican cargos de transferencia de datos para el tráfico interno de los clústeres y no se exigen compromisos ni pagos iniciales. Paga solo por los recursos que consume.
 
P: ¿Qué es Apache Kafka?
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. En las organizaciones, se utiliza Apache Kafka como un origen de datos para las aplicaciones con las que se analizan datos de streaming de manera constante y se reacciona a ellos. Obtenga más información sobre Apache Kafka.
 
P: ¿Qué es Apache Kafka Connect?
Apache 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.
 
P. ¿Qué son los datos de streaming?
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 continuos de datos de streaming. Obtenga más información sobre los datos de streaming.
 
P. ¿Cuáles son las principales capacidades de Apache Kafka?
Apache Kafka tiene tres capacidades clave:
  • 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 que muchos productores de datos –por ejemplo, sitios web, dispositivos de Internet de las cosas (IoT), instancias de Amazon Elastic Compute Cloud (Amazon EC2)– publiquen continuamente datos en streaming y los clasifiquen mediante temas de Apache Kafka. Varios consumidores de datos (por ejemplo, aplicaciones de machine learning, funciones de AWS Lambda o microservicios) leen de estos temas a su propio ritmo, de forma similar a una cola de mensajes o un sistema de mensajería empresarial.
  • Los consumidores procesan 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 recurre a Apache ZooKeeper para coordinar tareas de clúster y puede mantener el estado de los recursos que interactúan con un clúster de Apache Kafka.
 
P. ¿Cuándo debería usar Apache Kafka?
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.
 
P. ¿Qué hace Amazon MSK?
Amazon MSK facilita la introducción y la ejecución de versiones de código abierto de Apache Kafka en AWS con alta disponibilidad y seguridad. 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.

Con pocos clics 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 Apache ZooKeeper, 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.
 
P: ¿Qué versiones de Apache Kafka admite Amazon MSK?
Para conocer cuáles son las versiones de Apache Kafka compatibles, consulte la documentación de Amazon MSK.
 
P: ¿Las API de Apache Kafka son compatibles con Amazon MSK?
Sí, Amazon MSK admite de manera nativa todas las API de administración y plano de datos.
 
P: ¿Amazon MSK es compatible con el cliente administrativo AdminClient de Apache Kafka?
Sí.
 
P: ¿Amazon MSK admite el registro de esquemas?
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 documentación del usuario de Schema Registry para comenzar y obtener más información.
 
P: ¿Cómo puedo comenzar a utilizar clústeres M7g?
Amazon MSK ahora admite instancias M7g basadas en Graviton 3, desde tamaños “large” hasta “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 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 MSK, lo que permite a los clientes ejecutar clústeres de MSK con menos agentes o instancias de menor tamaño.

MSK sin servidor

P: ¿Qué es 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.

P: ¿MSK Serverless puede equilibrar automáticamente las particiones sin un clúster?
Sí. MSK Serverless administra completamente las particiones, lo que incluye monitorearlas y migrarlas para emparejar la carga en el clúster.

P: ¿Qué capacidad de rendimiento de datos admite MSK Serverless?
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.

P:¿ Qué características de seguridad ofrece MSK Serverless?
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 Key Management Service (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 control de acceso de IAM, que puede usar para administrar la autenticación y autorización de clientes a los recursos de Apache Kafka, como los temas.

P: ¿Cómo pueden los productores y los consumidores tener acceso a mis clústeres de MSK Serverless?
Cuando crea un clúster de MSK Serverless, puede proporcionar subredes de una o más nubes de Amazon Virtual Private Cloud (VPC) que alojen a los clientes del clúster. Los clientes alojados en cualquiera de estas VPC podrán conectarse al clúster de MSK Serverless con una cadena de agentes de arranque.

P: ¿En qué regiones está disponible MSK Serverless?
Diríjase a la página de precios de MSK para obtener información actualizada sobre la disponibilidad regional.

P: ¿Qué tipos de autenticación admite MSK Serverless?
MSK Serverless actualmente admite AWS IAM para autentificar y autorizar clientes. Sus clientes pueden asumir un rol de IAM AWS para la autenticación y usted puede imponer el control de acceso mediante la utilización de una política de IAM asociada.

P: ¿Cómo puedo procesar los datos en mi clúster MSK Serverless?
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.

P: ¿Cómo garantiza MSK Serverless la alta disponibilidad?
Cuando se crea una partición, MSK Serverless crea 2 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.

Generación y consumo de datos

P: ¿Puedo usar las API de Apache Kafka para introducir y sacar datos de Apache Kafka?
Sí, Amazon MSK es compatible con las API de productor y consumidor nativas de Apache Kafka. No es necesario modificar el código de la aplicación cuando los clientes comiencen a trabajar con clústeres dentro de Amazon MSK.

P: ¿Puedo usar Apache Kafka Connect, Apache Kafka Streams o cualquier otro componente de ecosistema de Apache Kafka con Amazon MSK?
Sí, puede usar cualquier componente que utilice las API de productor y consumidor de Apache Kafka y el cliente administrativo Admin Client de Apache Kafka. Actualmente, las herramientas que cargan archivos .jar a clústeres de Apache Kafka no son compatibles con Amazon MSK, incluidos Confluent Control Center, Confluent Auto Data Balancer y Uber uReplicator.

Migración a Amazon MSK

P: ¿Puedo migrar datos ubicados dentro de un clúster de Apache Kafka a Amazon MSK?
Sí, puede usar herramientas de terceros o herramientas de código abierto como MirrorMaker, compatible con Apache Kafka, para replicar datos de clústeres en un clúster de Amazon MSK. Aquí puede encontrar un laboratorio de migración de Amazon MSK para ayudarlo a completar una migración.

Actualizaciones de versiones

P: ¿Se admiten las actualizaciones de versiones de Apache Kafka?
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.

Clústeres

P: ¿Cómo creo el primer clúster de Amazon MSK?
Puede crear el primer clúster con unos pocos clics en la consola de administración de AWS o con los AWS SDK. En primer lugar, en la consola de Amazon MSK seleccione la región de AWS en la que desee crear el clúster de Amazon MSK. Elija un nombre para su clúster, la nube de Virtual Private Cloud (VPC) con la que desea ejecutar el clúster, y las subredes para cada zona de disponibilidad. Si está creando un clúster aprovisionado, también podrá escoger un tipo de instancia de agente, la cantidad de agentes por zona de disponibilidad y el almacenamiento por agente.
 
P: ¿Qué recursos hay dentro de un clúster?
Los clústeres aprovisionados contienen instancias de agente, almacenamiento aprovisionado y nodos de Apache ZooKeeper. Los clústeres sin servidor son un recurso en sí mismos, que abstraen todos los recursos subyacentes.
 
P: ¿Qué tipos de instancias de agente puedo aprovisionar dentro de un clúster de Amazon MSK?
Para los clústeres aprovisionados, puede elegir 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.
 
P: ¿Amazon MSK ofrece precios para instancias reservadas?
Actualmente no.
 
P: ¿Debo aprovisionar y pagar por los volúmenes de arranque de agentes?
No, cada agente que aprovisione incluirá almacenamiento para volúmenes de arranque que administra el servicio Amazon MSK.
 
P: Cuando creo un clúster de Apache Kafka, ¿los recursos subyacentes (por ej. instancias de Amazon EC2) se muestran en mi consola de EC2?
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 se mostrarán en su cuenta de EC2 porque están administrados por el servicio Amazon MSK.
 
P: ¿Qué debo aprovisionar dentro de un clúster de Amazon MSK?
Para los clústeres aprovisionados, debe aprovisionar instancias de agente y almacenamiento de agente en todos los clústeres que cree. Opcionalmente, puede aprovisionar rendimiento de almacenamiento para los volúmenes de almacenamiento, que se puede utilizar para escalar sin problemas la E/S sin tener que aprovisionar agentes adicionales. No necesita aprovisionar nodos de Apache ZooKeeper porque estos recursos están incluidos sin cargo adicional en cada clúster que cree. Para los clústeres sin servidor, solo tiene que crear un clúster como recurso.
 
P: ¿Cuál es la configuración de agente predeterminada para un clúster?
A menos que se especifique lo contrario, Amazon MSK usa los mismos valores predeterminados especificados por la versión de código abierto de Apache Kafka. La configuración predeterminada para ambos tipos de clústeres están documentadas aquí.
P. ¿Puedo aprovisionar agentes de manera desigual en las diferentes zonas de disponibilidad (p. ej., 3 en us-east-1a, 2 en us-east-1b, 1 en us-east-1c)?
No, Amazon MSK impone la práctica recomendada de equilibrar la cantidad de agentes en zonas de disponibilidad dentro de un clúster.

P: ¿Cómo funciona la replicación de datos en Amazon MSK?
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 en zonas de disponibilidad múltiples y ofrece la opción de usar una estrategia de replicación personalizada por tema. De manera predeterminada con cada opción de replicación, los agentes líderes y seguidores se implementarán y aislarán con la estrategia de replicación especificada. Por ejemplo, si selecciona una estrategia de replicación de tres agentes AZ con 1 agente por clúster AZ, Amazon MSK creará un grupo de tres agentes (un agente en tres AZ en una región) y de forma predeterminada (a menos que elija anular el tema factor de replicación) el factor de replicación del tema también será tres.

P. ¿Puedo cambiar las configuraciones de agente predeterminadas o cargar una configuración de clúster en Amazon MSK?
Sí, Amazon MSK permite crear configuraciones personalizadas y aplicarlas a los clústeres nuevos o a los ya existentes. Para obtener más información sobre las configuraciones personalizadas, consulte la documentación de configuración.

P. ¿Qué propiedades de configuración se pueden personalizar?
Las propiedades de configuración que se pueden personalizar están documentadas aquí.

P. ¿Cuál es la configuración predeterminada de un tema nuevo?
Amazon MSK usa la configuración predeterminada de Apache Kafka a menos que se especifique lo contrario aquí.

Temas

P: ¿Cómo se crean los temas?
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:

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

Redes

P: ¿Amazon MSK se ejecuta en una nube de Amazon VPC?
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 se encontrarán disponibles para la 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 interfaces de red elásticas (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.

P: ¿De qué manera los clientes podrán acceder a los agentes de un clúster de Amazon MSK desde el interior de una VPC?
Los agentes de su clúster estarán disponibles para los clientes de su VPC a través de las interfaces de red elástica 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.

P: ¿Es posible conectarme a mi clúster a través de la Internet pública?
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 Virtual Private Cloud (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.

P: ¿La conexión entre mis clientes y un clúster de Amazon MSK será privada?
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 para su clúster de Amazon MSK y se conecta a él mediante la cadena pública bootstrap-brokers, la conexión, aunque esté autenticada, autorizada y cifrada, ya no se considera 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.

Conexión con la VPC

Pregunta: ¿Cómo me conecto a mi clúster de Amazon MSK a través de Internet? 
La forma más sencilla es activar la conectividad pública por Internet con los agentes de los clústeres de MSK que ejecutan Apache Kafka 2.6.0 o versiones posteriores. Por razones de seguridad, no se puede activar el acceso público mientras se crea un clúster de MSK. Sin embargo, puede actualizar un clúster existente para hacerlo accesible al público. También puede crear un nuevo clúster y actualizarlo para que sea de acceso público. Para más información sobre cómo activar el acceso público, consulte la documentación sobre el acceso público.

Pregunta: ¿Cómo me conecto a mi clúster de Amazon MSK desde dentro de la red de AWS pero desde fuera de la Amazon VPC del clúster?
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 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 AWS 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

P: ¿Puedo cifrar datos en un clúster de Amazon MSK?
Sí, Amazon MSK usa cifrado del lado del servidor de Amazon Elastic Block Store (Amazon EBS) y claves de AWS Key Management Service (AWS KMS) para cifrar volúmenes de almacenamiento.

P. ¿Los datos se cifran en tránsito entre agentes dentro de un clúster de Amazon MSK?
Sí, de forma predeterminada, los clústeres nuevos tienen habilitado el cifrado en tránsito a través de TLS para la comunicación entre agentes. Para los clústeres aprovisionados, es posible deshabilitar el cifrado en tránsito cuando se crea un clúster.

P: ¿Los datos se cifran en tránsito entre los clientes de Apache Kafka y el servicio Amazon MSK?
Sí, de forma predeterminada, el cifrado en tránsito está configurado en TLS únicamente para los clústeres creados a partir de la CLI 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 MSK.

P: ¿Los datos se cifran en tránsito mientras se trasladan entre agentes y nodos de Apache ZooKeeper en un clúster de Amazon MSK?
Sí, los clústeres de Amazon MSK que ejecutan Apache Kafka versión 2.5.1 o posterior admiten cifrado en tránsito TLS entre agentes Apache Kafka y nodos de ZooKeeper.

Administración de acceso

P: ¿Cómo puedo controlar la autenticación del clúster y la autorización de la API de Apache Kafka?
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 tres opciones: 1) control de acceso de AWS Identity and Access Management (IAM) para AuthN/Z (recomendado); 2) autenticación de certificados TLS (CA) para AuthN y listas de control de acceso para AuthZ; y 3) 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.

P: ¿Cómo funciona la autorización en Amazon MSK?
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.

P. ¿Cómo puedo autenticar y autorizar un cliente al mismo tiempo?
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.

P: ¿Cómo puedo controlar las acciones de la API de servicio?
Puede controlar las acciones de la API de servicio mediante AWS Identity and Access Management (IAM).

P: ¿Puedo habilitar el control de acceso de IAM para un clúster existente?
Sí, puede habilitar el control de acceso de IAM para un clúster existente desde la consola de AWS o mediante la API UpdateSecurity.

P: ¿Puedo utilizar el control de acceso de IAM fuera de Amazon MSK?
No, el control de acceso de IAM solo está disponible para los clústeres de Amazon MSK.

P: ¿Cómo puedo conceder permisos de acceso entre cuentas a un cliente de Apache Kafka en una cuenta de AWS distinta de la de Amazon MSK para que se conecte de forma privada a mi clúster de Amazon 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 Apache 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 Apache 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

P: ¿Cómo puedo monitorear el rendimiento de los clústeres o los temas?
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.

P: ¿Cuál es el costo de los diferentes niveles de monitoreo de CloudWatch?
El costo del monitoreo de su clúster con Amazon CloudWatch depende del nivel de monitoreo y del tamaño del clúster de Apache Kafka. Amazon CloudWatch se cobra por métrica al mes e incluye un nivel gratuito. Para 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.

P: ¿Qué herramientas de monitoreo son compatibles con Open Monitoring with Prometheus?
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.

P: ¿Cómo puedo monitorizar el estado y el rendimiento de los clientes?
Puede usar cualquier monitoreo del lado del cliente compatible con la versión de Apache Kafka que esté usando.

P. ¿Puedo etiquetar los recursos de Amazon MSK?
Sí, es posible etiquetar los clústeres de Amazon MSK mediante la AWS Command Line Interface (AWS CLI) o la consola.

P: ¿Cómo monitoreo el retraso del consumidor?
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 Amazon CloudWatch para todos los clústeres. No es necesario realizar configuraciones adicionales para obtener estas métricas. Para los clústeres aprovisionados, también puede obtener las métricas de retraso del consumidor a nivel de la partición (dimensión de la partición). Para hacerlo, habilite el monitoreo mejorado (PER_PARTITION_PER_TOPIC) en el clúster. De manera alternativa, puede habilitar Open Monitoring en el clúster y usar un servidor de Prometheus para capturar métricas de nivel de partición de los agentes en el clúster. Las métricas de retraso del consumidor están disponibles en el puerto 11001, como las otras métricas de Apache Kafka.

P: ¿Cuánto cuesta publicar las métricas de retraso del consumidor en Amazon CloudWatch?
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.

P: ¿Cómo accedo a los registros de los agentes de Apache Kafka?
Puede habilitar la entrega de los registros de los agentes para los clústeres aprovisionados. Puede entregar registros de los agentes a Amazon CloudWatch Logs, a Amazon Simple Storage Service (S3) y a Amazon Kinesis Data Firehose. Kinesis Data 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 más información sobre los precios, diríjase a las páginas de precios de CloudWatch Logs y Kinesis Data Firehose.

P: ¿Cuál es el nivel de registro para los registros de los agentes?
Amazon MSK ofrece registros de nivel INFO para todos los agentes dentro del clúster aprovisionado.

P: ¿Cómo accedo a los registros de Apache ZooKeeper?
Puede solicitar los registros de Apache ZooKeeper mediante un tique de admisión.

P: ¿Puedo registrar el uso de las API de recursos de Apache Kafka, como la creación de temas?
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

P: ¿Qué es Apache ZooKeeper?
De https://zookeeper.apache.org: “Apache ZooKeeper es un servicio centralizado para tareas de mantenimiento de información de configuración, asignación de nombres, aprovisionamiento de sincronización distribuida y suministro de servicios de grupos. Las aplicaciones distribuidas utilizan de alguna u otra forma todos estos tipos de servicios", incluido Apache Kafka.

P: ¿Amazon MSK usa Apache ZooKeeper?
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.

P: ¿Qué es KRaft?
KRaft (Apache Kafka Raft) es el protocolo de consenso que traslada la administración de metadatos en los clústeres de Apache Kafka de nodos externos de Apache ZooKeeper a un grupo de controladores dentro de Apache Kafka. Este cambio permite almacenar y replicar los metadatos como temas en los agentes de Apache Kafka, lo que se traduce en una propagación más rápida de los metadatos. Consulte nuestra guía del desarrollador.

P: ¿Se requiere algún cambio en la API para usar el modo KRaft en Amazon MSK en comparación con el modo ZooKeeper?
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 Apache Kafka 3.0. Por lo tanto, le recomendamos que utilice versiones recientes del cliente Apache Kafka y la cadena de conexión --bootstrap-server.

P: Tengo herramientas que se conectan a ZooKeeper; ¿cómo funcionarán para los clústeres de KRaft sin ZooKeeper?
Debe comprobar que las herramientas que utiliza son capaces de utilizar las API de administración de Apache Kafka sin conexiones ZooKeeper. Por ejemplo, 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 Apache Kafka sin conexión a ZooKeeper.

P: ¿Puedo alojar más particiones por agente en clústeres basados en KRaft que en clústeres basados en 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

P: ¿A qué servicios de AWS se integra Amazon MSK?
Amazon MSK se integra a los siguientes servicios:

 

Amazon MSK sin servidor se integra a los siguientes servicios:
  • Amazon S3, que utiliza Kinesis Data Firehose para entregar datos a Amazon S3 desde MSK de manera sencilla y sin código
  • Amazon VPC para el aislamiento y la seguridad de la red
  • Amazon CloudWatch para métricas
  • Amazon 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

Escalado

P. ¿Cómo puedo escalar verticalmente el almacenamiento en mi clúster?
Puede escalar verticalmente el almacenamiento de los clústeres aprovisionados mediante la consola de administración de AWS o la AWS CLI. También puede usar almacenamiento por niveles para almacenar virtualmente datos en el clúster sin la necesidad de agregar agentes de almacenamiento. En los clústeres sin servidor, el almacenamiento se escala sin inconvenientes en función del uso.
 
P: ¿Cómo funciona el almacenamiento por niveles?
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 serán 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.

P: ¿Cómo puedo expandir automáticamente el almacenamiento en mi clúster? 
Puede crear una política de almacenamiento de escalado 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.
 
P: ¿Puedo escalar el número de agentes en un clúster existente?
Sí. Puede aumentar o disminuir la cantidad de agentes para los clústeres aprovisionados de Amazon MSK.

P: ¿Puedo escalar el tamaño de los agentes en un clúster existente?
Sí. Puede elegir ajustar la escala a un tipo de agente de mayor o menor tamaño en sus clústeres de Amazon MSK aprovisionados.

P: ¿Cómo equilibro las particiones entre agentes?
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 Apache 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

P: ¿Cuál es el esquema de precios de Amazon MSK?
El precio varía en función de los recursos que crea. Obtenga más información en nuestra página de precios.

P: ¿Debo pagar la transferencia de datos como resultado de la replicación de datos?
No, todas las transferencias de datos internas del clúster están incluidas en el servicio sin cargo adicional.

P: ¿En qué regiones de AWS está disponible Amazon MSK?
La disponibilidad por región de Amazon MSK está documentada aquí. 

P: ¿Cuál es el esquema de precios de las transferencias de datos?
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 Amazon 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 Apache ZooKeeper.

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.

Conformidad

P: ¿Qué programas de conformidad están en el ámbito para Amazon MSK?
Amazon MSK es conforme o cumple con los requisitos para los siguientes programas:

  • Cumplimiento de requisitos de HIPAA
  • PCI
  • ISO
  • SOC 1, 2, 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 conformidad.

Acuerdo de nivel de servicios

P: ¿Qué garantiza el acuerdo de nivel de servicio (SLA) de Amazon MSK?
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).
 
P: ¿Cómo sé si reúno los requisitos para recibir un crédito de servicio de SLA?
Tendrá derecho a un crédito de SLA para Amazon MSK de acuerdo con el SLA de Amazon MSK si las implementaciones Multi-AZ en Amazon MSK tienen un porcentaje de tiempo de funcionamiento mensual inferior al 99,9 % durante cualquier ciclo de facturación mensual.
 
Para obtener detalles completos sobre los términos y las condiciones del SLA, así como detalles sobre cómo enviar un reclamo, consulte la página de detalles del SLA de Amazon MSK.

Replicación

P: ¿Qué es Amazon MSK Replicator?
Amazon MSK Replicator es una característica de Amazon MSK que permite a los clientes replicar datos de forma fiable en los clústeres de Amazon MSK en distintas 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 (CRR) para crear aplicaciones de streaming multirregionales de alta disponibilidad y tolerantes a errores para aumentar la resiliencia. También puede usar la CRR para proporcionar un acceso de menor latencia a los consumidores de diferentes regiones geográficas. Puede usar SRR para distribuir datos de un clúster a varios clústeres para compartir datos con sus socios y equipos. También puede usar SRR o CRR para agregar datos de varios clústeres en uno solo con fines de análisis.

P: ¿Cómo uso MSK Replicator?
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 AWS 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 AWS Identity and Access Management (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. También tiene la opción de configurar ajustes adicionales, como la configuración del nombre del tema y la posición inicial de Replicator.

P: ¿Qué tipos de clústeres de Kafka son compatibles con MSK Replicator?
MSK Replicator solo admite la replicación en clústeres de MSK. Se admiten clústeres MSK de tipo aprovisionados y sin servidor. También puede usar MSK Replicator para pasar de aprovisionado a sin servidor o viceversa. No se admiten otros clústeres de Kafka.

P: ¿Puedo especificar qué temas deseo replicar?
Sí, puede especificar qué temas desea replicar mediante listas de temas permitidos y rechazados al crear el replicador.

P: ¿MSK Replicator replica la configuración de los temas y los desplazamientos de los grupos de consumidores?
Sí. MSK Replicator replica de forma automática los metadatos de Kafka necesarios, como la configuración de los temas, las listas de control de acceso (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.

P: ¿Necesito escalar la replicación cuando cambia mi rendimiento de entrada?
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.

P: ¿Puedo replicar datos en clústeres de MSK en distintas cuentas de AWS?
No, MSK Replicator solo admite la replicación en clústeres de MSK de la misma cuenta de AWS.

P: ¿Cómo puedo monitorear la replicación?
Puede usar Amazon CloudWatch en la región de destino para ver las métricas de “ReplicationLatency, MessageLag, and ReplicatorThroughput” a nivel temático y agregado para cada Replicador sin costo adicional. Las métricas serían 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.

P: ¿Puedo usar MSK Replicator para replicar datos de un clúster a varios clústeres o replicar datos de varios clústeres a uno?
Sí. Solo tiene que crear un replicador diferente para cada par de clústeres de origen y destino.

P: ¿Cómo se conecta MSK Replicator a los clústeres de MSK de origen y destino?
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.

P: ¿Cuánta latencia de replicación debo esperar con MSK Replicator?
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 AWS 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. Si tiene una latencia alta, siga nuestra guía de solución de problemas.

P: ¿Puedo mantener los nombres de los temas iguales con MSK Replicator?
Sí. MSK Replicator le permite seleccionar una configuración de nombre de tema entre “prefijo” e “idéntica” al crear un nuevo Replicator. De forma predeterminada, 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 “tema” desde el clúster de origen a un nuevo tema en el clúster de destino llamado “<sourceKafkaClusterAlias>.topic”. Puede encontrar el prefijo que se agregará 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 en la consola de MSK. Si desea replicar los temas en el clúster de destino conservando los nombres originales, simplemente defina la configuración del nombre del tema en “idéntica”.

P: ¿Por qué debo usar una configuración de nombre de tema “idéntica”?
Debe usar una configuración de nombre de tema idéntica para simplificar la creación de arquitecturas de datos de streaming resilientes y de alta disponibilidad en todas las regiones de AWS. Al replicar los temas de Kafka en otros clústeres de Amazon MSK y conservar los nombres de los temas originales, esta configuración reduce la necesidad de reconfigurar las aplicaciones cliente durante los eventos de configuración de replicación o conmutación por error. Esto facilita el establecimiento de configuraciones de clústeres activo-pasivos que abarquen varias regiones para aumentar la resiliencia y la disponibilidad. También optimiza los casos de uso, como la agregación de datos entre clústeres, las migraciones entre clústeres de MSK y la distribución de datos a geografías múltiples. No debe usar esta configuración si sus clientes no pueden procesar datos cuando se agregan metadatos adicionales a los encabezados de sus registros de Kafka.

P: ¿Existe el riesgo de que se produzcan bucles de replicación infinitos con una configuración de nombre de tema “idéntica”?
No. MSK Replicator evita de forma automática que los registros se repliquen al tema de Kafka en el que se originaron, lo que evita los bucles de replicación infinitos. Para lograrlo, como parte de la replicación, MSK Replicator agrega metadatos a los encabezados de sus registros.

P: ¿Puedo actualizar mi Replicador actual para usar una configuración de nombre de tema idéntica?
No. La configuración del nombre del tema no se puede cambiar una vez creado un Replicador.

P: ¿Cómo puedo usar la replicación para aumentar la resiliencia de mi aplicación de streaming en todas las regiones?
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. Le recomendamos que use una configuración de nombre de tema “idéntica” para la configuración activa-pasiva y una configuración de “prefijo” para la configuración activa-activa. Sin embargo, si utiliza la configuración de “prefijo”, tendrá que volver a configurar a sus consumidores para que lean los temas replicados. Si desea evitar la reconfiguración de sus clientes, también puede usar una configuración “idéntica” para la configuración activa-activa. Sin embargo, pagará cargos adicionales de procesamiento y transferencia de datos por cada Replicador, ya que cada Replicador tendrá que procesar el doble de la cantidad habitual de datos, uno para la replicación y otro para evitar bucles infinitos.

P: ¿Qué versiones de Kafka admiten la configuración de nombres de temas idénticos?
Es compatible con todos los clústeres de MSK que se ejecuten en las versiones 2.8.1 y superiores de Kafka.

P: ¿Puedo replicar los datos existentes en el clúster de origen?
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.

P: ¿La replicación puede provocar una limitación de los consumidores en el 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.

P: ¿Puedo comprimir los datos antes de escribirlos en el clúster de destino?
Sí, puede especificar el códec de compresión que desee al crear el replicador entre None, GZIP, Snappy, LZ4 y ZSTD.

Introducción a Amazon MSK

Calcule sus costos
Calcule sus costos

Visite la página de precios de Amazon MSK.

Read the documentation
Consulte la guía de introducción

Aprenda cómo configurar el clúster de Apache Kafka en Amazon MSK en esta guía paso a paso.

Ejecute su cl&uacute;ster de Apache Kafka
Ejecute su clúster de Apache Kafka

Comience a ejecutar su clúster de Apache Kafka en Amazon MSK. Inicie sesión en la consola de Amazon MSK.