Aspectos generales

P: ¿Qué es Amazon MSK?
Amazon Managed Streaming for Kafka (Amazon MSK) es un nuevo servicio de AWS para datos de streaming que administra la infraestructura y las operaciones de Apache Kafka a fin de facilitar a los desarrolladores y gerentes de DevOps la ejecución de aplicaciones que usen Apache Kafka en AWS sin necesidad de convertirse en expertos en el uso de clústeres de Apache Kafka. Amazon MSK es ideal para ejecutar en AWS aplicaciones nuevas o existentes que usen Apache Kafka. Amazon MSK opera y mantiene clústeres de Apache Kafka, provee características de seguridad de nivel empresarial listas para usar y cuenta con integraciones incorporadas con AWS que agilizan el desarrollo de aplicaciones de datos de streaming. Para empezar, puede migrar cargas de trabajo de Apache Kafka existentes a Amazon MSK, o bien crear cargas nuevas de cero y en cuestión de minutos 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 y alto rendimiento, escalable y tolerante a errores para crear 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 usan Apache Kafka como origen de datos para las aplicaciones que analizan datos de streaming y reaccionan ante ellos de manera constante.
 
P: ¿Qué son los datos de streaming?
Los datos de streaming son una transmisión continua de pequeños registros (el tamaño de un registro normalmente es de unos pocos kilobytes) generada por miles de máquinas, dispositivos, sitios web y aplicaciones. Los datos de streaming incluyen diversos tipos de datos, como archivos de registros generados por los clientes que utilizan sus aplicaciones móviles o web, compras electrónicas, actividades de los jugadores en un videojuego, información de redes sociales, operaciones bursátiles, servicios geoespaciales y telemetría de dispositivos conectados o instrumentación en centros de datos. Los servicios de datos de streaming como Amazon Managed Streaming for Kafka y Amazon Kinesis Data Streams facilitan la recopilación, el procesamiento y la entrega continuos de datos de streaming.
 
P: ¿Cuáles son las principales capacidades de Apache Kafka?
Apache Kafka tiene tres capacidades clave:
  • Apache Kafka almacena los datos de streaming de una manera tolerante a errores como una serie continua de registros y conserva el orden en el que se generaron los registros.
  • Apache Kafka funciona como un búfer entre productores y consumidores de datos. Apache Kafka permite que muchos productores de datos (por ej., sitios web, dispositivos compatibles con IoT, instancias de Amazon EC2) publiquen de manera continua datos de streaming y clasifiquen los datos con temas de Apache Kafka. Muchos consumidores de datos (por ej., aplicaciones de aprendizaje automático, funciones de Lambda) leen a partir de estos temas a su propio ritmo, de manera similar a una cola de mensajes o a un sistema de mensajería empresarial.
  • Los consumidores procesan datos a partir de los temas de Apache Kafka con la estrategia primero en entrar, primero en salir, lo que permite conservar el orden en el que se generaron los datos.
 
P: ¿Cuáles son los conceptos clave de Apache Kafka?
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 de Apache Kafka está conformado por una clave, un valor y una marca de tiempo. Apache Kafka divide y replica temas en varios nodos denominados agentes. Apache Kafka ejecuta 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ústeres 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 se utiliza para respaldar aplicaciones en tiempo real que transforman y entregan datos de streaming y reaccionan ante ellos, y para crear canalizaciones de datos de streaming en tiempo real que obtienen datos de manera fiable a partir de varios sistemas o aplicaciones.
 
P: ¿Qué hace Amazon Managed Streaming for Kafka?
Amazon Managed Streaming for Kafka (Amazon MSK) facilita las tareas de empezar a usar y ejecutar versiones de código abierto de Apache Kafka en AWS con alta disponibilidad y seguridad, al mismo tiempo que provee integración con servicios de AWS sin la sobrecarga operativa que implica ejecutar un clúster de Apache Kafka. Amazon MSK le permite usar y configurar 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 unos pocos clics en la consola, puede aprovisionar 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 admitirá las actualizaciones de versión de Apache Kafka cuando más de una versión sea compatible 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?
Actualmente, Amazon MSK admite la versión 1.1.1 de Apache Kafka.
 
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í.

