curso
AWS MSK para principiantes: Guía completa para empezar
Muchas empresas están optando por pasarse a AWS MSK para evitar los quebraderos de cabeza operativos asociados a la administración de clústeres de Apache Kafka.
En este tutorial, exploraremos las características, beneficios y mejores prácticas de AWS MSK. También repasaremos los pasos básicos para configurar AWS MSK y veremos cómo se compara con otros servicios populares como Kinesis y Confluent.
¿Qué es AWS MSK?
En primer lugar, vamos a entender Apache Kafka y por qué es tan útil para el flujo de datos.
Apache Kafka es una plataforma de streaming distribuido de código abierto que gestiona flujos de datos en tiempo real y puede crear aplicaciones basadas en eventos. Puede ingerir y procesar datos en streaming a medida que se producen.
Según el sitio web de Kafka, más del 80% de las empresas de Fortune 100 confían en Kafka y lo utilizan.
Y lo que es más importante, Kafka es escalable y muy rápido. Esto significa que puede manejar muchos más datos de los que cabrían en una sola máquina y con una latencia superbaja.
Si quieres aprender a crear, gestionar y solucionar problemas de Kafka para el flujo de datos, considera la posibilidad de realizar el curso Introducción a Kafka.
¿Cuál es el mejor momento para utilizar Apache Kafka?
- Cuando necesites manejar cantidades masivas de datos en tiempo real, como manejar flujos de datos de dispositivos IoT.
- Cuando necesitas procesamiento y análisis de datos inmediatos, como con el seguimiento en directo de la actividad de los usuarios o los sistemas de detección de fraudes.
- En escenarios de subcontratación de eventos en los que necesites registros de auditoría con requisitos de cumplimiento y normativas.
Sin embargo, la gestión de instancias de Kafka puede conllevar muchos quebraderos de cabeza. Aquí es donde entra AWS MSK.
Imagen del autor
AWS MSK (Managed Streaming for Kafka) es un servicio totalmente administrado que se encarga del aprovisionamiento, la configuración, el escalado y el mantenimiento de los clústeres de Kafka. Puedes utilizarlo para crear aplicaciones que reaccionen instantáneamente a los flujos de datos.
Kafka se utiliza a menudo como parte de una configuración de procesamiento de datos mayor, y AWS MSK facilita aún más la creación de canalizaciones de datos en tiempo real que mueven datos entre diferentes sistemas.
Cómo funciona Amazon MSK. Fuente de la imagene: AWS
Si eres nuevo en AWS, considera la posibilidad de seguir nuestro curso Introducción a AWS para familiarizarte con los conceptos básicos. Cuando estés preparado, puedes pasar a nuestro curso de Tecnología y Servicios en la Nube de AWS para explorar el conjunto completo de servicios en los que confían las empresas.
Características de AWS MSK
AWS MSK se distingue de la competencia porque es un servicio totalmente gestionado. No tienes que preocuparte de configurar servidores ni de ocuparte de las actualizaciones.
Sin embargo, hay algo más. Estas cinco características clave de AWS MSK hacen que sea una inversión que merece la pena:
- MSK tiene una alta disponibilidad, y AWS garantiza el cumplimiento de unos SLA estrictos. Sustituye automáticamente los componentes averiados sin tiempo de inactividad de tus aplicaciones.
- MSK tiene una opción de autoescalado para el almacenamiento, de modo que crece con tus necesidades automáticamente. También puedes ampliar o reducir rápidamente tu almacenamiento o añadir más intermediarios según sea necesario.
- En términos de seguridad, MSK es una solución integral que proporciona encriptación en reposo y en tránsito. También se integra con AWS IAM para el control de acceso.
- Si ya utilizas Kafka, puedes pasarte a MSK sin cambiar tu código, ya que MSK es compatible con todas las API y herramientas habituales de Kafka.
- MSKes una opción rentable que no requiere contratar a todo un equipo de ingenieros para supervisar y gestionar los clusters. AWS incluso presume de que puede ser hasta un 40% más barato que Kafka autogestionado.
Ventajas de utilizar AWS MSK
Como ya hemos visto, AWS MSK aporta un valor inmediato gracias a su disponibilidad, escalabilidad, seguridad y facilidad de integración. Estas ventajas fundamentales la han convertido en la opción preferida de las empresas que ejecutan cargas de trabajo Kafka en la nube.
AWS MSK resuelve cuatro desafíos críticos a los que se enfrenta todo proyecto de streaming de datos:
- MSK es un servicio totalmente gestionado, que te permite centrarte en crear aplicaciones en lugar de gestionar la infraestructura.
- MSK tiene una alta disponibilidad y fiabilidad, algo cada vez más crítico hoy en día, ya que los usuarios esperan tener acceso a servicios y aplicaciones 24 horas al día, 7 días a la semana.
- MSK dispone de capacidades críticas de seguridad integral.
- MSK tiene integración nativa con AWS, lo que facilita mucho la creación de soluciones completas de streaming de datos dentro del ecosistema de AWS.
Configuración de AWS MSK
Para empezar con AWS MSK, primero, crea tu cuenta de AWS. Si es la primera vez que utilizas AWS, aprende a configurar tu cuenta de AWS con nuestro completo tutorial.
Inicia sesión en la consola de administración de AWS y abre la consola MSK. Haz clic en "Crear clúster" para iniciar el proceso de configuración.
Primeros pasos con AWS MSK. Imagen agriace: AWS
Selecciona "Creación rápida" para la configuración por defecto, e introduce un nombre de clúster descriptivo.
A partir de ahí, tienes muchas opciones adicionales para seleccionar, que dependen de tus propios requisitos para tu clúster. Aquí tienes un resumen rápido de las opciones:
- Tipo de racimo: "Aprovisionado" o "Sin servidor"
- Versión de Apache Kafka
- Tipo de corredor: "Estándar" o "Exprés"
- Tamaño del corredor
- Volumen de almacenamiento EBS
Opciones de configuración de AWS MSK
El clúster siempre se crea dentro de una Amazon VPC. Puedes optar por utilizar la VPC predeterminada o configurar y especificar una VPC personalizada.
Ahora, sólo tienes que esperar a que se active tu clúster, lo que puede tardar entre 15 y 30 minutos. Puedes controlar el estado de tu clúster desde la página de resumen del clúster, donde verás que el estado cambia de "Creando" a "Activo".
Ingesta y procesamiento de datos con AWS MSK
Una vez configurado tu clúster MSK, tendrás que crear una máquina cliente para producir y consumir datos en uno o varios temas. Como Apache Kafka se integra tan bien con muchos productores de datos (como sitios web, dispositivos IoT, instancias Amazon EC2, etc.), MSK también comparte esta ventaja.
Apache Kafka organiza los datos en estructuras llamadas temas. Cada tema consta de una o varias particiones. Las particiones son el grado de paralelismo en Apache Kafka. Los datos se distribuyen entre los corredores mediante la partición de datos.
Términos clave que debes conocer cuando trabajes con clusters de Apache Kafka:
- Temas son la forma fundamental de organizar los datos en Kafka.
- Productores son aplicaciones que publican datos en temas: generan y escriben datos en Kafka. Escriben datos sobre temas y particiones concretas.
- Consumidores son aplicaciones que leen y procesan datos de los temas. Extraen datos de los temas a los que están suscritos.
Al construir una arquitectura basada en eventos con AWS MSK, necesitas configurar varias capas, de las cuales MSK es el principal componente de ingestión de datos. Aquí tienes un resumen de las capas que pueden ser necesarias:
- Configuración de la ingesta de datos
- Capa de procesamiento
- Capa de almacenamiento
- Capa analítica
Ejemplo de arquitectura basada en eventos con Amazon MSK y Amazon EventBridge. Fuente de la imagen: AWS
Si te interesa aprovechar Python en tus flujos de trabajo de canalización de datos , consulta nuestro curso Introducción a AWS Boto en Python.
Buenas prácticas para utilizar AWS MSK
AWS MSK es relativamente sencillo de configurar y empezar a utilizar de inmediato. Sin embargo, algunas buenas prácticas esenciales mejorarán el rendimiento de tus clusters y te ahorrarán tiempo más adelante.
Dimensiona correctamente tu clúster
Tendrás que elegir el número correcto de particiones por corredor y el número correcto de corredores por clúster.
Hay una serie de factores que pueden influir en tus decisiones a este respecto; sin embargo, AWS ha proporcionado algunas recomendaciones y recursos útiles para guiarte en este proceso.
Además, AWS proporciona una hoja de cálculo de tamaño y precios fácil de usar para ayudarte a calcular el tamaño adecuado de tu clúster y los costes asociados de utilizar AWS MSK frente a un clúster EC2 Kafka autogestionado similar.
Construye clusters de alta disponibilidad
AWS recomienda que configures tus clústeres para que estén altamente disponibles. Esto es especialmente importante cuando se realiza una actualización (como actualizar la versión de Apache Kafka) o cuando AWS está sustituyendo un intermediario.
Para garantizar la alta disponibilidad de tus clusters, debes hacer tres cosas:
- Configura tus clusters en tres zonas de disponibilidad (también llamado cluster de tres ZA).
- Establece el factor de replicación en 3 o más.
- Establece el número mínimo de réplicas sincronizadas en RF-1.
Lo bueno de AWS es que se comprometen a unos SLA estrictos para los despliegues multi-AZ; de lo contrario, te devuelven los créditos.
Monitoriza el uso de disco y CPU
Dos métricas clave a monitorizar a través de AWS CloudWatch son el uso de disco y de CPU. Si lo haces, no sólo te asegurarás de que tu sistema funcione sin problemas, sino que también contribuirás a mantener bajos los costes.
La mejor forma de gestionar el uso del disco y los costes de almacenamiento asociados es configurar una alarma de CloudWatch que te avise cuando el uso del disco supere un determinado valor, como el 85%, y ajustar tus políticas de retención. Establecer un tiempo de retención para los mensajes de tu registro puede ayudar mucho a liberar espacio en disco automáticamente.
Además, para mantener el rendimiento de tu clúster y evitar cuellos de botella, AWS recomienda que mantengas el uso total de CPU de tus intermediarios por debajo del 60%. Puedes monitorizarlo mediante AWS CloudWatch y luego tomar medidas correctivas actualizando el tamaño de tu intermediario, por ejemplo.
Protege tus datos mediante encriptación en tránsito
Por defecto, AWS cifra los datos en tránsito entre los intermediarios de tu clúster MSK. Puedes desactivarlo si tu sistema experimenta un uso elevado de la CPU o latencia. Sin embargo, se recomienda encarecidamente que mantengas activada la encriptación en tránsito en todo momento y que busques otras formas de mejorar el rendimiento si eso te supone un problema.
Consulta nuestro curso Seguridad y gestión de costes de AWS para obtener más información sobre cómo proteger y optimizar tu entorno en la nube de AWS y gestionar los costes y recursos en AWS.
Comparación de AWS MSK con otras herramientas de streaming
Al decidir qué herramienta es la mejor para un proyecto, a menudo tenemos que evaluar varias opciones. He aquí las alternativas más comunes a la AWS MSK y cómo se comparan.
AWS MSK vs Apache Kafka en EC2
El principal compromiso entre MSK y una opción autoalojada mediante EC2 es entre comodidad y control: MSK te da menos que gestionar pero menos flexibilidad, mientras que EC2 te da el control total pero requiere más trabajo.
AWS MSK se encarga de todas las tareas operativas complejas, con aprovisionamiento y configuración automáticos. La ventaja es que no hay costes iniciales de infraestructura. También hay una integración perfecta con otros servicios de AWS y sólidas características de seguridad.
Utilizar Kafka en EC2, por otra parte, implica más instalación y configuración manual, y también tienes que ocuparte tú mismo de todo el mantenimiento y las actualizaciones. Esto ofrece mucha más flexibilidad, pero puede conllevar más complejidad y costes operativos, y puede requerir equipos más cualificados.
AWS MSK vs. Kinesis
Utiliza Kinesis para simplicidad y profunda integración con AWS y MSK para compatibilidad con Kafka o más control sobre tu configuración de streaming.
Kinesis es una arquitectura completamente sin servidor que utiliza fragmentos para el flujo de datos. AWS lo gestiona todo por ti. Sin embargo, hay límites de conservación de datos que debes conocer. Kinesis es una gran solución para necesidades sencillas de flujo de datos.
AWS MSK se basa en el modelo de temas y particiones de Kafka, con una retención de datos prácticamente ilimitada, dependiendo de tu almacenamiento. Es una solución más flexible y personalizable que puedes migrar fuera de AWS si es necesario.
Si no estás familiarizado con Kinesis, tenemos un curso que te guía a través del trabajo con datos de streaming utilizando AWS Kinesis y Lambda.
AWS MSK vs. Confluyente
Elige Confluent si necesitas funciones y asistencia completas, y elige MSK si has invertido mucho en AWS y tienes experiencia interna en Kafka.
Confluent tiene un rico conjunto de funciones con muchos conectores integrados. Es una opción más cara en general, pero ofrece un nivel gratuito con funciones limitadas. Confluent funciona bien para cargas de trabajo puntuales y tiene un proceso de despliegue más sencillo.
En comparación, AWS es más ágil y se centra en la funcionalidad principal de Kafka. Para obtener acceso a un conjunto de características más amplio, AWS MSK debe integrarse con otros servicios de AWS. Por suerte, esta integración es perfecta. AWS MSK tiene un coste base más bajo y puede ser una buena opción para cargas de trabajo constantes.
La siguiente tabla ofrece una comparación de AWS MSK y sus alternativas:
Función |
AWS MSK |
Apache Kafka en EC2 |
Kinesis |
Confluyente |
Despliegue |
Totalmente gestionado |
Autogestionado en EC2 |
Totalmente gestionado |
Totalmente gestionado o autogestionado |
Facilidad de uso |
Fácil de configurar y gestionar |
Requiere configuración y escalado manuales |
Configuración sencilla; nativo de AWS |
Interfaz de usuario fácil de usar y herramientas avanzadas |
Escalabilidad |
Autoescalado con ajustes manuales |
Escalado manual |
Escalado sin fisuras |
Autoescalado con flexibilidad |
Latencia |
Baja latencia |
Baja latencia |
Menor latencia para cargas útiles pequeñas |
Comparable a MSK |
Soporte de protocolo |
Compatible con la API de Kafka |
Compatible con la API de Kafka |
Protocolo propietario Kinesis |
API Kafka y protocolos adicionales |
Conservación de datos |
Configurable (hasta 7 días por defecto) |
Configurable |
Configurable (máx. 365 días) |
Altamente configurable |
Seguimiento y métricas |
Integrado con CloudWatch |
Requiere configuración personalizada |
Integrado con CloudWatch |
Herramientas avanzadas de supervisión |
Coste |
Pay-as-you-go |
Basado en los precios de las instancias EC2 |
Pay-as-you-go |
Por suscripción |
Seguridad |
Funciones de seguridad de AWS integradas |
Debes configurar la seguridad manualmente |
Integrado con AWS IAM |
Funciones de seguridad completas |
Idoneidad del caso de uso |
Lo mejor para los usuarios de Kafka en el ecosistema de AWS |
Flexible, pero de alto mantenimiento |
Lo mejor para aplicaciones nativas de AWS |
Usuarios avanzados de Kafka y empresas |
Reflexiones finales
Apache Kafka es la mejor elección para situaciones en las que necesitas una solución fiable y a gran escala que no pueda permitirse la pérdida de datos y que requiera conectar múltiples fuentes de datos o construir canalizaciones de datos complejas. AWS MSK evita muchos de los quebraderos de cabeza que supone instalar y configurar clústeres de Kafka, lo que permite a los desarrolladores centrarse más en crear y mejorar aplicaciones en lugar de en la infraestructura.
Obtener una certificación de AWS es una forma excelente de comenzar tu carrera en AWS. Puedes desarrollar tus habilidades en AWS consultando nuestro catálogo de cursos y adquiriendo experiencia práctica a través de proyectos.
Preguntas frecuentes
¿Puede AWS MSK integrarse con otros servicios de AWS como Lambda y S3?
Sí, AWS MSK se integra con muchos servicios de AWS. Puedes utilizar MSK Connect para ejecutar conectores Kafka Connect totalmente gestionados. Puedes utilizar conectores predefinidos o crear conectores personalizados para mover datos entre MSK y servicios como S3, OpenSearch y RDS. AWS MSK también puede servir como fuente de eventos para funciones Lambda. Puedes configurar Lambda para que sondee tus temas MSK e invoque automáticamente funciones basadas en nuevos mensajes, con soporte para procesamiento por lotes y gestión de errores.
¿Puedo migrar mi clúster de Kafka existente a AWS MSK?
Sí, la migración a MSK es posible de varias formas diferentes. Puedes utilizar MirrorMaker 2.0 para la replicación en clúster, realizar una migración temática directa o utilizar herramientas de terceros. AWS proporciona documentación detallada sobre la migración y las mejores prácticas para reducir al mínimo el tiempo de inactividad.
¿Qué monitorización y métricas están disponibles para los clústeres MSK de AWS?
MSK se integra con CloudWatch para la monitorización, proporcionando métricas para la salud del broker, el rendimiento del cluster y el retraso del consumidor. Las métricas clave incluyen la utilización de la CPU, el espacio en disco, el rendimiento de la red y el recuento de particiones.

Aprende más sobre AWS con estos cursos
curso
AWS Cloud Technology and Services Concepts
programa
AWS Cloud Practitioner (CLF-C02)
blog
Los 13 mejores proyectos de AWS: De principiante a profesional
blog
La Guía de Certificación Kafka para Profesionales de los Datos

Adejumo Ridwan Suleiman
13 min
blog
AWS Certified Cloud Practitioner: guía completa

Srujana Maddula
27 min
tutorial
Primeros pasos con AWS Athena: Guía práctica para principiantes

Tim Lu
28 min
tutorial
Cuentas de almacenamiento Azure: Tutorial paso a paso para principiantes

Anneleen Rummens
20 min
tutorial