Construcción de infraestructura de streaming Apache Kafka con Amazon MSK - Diseño y operación de clústeres
Explicación de la construcción de infraestructura de streaming con Amazon MSK. Se presenta la diferenciación con Kinesis, el diseño de clústeres, MSK Serverless y la integración de datos con MSK Connect.
Características de MSK y diferenciación con Kinesis
MSK es un servicio gestionado de Apache Kafka donde AWS administra el aprovisionamiento de brokers, la aplicación de parches y la recuperación ante fallos. Al ser totalmente compatible con el protocolo Kafka, se pueden utilizar directamente los productores, consumidores, aplicaciones Kafka Streams y conectores Connect existentes. La diferenciación con Kinesis Data Streams se basa en que si ya existe un ecosistema Kafka o se requiere compatibilidad con el protocolo Kafka, se elige MSK; si se desea un servicio completamente gestionado sin gestión de clústeres y con integración nativa con AWS, se elige Kinesis.
Diseño de clústeres y MSK Serverless
En clústeres provisionados se especifica el tipo de instancia del broker (como kafka.m5.large), el número de brokers y la capacidad de almacenamiento. Para entornos de producción se recomiendan al menos 3 brokers (1 por AZ), con factor de replicación 3 y min.insync.replicas 2 para garantizar la durabilidad de los datos. MSK Serverless, disponible en GA desde 2022, es un modo que elimina completamente la gestión de clústeres, escalando automáticamente por partición hasta 200 MB/s de throughput. Es ideal para cargas de trabajo con tráfico variable o para equipos que desean comenzar rápidamente sin diseño de clústeres.
Integración de datos con MSK Connect
MSK Connect es un servicio que ejecuta conectores de Kafka Connect de forma gestionada. Con S3 Sink Connector se escriben automáticamente los datos de los topics en S3 para análisis con Redshift o Athena. Con DynamoDB Sink Connector se actualizan tablas en tiempo real, y con Debezium Source Connector se capturan cambios de tablas RDS como CDC (Change Data Capture) y se transmiten a topics de MSK. Los conectores escalan automáticamente según el volumen de datos, eliminando la necesidad de gestionar la infraestructura de Kafka Connect. Tiered Storage permite la jerarquización automática de datos fríos a S3, reduciendo los costos de almacenamiento de los brokers. Para aprender sobre arquitecturas de streaming de datos, libros técnicos (Amazon) son útiles como referencia.
Precios de MSK
Los precios de clústeres provisionados se componen de la tarifa por hora de las instancias broker y el almacenamiento. kafka.m5.large cuesta aproximadamente 0.21 dólares por hora (aproximadamente 151 dólares mensuales), con una configuración mínima de 3 brokers que resulta en aproximadamente 453 dólares mensuales. El almacenamiento cuesta aproximadamente 0.10 dólares por GB/mes. MSK Serverless se factura por hora de clúster (aproximadamente 0.75 dólares/hora) y hora de partición. Para cargas de trabajo con tráfico variable, Serverless puede ser más económico que los clústeres provisionados, pero para tráfico constante y alto, los clústeres provisionados ofrecen mejor relación costo-rendimiento.
Resumen
MSK es un servicio que delega la gestión operativa de Apache Kafka a AWS manteniendo la compatibilidad con el ecosistema Kafka. MSK Serverless elimina completamente la gestión de clústeres, MSK Connect ejecuta conectores de Kafka Connect de forma gestionada, y Tiered Storage jerarquiza automáticamente los datos fríos a S3 reduciendo los costos de almacenamiento de los brokers.