Generación y consumo de datos

P: ¿Puedo usar las API de Apache Kafka para introducir y expulsar 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 AdminClient 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, Uber  uReplicator y LinkedIn  Cruise Control.

Migración a Amazon MSK

P: ¿Puedo migrar datos ubicados dentro un clúster de Apache Kafka a Amazon MSK?
Sí, puede usar herramientas de terceros o de código abierto como MirrorMaker que incluyen Apache Kafka de código abierto para replicar datos de clústeres a un clúster de Amazon MSK.

Actualizaciones de versiones

P: ¿De qué manera Amazon MSK me permitirá implementar actualizaciones de versiones (principales o secundarias) de clústeres de Apache Kafka cuando el servicio admita más de una versión?
No se admite UpdateClusterSoftware durante el período de versión preliminar de Amazon MSK.
 
P: ¿Cómo funcionará internamente el proceso de actualización?
Cuando implemente una versión nueva, Amazon MSK usará un proceso escalonado que actualizará un agente o nodo de Apache ZooKeeper a la vez antes de continuar con el próximo recurso. Durante el proceso de actualización, el clúster se encontrará en estado "Updating" (Actualizando) y pasará al estado "Active" (Activo) cuando finalice. Es importante tener en cuenta que si decide no replicar datos en varios agentes dentro de un clúster que se está actualizando, el clúster presentará tiempos de inactividad.

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 SDK de AWS. En primer lugar, inicie sesión en la consola de Amazon MSK y seleccione la región de AWS en la que desea crear el clúster de Amazon MSK. Elija un nombre para su clúster, la VPC con la cual desea ejecutar el clúster, una estrategia de replicación de datos para el clúster (tres zonas de disponibilidad es el valor predeterminado para lograr durabilidad alta) y las subredes para cada zona de disponibilidad. A continuación, elija un tipo de instancia de agente y la cantidad de agentes por zona y haga clic en Create (Crear).

P: ¿Qué recursos hay dentro de un clúster?
Cada clúster incluye instancias de agente, almacenamiento aprovisionado y nodos de Apache ZooKeeper.

P: ¿Qué tipos de instancias de agente puedo aprovisionar dentro de un clúster de Amazon MSK?
Puede elegir instancias de la familia M5 de EC2.

P: ¿Debo aprovisionar y pagar por los volúmenes de arranque de agente?
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?
Debe aprovisionar instancias de agente y almacenamiento de agente en todos los clústeres que cree. No debe aprovisionar nodos de Apache ZooKeeper porque estos recursos están incluidos sin cargo adicional en cada clúster que cree.

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 que especificó la versión de código abierto de Apache Kafka. A continuación se muestran los valores predeterminados que utiliza el servicio. Esta configuración no se puede modificar mientras el servicio se encuentre en versión preliminar.

Estrategia de replicación de agente

3 zonas de disponibilidad

Min.Insync.Replicas

2

Broker.ID

Determinado por el servicio

Default.Replication.Factor

3 para 3 zonas de disponibilidad

security.inter.broker.protocol

Texto no cifrado

Cifrado del lado del servidor

AWS KMS activado mediante la clave de un servicio de AWS

