Streaming de Kafka administrado - Pipelines de datos en tiempo real a gran escala con Amazon MSK

Este artículo explica cómo construir clústeres de Kafka totalmente administrados con Amazon MSK (Managed Streaming for Apache Kafka) y cuándo usarlo en lugar de Kinesis. También presenta patrones de diseño para plataformas de streaming de datos en tiempo real a gran escala.

El papel de Apache Kafka y Amazon MSK

Apache Kafka se ha adoptado en empresas de todo el mundo como el estándar de facto para el streaming de datos en tiempo real a gran escala. Demuestra su potencia en casos de uso que requieren procesar varios millones de eventos por segundo, como la agregación de logs, el event sourcing, la recopilación de métricas y el procesamiento de streams. Amazon MSK es un servicio totalmente administrado de Apache Kafka que automatiza el aprovisionamiento, la configuración, la aplicación de parches y la supervisión de los clústeres de Kafka. Cuando usted opera un clúster de Kafka on-premises, surgen tareas operativas complejas, como la gestión de ZooKeeper, el escalado de los brokers, el rebalanceo de las particiones, la supervisión de la capacidad de disco y la aplicación de parches de seguridad. MSK ofrece todo esto de forma administrada y mantiene una compatibilidad total con la API de Apache Kafka. Por ello, usted puede migrar las aplicaciones de Kafka existentes sin cambiar el código.

Construcción y operación de clústeres de Amazon MSK

Los clústeres de MSK se crean dentro de una VPC y distribuyen los brokers en varias zonas de disponibilidad para garantizar la alta disponibilidad. MSK Serverless es una opción serverless que no requiere aprovisionamiento, escala automáticamente según el tráfico y permite operar con un cobro por uso en el que solo se paga lo que se utiliza. MSK Provisioned especifica de forma explícita el tipo de instancia y el almacenamiento de los brokers para garantizar un rendimiento predecible. MSK Connect es una implementación administrada de Apache Kafka Connect con la que usted puede desplegar conectores que transmiten datos automáticamente desde y hacia servicios de AWS como S3, DynamoDB, OpenSearch y RDS. Admite varios métodos de autenticación, como la autenticación de IAM, SASL/SCRAM y la autenticación mutua TLS, y logra una seguridad de grano fino mediante el control de acceso a nivel de tema. Con las métricas de CloudWatch y la supervisión abierta compatible con Prometheus, usted puede supervisar de forma integral el estado de los clústeres. Ejemplo de creación de un clúster de MSK Serverless con la CLI: aws kafka create-cluster-v2 --cluster-name streaming-cluster --serverless "{"clientAuthentication":{"sasl":{"iam":{"enabled":true}}},"vpcConfigs":[{"subnetIds":["subnet-abc","subnet-def"],"securityGroupIds":["sg-123"]}]}" crea un clúster de Kafka serverless.

Cuándo usar Amazon MSK y cuándo Kinesis Data Streams

MSK y Kinesis Data Streams son ambos servicios de streaming en tiempo real, pero sus filosofías de diseño son distintas. Kinesis Data Streams es un servicio de streaming nativo de AWS y su integración con Lambda, Amazon Data Firehose y Amazon Managed Service for Apache Flink es sencilla. Hay dos modos de capacidad: el modo bajo demanda escala automáticamente según el tráfico sin especificar la capacidad de antemano, y el modo aprovisionado se ajusta especificando de forma explícita el número de shards. Para las variaciones bruscas de carga es adecuado elegir el modo bajo demanda, y para las cargas de trabajo estables, elegir el aprovisionado, que permite reducir el precio unitario. En ambos modos, la mayor ventaja es la integración fluida con los servicios de AWS. Por otro lado, MSK ofrece compatibilidad total con el ecosistema de Apache Kafka, y usted puede utilizar tal cual las aplicaciones de Kafka existentes y herramientas como Kafka Streams, ksqlDB y Schema Registry. Cuando usted quiere aprovechar el amplio ecosistema de la comunidad de Kafka o migra desde un clúster de Kafka on-premises, MSK es la mejor opción. En MSK, el periodo de retención de datos también se puede configurar como ilimitado (depende de la capacidad de almacenamiento), lo que, frente al máximo de 365 días de Kinesis, responde a los casos de uso que requieren una retención a largo plazo.

Figura: MSK aprovecha Kafka, Kinesis conecta con AWS

