Amazon MSK
Servicio de streaming completamente administrado que proporciona construcción y operación de clústeres Apache Kafka, permitiendo utilizar directamente la API compatible con Kafka
Descripción general
Amazon MSK (Managed Streaming for Apache Kafka) es un servicio completamente administrado que facilita la construcción y operación de clústeres Apache Kafka en AWS. Elimina la complejidad operativa de gestionar brokers Kafka, ZooKeeper, almacenamiento y seguridad, mientras mantiene compatibilidad total con la API de Kafka. Las aplicaciones existentes que utilizan productores y consumidores Kafka pueden migrar a MSK sin cambios de código. Soporta tanto clústeres provisionados como MSK Serverless para diferentes patrones de carga.
Diseño de brokers y estrategia de particiones
El diseño de un clúster MSK comienza con la selección del número de brokers y tipo de instancia. MSK distribuye brokers uniformemente entre las zonas de disponibilidad seleccionadas (mínimo 2, recomendado 3 para producción). El número de particiones por topic determina el paralelismo máximo de consumidores: un topic con 12 particiones permite hasta 12 consumidores procesando en paralelo. La estrategia de particionamiento debe considerar el throughput esperado (cada partición soporta aproximadamente 10 MB/s de escritura), el orden de mensajes (garantizado solo dentro de una partición) y la distribución uniforme de datos. El factor de replicación (típicamente 3) determina cuántas copias de cada partición se mantienen en diferentes brokers, proporcionando tolerancia a fallos. El almacenamiento utiliza EBS con opciones de gp3 o io2 según los requisitos de IOPS.
Reducción de carga operativa con MSK Serverless y MSK Connect
MSK Serverless elimina completamente la gestión de capacidad: no se seleccionan tipos de instancia ni número de brokers. El servicio escala automáticamente según el throughput de producción y consumo, facturando por datos procesados. Es ideal para cargas de trabajo con patrones de tráfico impredecibles o equipos que prefieren no gestionar infraestructura Kafka. MSK Connect es un servicio complementario que ejecuta conectores Kafka Connect de forma administrada, permitiendo ingerir datos desde fuentes externas (bases de datos, S3, APIs) y exportar a destinos (S3, OpenSearch, Redshift) sin código personalizado. Los conectores de la comunidad Kafka (Debezium para CDC, S3 Sink, Elasticsearch Sink, etc.) se despliegan como plugins, y MSK Connect gestiona el escalado y la tolerancia a fallos de los workers.
Criterios de selección frente a Kinesis Data Streams
MSK y Kinesis Data Streams son servicios de streaming pero con filosofías diferentes. MSK es la elección cuando: se tiene experiencia existente con Kafka, se necesita compatibilidad con el ecosistema Kafka (Kafka Streams, ksqlDB, Schema Registry, Connect), se requiere retención de datos superior a 7 días (MSK soporta retención ilimitada con tiered storage), o se migra una aplicación Kafka existente. Kinesis es preferible cuando: se busca integración nativa con servicios AWS (Lambda triggers, Firehose, Analytics), se prefiere un modelo serverless sin gestión de clústeres, o el equipo no tiene experiencia con Kafka. En términos de costo, Kinesis cobra por shard-hora y PUT payload, mientras que MSK cobra por broker-hora y almacenamiento, siendo MSK generalmente más económico para throughput alto y sostenido. La función de tiered storage de MSK permite retener datos históricos en S3 a bajo costo mientras mantiene datos recientes en brokers para acceso de baja latencia.