P: ¿Puedo aprovisionar agentes de manera que se distribuyan en diferentes zonas de disponibilidad (por ej. 3 en ee.uu.-este-1a, 2 en ee.uu.-este-1b, 1 en ee.uu.-este-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 estrategias de replicación conocidas y le da la opción de usar una estrategia de replicación personalizada. 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 agente en 3 zonas de disponibilidad con 1 agente por clúster de zona, Amazon MSK creará un clúster de tres agentes (1 agente en tres zonas de una región) y, de manera predeterminada, (a menos que decida anular el factor de replicación de tema) el factor de replicación de tema también será tres. La estrategia de replicación que elija también determinará el número mínimo de nodos de Apache ZooKeeper asignado a su clúster en segundo plano.

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 acciones a nivel de división y temas se realizan con las API de Apache Kafka.
 
 
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:  

Factor de replicación

Predeterminada del clúster

Min.Insync.Replicas

2

Redes

P: ¿Amazon MSK se ejecuta en una VPC de Amazon?
Sí, Amazon MSK siempre se ejecuta en una VPC de Amazon cuya administración está a cargo del servicio Amazon MSK. Los recursos de Amazon MSK se encontrarán disponibles para la VPC de Amazon, 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. No es posible obtener acceso a él mediante Internet.
 
P: ¿La conexión entre mis clientes y un clúster de Amazon MSK siempre será privada?
Sí, 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 sus clientes en una VPC y el clúster de Amazon MSK. Amazon MSK no admite puntos de enlace públicos.

P: ¿De qué manera los clientes podrán obtener acceso a los agentes de un clúster de Amazon MSK desde el interior de una VPC?
Los clientes en su VPC podrán obtener acceso a los agentes de un clúster mediante interfaces de red elásticas (ENI) que aparecerán en su cuenta. Los grupos de seguridad de las ENI determinarán el origen y el tipo de tráfico de ingreso y egreso permitido en los agentes.

P: ¿De qué manera puedo otorgar acceso a un clúster a los clientes que se ejecutan en diferentes cuentas de AWS?
Puede usar la interconexión de VPC para otorgar acceso a un clúster a los clientes que se ejecutan en diferentes cuentas de AWS.

Cifrado

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

P: ¿Los datos se cifran por cable mientras se trasladan entre agentes en un clúster de Amazon MSK?
Actualmente no.
 
P: ¿Los datos se cifran por cable mientras se trasladan entre agentes y nodos de Apache ZooKeeper en un clúster de Amazon MSK?
Actualmente no.
 
P: ¿Puedo cifrar datos por cable entre clientes de Apache Kafka y el servicio Amazon MSK?
Actualmente no.

Monitorización, métricas y registro

P: ¿Cómo puedo monitorizar el rendimiento de mis clústeres o temas?
Puede monitorizar el rendimiento de sus clústeres mediante métricas estándar y el de los temas con métricas mejoradas dentro de la consola de Amazon CloudWatch.
 
P: ¿Cómo puedo monitorizar el estado y el rendimiento de los clientes?
Puede usar cualquier monitorización del lado del cliente compatible con la versión de Apache Kafka que esté usando.

Apache ZooKeeper

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 grupales. 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 y administra Apache ZooKeeper dentro de cada clúster como parte del servicio Amazon MSK. Los nodos de Apache ZooKeeper están incluidos en cada clúster sin costo adicional.
 
P: ¿De qué manera los clientes interactúan con Apache ZooKeeper?
Los clientes pueden interactuar con Apache ZooKeeper mediante un punto de enlace de Apache ZooKeeper proporcionado por el servicio. El punto de enlace se provee en la consola de administración de AWS o mediante el uso de la API DescribeCluster.

Integraciones

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

Escalado

P: ¿Cómo puedo aumentar la escala de mi clúster?
No se admite el ajuste de escala de un clúster existente durante el período de versión preliminar de Amazon MSK.

Precios y disponibilidad

P: ¿Cuál es el esquema de precios de Amazon MSK?
Los precios se basan en las horas de agente de Apache Kafka y en las horas de almacenamiento aprovisionadas. Las tarifas de transferencia de datos de AWS se aplican para las transferencias de entrada y salida de Amazon MSK. Para obtener más información, vaya a la página de precios.

P: ¿Debo pagar 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 se encuentra Amazon MSK?
Durante la versión preliminar pública, Amazon MSK se encontrará disponible en la región EE.UU. Este (Norte de Virginia) de AWS.

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

Introducción a Amazon MSK

Product-Page_Standard-Icons_01_Product-Features_SqInk
Calcule sus costos

Vaya a la página de precios de Amazon MSK.

Product-Page_Standard-Icons_01_Product-Features_SqInk
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.

Product-Page_Standard-Icons_03_Start-Building_SqInk
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.