Streaming Kafka gestionado - Pipeline de datos en tiempo real a gran escala con Amazon MSK

Se explica la construcción de un clúster Kafka completamente gestionado con Amazon MSK (Managed Streaming for Apache Kafka) y la diferenciación con Kinesis. Se presentan patrones de diseño de infraestructura de streaming de datos en tiempo real a gran escala.

Posicionamiento de Apache Kafka y Amazon MSK

Apache Kafka se ha adoptado como el estándar de facto para streaming de datos en tiempo real a gran escala en empresas de todo el mundo. Demuestra su potencia en casos de uso que requieren el procesamiento de millones de eventos por segundo, como agregación de logs, event sourcing, recopilación de métricas y procesamiento de streams. Amazon MSK es un servicio completamente gestionado de Apache Kafka que automatiza el aprovisionamiento, configuración, aplicación de parches y monitoreo del clúster Kafka, permitiendo concentrarse en el desarrollo de aplicaciones.

Construcción y operación del clúster Amazon MSK

Los clústeres MSK se crean dentro de una VPC, distribuyendo brokers en múltiples zonas de disponibilidad para garantizar alta disponibilidad. MSK Serverless es una opción serverless sin aprovisionamiento que escala automáticamente según el tráfico, con cobro por uso. MSK Provisioned especifica explícitamente el tipo de instancia y almacenamiento de los brokers, proporcionando rendimiento predecible. La configuración de seguridad incluye cifrado TLS en tránsito, cifrado en reposo con KMS, autenticación IAM y autenticación SASL/SCRAM.

Diferenciación entre Amazon MSK y Kinesis Data Streams

MSK y Kinesis Data Streams son ambos servicios de streaming en tiempo real, pero difieren en filosofía de diseño. Kinesis es un servicio de streaming serverless nativo de AWS con fácil integración con Lambda, Firehose y Data Analytics. No requiere aprovisionamiento y escala simplemente ajustando el número de shards, con integración fluida con servicios AWS. MSK es ideal cuando se necesita compatibilidad con el ecosistema Kafka, migración de aplicaciones Kafka existentes, o funciones avanzadas como Kafka Streams, Kafka Connect y Schema Registry.

Patrones de diseño de arquitectura de procesamiento de streams

En una arquitectura de procesamiento de streams centrada en MSK, se adopta un modelo publish/subscribe donde los productores publican eventos en topics de Kafka y los consumidores los procesan en tiempo real. Con la biblioteca Kafka Streams se pueden ejecutar uniones, agregaciones y procesamiento por ventanas de streams dentro de la aplicación. Aprovechando MSK Connect, se puede capturar datos de cambio (CDC) de bases de datos y transmitirlos a topics de Kafka, construyendo pipelines de datos en tiempo real.

Precios de MSK

El clúster provisionado kafka.m5.large cuesta aproximadamente 151 USD/mes por broker, con una configuración mínima de 3 brokers a aproximadamente 453 USD/mes. El almacenamiento cuesta aproximadamente 0,10 USD por GB al mes. MSK Serverless se cobra por hora de clúster (aproximadamente 0,75 USD/hora) y hora de partición. Comparado con Kinesis Data Streams (aproximadamente 0,015 USD por hora de shard), MSK tiene un costo base más alto pero es más económico para cargas de trabajo de alto rendimiento.

Resumen - Selección de infraestructura de streaming Kafka gestionado

Amazon MSK proporciona una infraestructura de streaming de datos en tiempo real a gran escala como servicio completamente gestionado de Apache Kafka. La compatibilidad total con la API de Kafka facilita la migración de aplicaciones existentes, y la operación serverless también es posible con MSK Serverless. Para nuevos desarrollos que priorizan la integración nativa con AWS se recomienda Kinesis, y para aprovechar el ecosistema Kafka o migrar aplicaciones Kafka existentes se recomienda Amazon MSK.