Aspectos generales

P. ¿Qué es Amazon MSK?
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 usan esta plataforma 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 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 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 MSK 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 consta de una clave, un valor y una marca temporal. 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 se utiliza para respaldar aplicaciones en tiempo real que transforman y entregan datos de streaming, además de reaccionar ante ellos, así como 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 MSK?
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 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 y 2.1.0 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. ¿Se admiten las actualizaciones de versiones de Apache Kafka? 
Las actualizaciones de versiones de clústeres no se admiten actualmente, pero tenemos previsto que se admitan pronto. 
 
P. ¿Cómo funcionará internamente el proceso de actualización?
Cuando implemente una versión nueva de Apache Kafka, Amazon MSK usará un proceso escalonado que actualizará un agente o nodo de Apache ZooKeeper en cada ocasión antes de continuar con el siguiente 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, 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 el clúster, la VPC con la cual desee 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: ¿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?
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 especificados por la versión de código abierto de Apache Kafka. La configuración predeterminada está documentada aquí
P. ¿Puedo aprovisionar agentes de manera desigual en las diferentes zonas de disponibilidad (por ej., 3 en EE.UU. Este-1a, 2 en EE.UU. Este-1b y 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 clústeres con replicación en tres zonas de disponibilidad de forma predeterminada, 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 agente en tres zonas de disponibilidad con un agente por clúster de zona, Amazon MSK creará un clúster de tres agentes (un agente en tres zonas de una región) y, de forma predeterminada (a menos que decida anular el factor de replicación de tema), el factor de replicación de 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 nuevos clústeres. Las configuraciones personalizadas se pueden crear mediante la interfaz de línea de comandos (CLI) o la consola de AWS. Se admitirán las configuraciones personalizadas para clústeres existentes a partir de junio de 2019.

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:

Factor de replicación

Predeterminada del clúster

Min.Insync.Replicas

2

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 particiones y temas se realizan con las API de Apache Kafka. A continuación se muestra un ejemplo de comando para crear un tema mediante las API de Apache Kafka:
 
bin/kafka-topics.sh --create —bootstrap-server ConnectionString:9092 --replication-factor 3 --partitions 1 --topic TopicName  

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 a los clientes que se ejecutan en diferentes cuentas de AWS acceso a un clúster.

Conexión con la VPC

P. ¿Cómo puedo conectar con mi clúster de AWS MSK fuera de la VPC?

Existen varios métodos para conectar con los clústeres de AWS MSK fuera de la VPC.

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 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. 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 con la CLI o la consola de AWS. Se requiere configuración adicional para que los clientes logren comunicarse con los clústeres que usan el cifrado TLS. Puede cambiar la configuración de cifrado predeterminada seleccionando los ajustes de texto no cifrado o TLS/texto no cifrado. Más información: 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?
No, la versión predeterminada de Apache Zookeeper incluida con Apache Kafka no admite el cifrado. Sin embargo, es importante resaltar que las comunicaciones entre Apache Zookeeper y agentes de Apache Kafka están limitadas a información sobre agentes, temas y estados de partición.

Autenticación y autorización

P. ¿Cómo se puede restringir el alcance de la conectividad con un clúster de Amazon MSK en varios clientes de mi VPC?
Amazon MSK admite la autenticación basada en TLS, que se puede emplear para autenticar las conexiones cliente con un clúster de Amazon MSK. Amazon MSK permite implementar CA privadas del servicio AWS Certificate Manager en un clúster de MSK. Cuando está habilitada la autenticación de cliente mediante TLS, solo los clientes que presentan certificados TLS generados por las CA privadas previamente cargadas pueden autenticarse con el clúster.

P. ¿Cómo funciona la autorización en Amazon MSK?
Apache Kafka utiliza listas de control de acceso (ACL) para la autorización, y Amazon MSK admite el uso de ACL. Para habilitar las ACL, se debe habilitar la autenticación de cliente mediante TLS.

P. ¿Cómo puedo autenticar y autorizar un cliente al mismo tiempo?
Los clientes de Amazon MSK que utilizan la autenticación de cliente mediante TLS pueden emplear el nombre distintivo de los certificados TLS de los clientes como la entidad de seguridad de la ACL para autenticar y autorizar las solicitudes de los clientes.

Monitorización, métricas, registro y etiquetado

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.

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

P: ¿Cómo monitorizo el retraso del consumidor?
El retraso del consumidor dentro de su clúster de Amazon MSK se puede monitorizar utilizando herramientas de retraso del consumidor, como Burrow de Linkedin: https://github.com/linkedin/Burrow.

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 el almacenamiento en mi clúster?
Puede aumentar el almacenamiento del clúster mediante la consola de administración de AWS o la interfaz de línea de comandos (CLI) de AWS. 

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 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?
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 los que se transfieren entre agentes y nodos de Apache ZooKeeper.

Conformidad

P. ¿Amazon MSK cumple con la normativa HIPAA?

Sí. Amazon MSK cumple los requisitos de HIPAA. Para obtener una lista completa de los servicios y los programas de conformidad de AWS, consulte Servicios de AWS en el ámbito del programa de conformidad.

Acuerdo de nivel de servicios

P. ¿Qué garantiza el acuerdo de nivel de servicios (SLA) de Amazon MSK?
El acuerdo de nivel de servicios de Amazon MSK garantiza un porcentaje de tiempo de funcionamiento mensual mínimo del 99,9 % para Amazon MSK.
 
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 información completa sobre los términos y las condiciones del SLA, así como detalles sobre cómo enviar una reclamación, consulte la página de detalles del SLA de Amazon MSK.

Introducción a Amazon MSK

Calcule sus costos
Calcule sus costos

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

Consulte la guía de introducción
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ú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.