Amazon MSK

  • PapelCompatibilidad total con Apache Kafka
  • CombinacionesLas aplicaciones de Kafka existentes / Kafka Streams / Schema Registry se pueden usar tal cual
  • Situaciones adecuadasUsted quiere aprovechar el ecosistema de Kafka o migra desde un Kafka existente

Kinesis Data Streams

  • PapelServicio de streaming nativo de AWS
  • CombinacionesIntegración sencilla con Lambda / Amazon Data Firehose
  • Situaciones adecuadasUsted da importancia a la integración fluida con los servicios de AWS

Patrones de diseño de arquitecturas de procesamiento de streams

En una arquitectura de procesamiento de streams centrada en MSK, se adopta un modelo de publicación/suscripción en el que los productores publican eventos en temas de Kafka y los consumidores los procesan en tiempo real. Si usted utiliza la biblioteca Kafka Streams, puede ejecutar dentro de la aplicación uniones, agregaciones y procesamiento por ventanas de los streams. También es posible construir una arquitectura basada en eventos que aprovecha MSK Connect para transmitir la captura de datos de cambios (CDC) de las bases de datos a temas de Kafka y propagarla en tiempo real a los microservicios downstream. En la integración con un data lake en S3, usted puede archivar automáticamente los datos en formato Parquet o Avro con el S3 Sink Connector de MSK Connect y analizarlos con Athena o Redshift Spectrum. Para gestionar la evolución de los esquemas, se aprovecha AWS Glue Schema Registry y se mantiene el contrato de datos entre productores y consumidores.

Precios de MSK

Los siguientes son precios unitarios a fecha de agosto de 2026 en la región de Tokio, y los importes mensuales se calculan con 730 horas. En un clúster aprovisionado, kafka.m5.large cuesta 0,271 USD/hora de broker, lo que supone unos 198 USD al mes por broker, y una configuración mínima de 3 brokers cuesta unos 594 USD al mes. El precio unitario varía según el tipo de broker: kafka.m7g.large, basado en Graviton, cuesta 0,2635 USD/hora de broker, y el broker Express Express.m7g.large cuesta 0,527 USD/hora de broker. El almacenamiento de los brokers cuesta 0,12 USD por GB al mes. En MSK Serverless se cobran la hora de clúster a 0,9675 USD/hora (unos 706 USD al mes si funciona de forma continua) y la hora de partición a 0,0019 USD/hora. Además, se cobran la entrada de datos a 0,129 USD/GB, la salida de datos a 0,0645 USD/GB y el almacenamiento a 0,12 USD por GB al mes. El coste fijo de la hora de clúster queda al mismo nivel que una configuración de 3 brokers. Por ello, se ajusta a la realidad considerar Serverless no como una opción para ahorrar, sino como una opción para evitar el trabajo de diseñar los brokers y el escalado. En Kinesis Data Streams, que sirve de comparación, el modo aprovisionado cuesta 0,0195 USD/hora de shard + 0,0215 USD por cada 1 millón de unidades de carga útil PUT. El modo bajo demanda cuesta 0,052 USD/hora de stream + 0,104 USD/GB de escritura + 0,052 USD/GB de lectura. Cuando usted empieza a pequeña escala, el coste mínimo es claramente más bajo en Kinesis. Sobre esa base, conviene que elija en este orden: MSK si usted necesita compatibilidad con el ecosistema de Kafka, y Kinesis si da importancia a la integración nativa con AWS y a la sencillez de operación.

Resumen - Elección de una plataforma de streaming de Kafka administrado

Amazon MSK, como servicio totalmente administrado de Apache Kafka, ofrece una plataforma de streaming de datos en tiempo real a gran escala. Gracias a la compatibilidad total con la API de Kafka, la migración de las aplicaciones existentes es sencilla, y también es posible la operación serverless con MSK Serverless. La estrategia óptima es elegir Kinesis cuando usted da importancia a la integración nativa con AWS en un desarrollo nuevo, y MSK cuando quiere aprovechar el ecosistema de Kafka o migrar desde un Kafka existente. Combinando la integración con sistemas externos mediante MSK Connect y el procesamiento de streams con Kafka Streams, usted puede construir pipelines de datos en tiempo real de extremo a extremo.

Referencias (recursos oficiales de AWS)

Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.

Si esta página y la documentación oficial difieren, prevalece la documentación oficial.

Compartir