Aspectos generales
Amazon MSK es un nuevo servicio de AWS para datos de streaming que administra la infraestructura y las operaciones de Apache Kafka a fin de facilitar a los desarrolladores y gerentes de DevOps la ejecución de aplicaciones que usan esta plataforma en AWS sin necesidad de convertirse en expertos en el uso de clústeres de Apache Kafka. Amazon MSK es ideal para ejecutar en AWS aplicaciones nuevas o existentes que usen Apache Kafka. Amazon MSK opera y mantiene clústeres de Apache Kafka, provee características de seguridad de nivel empresarial listas para usar y cuenta con integraciones incorporadas con AWS que agilizan el desarrollo de aplicaciones de datos de streaming. Para empezar, puede migrar cargas de trabajo de Apache Kafka existentes a Amazon MSK, o bien crear cargas nuevas de cero y en cuestión de minutos con unos pocos clics. No se aplican cargos de transferencia de datos para el tráfico interno de los clústeres y no se exigen compromisos ni pagos iniciales. Paga solo por los recursos que consume.
Apache Kafka es una plataforma de código abierto y alto rendimiento, escalable y tolerante a errores para crear aplicaciones y canalizaciones de datos de streaming en tiempo real. Apache Kafka es un almacén de datos de streaming que separa las aplicaciones que producen datos de streaming (productores) en su almacén de datos de las aplicaciones que consumen datos de streaming (consumidores) de su almacén de datos. En las organizaciones, se utiliza Apache Kafka como un origen de datos para las aplicaciones con las que se analizan datos de streaming de manera constante y se reacciona a ellos. Obtenga más información acerca de Apache Kafka.
Los datos de streaming son una secuencia continua de pequeños registros o eventos (el tamaño de un registro o evento normalmente es de unos pocos kilobytes) generada por miles de máquinas, dispositivos, sitios web y aplicaciones. Los datos de streaming incluyen diversos tipos de datos, como archivos de registros generados por los clientes que utilizan sus aplicaciones móviles o web, compras electrónicas, actividades de los jugadores en un videojuego, información de redes sociales, operaciones bursátiles, servicios geoespaciales y telemetría de dispositivos conectados o instrumentación en centros de datos. Los servicios de datos de streaming como Amazon MSK y Amazon Kinesis Data Streams facilitan la recopilación, el procesamiento y la entrega continuos de datos de streaming. Obtenga más información acerca de los datos de streaming.
- Apache Kafka almacena los datos de streaming de una manera tolerante a errores como una serie continua de registros y conserva el orden en el que se generaron los registros.
- Apache Kafka funciona como un búfer entre productores y consumidores de datos. Apache Kafka permite que muchos productores de datos (por ej., sitios web, dispositivos compatibles con IoT, instancias de Amazon EC2) publiquen de manera continua datos de streaming y clasifiquen los datos con temas de Apache Kafka. Muchos consumidores de datos (por ej., aplicaciones de aprendizaje automático, funciones de Lambda) leen a partir de estos temas a su propio ritmo, de manera similar a una cola de mensajes o a un sistema de mensajería empresarial.
- Los consumidores procesan datos a partir de los temas de Apache Kafka con la estrategia primero en entrar, primero en salir, lo que permite conservar el orden en el que se generaron los datos.
Apache Kafka se utiliza para respaldar aplicaciones en tiempo real que transforman y entregan datos de streaming, además de reaccionar ante ellos, así como para crear canalizaciones de datos de streaming en tiempo real que obtienen datos de manera fiable a partir de varios sistemas o aplicaciones.
Amazon MSK facilita las tareas de empezar a usar y ejecutar versiones de código abierto de Apache Kafka en AWS con alta disponibilidad y seguridad, al mismo tiempo que provee integración con servicios de AWS sin la sobrecarga operativa que implica ejecutar un clúster de Apache Kafka. Amazon MSK permite usar y configurar versiones de código abierto de Apache Kafka mientras que el servicio se encarga de administrar la configuración, el aprovisionamiento, las integraciones con AWS y el mantenimiento continuo de los clústeres de Apache Kafka.
Para conocer cuales son las versiones de Kafka son admitidas, revisa la documentación de Amazon MSK.
Sí, Amazon MSK admite de manera nativa todas las API de administración y plano de datos.
Sí.
Sí, los clientes de Apache Kafka pueden utilizar AWS Glue Schema Registry, una característica sin servidor de AWS Glue, sin cargo adicional. Consulte la documentación del usuario de Schema Registry a fin de comenzar y obtener más información.
Generación y consumo de datos
Migración a Amazon MSK
Actualizaciones de versiones
Clústeres
Cada clúster incluye instancias de agente, almacenamiento aprovisionado y nodos de Apache ZooKeeper.
Algunos recursos, como las interfaces de red elásticas (ENI), se mostrarán en su cuenta de Amazon EC2. Otros recursos de Amazon MSK no se mostrarán en su cuenta de EC2 porque están administrados por el servicio Amazon MSK.
P: ¿Qué debo aprovisionar dentro de un clúster de Amazon MSK?
P. ¿Puedo cambiar las configuraciones de agente predeterminadas o cargar una configuración de clúster en Amazon MSK?
Sí, Amazon MSK permite crear configuraciones personalizadas y aplicarlas a los clústeres nuevos o a los ya existentes. Para obtener más información sobre las configuraciones personalizadas, consulte la documentación de configuración.
P. ¿Qué propiedades de configuración se pueden personalizar?
Las propiedades de configuración que se pueden personalizar están documentadas aquí.
P. ¿Cuál es la configuración predeterminada de un tema nuevo?
Amazon MSK usa la configuración predeterminada de Apache Kafka a menos que se especifique lo contrario aquí.
Temas
Redes
Conexión con la VPC
P. ¿Cómo puedo conectar con mi clúster de AWS MSK fuera de la VPC?
Existen varios métodos para conectar con los clústeres de AWS MSK fuera de la VPC.
- VPN: https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html
- Interconexión de VPC: https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html
- Gateway de tránsito de VPC: https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html
- AWS Direct Connect: https://aws.amazon.com/directconnect/
- Proxy REST: se puede instalar un proxy REST en una instancia en ejecución en su VPC. Los proxies REST permiten a los productores y los consumidores comunicarse con el clúster mediante solicitudes de API HTTP.
Cifrado
P. ¿Los datos se cifran en tránsito entre agentes dentro de un clúster de Amazon MSK?
Sí, de forma predeterminada, los clústeres nuevos tienen habilitado el cifrado en tránsito a través de TLS para la comunicación entre agentes. Es posible deshabilitar el cifrado en tránsito cuando se crea un clúster.
P: ¿Los datos se cifran en tránsito entre los clientes de Apache Kafka y el servicio Amazon MSK?
Sí, de forma predeterminada, el cifrado en tránsito está configurado en TLS únicamente para los clústeres creados con la CLI o la consola de AWS. Se requiere configuración adicional para que los clientes logren comunicarse con los clústeres que usan el cifrado TLS. Puede cambiar la configuración de cifrado predeterminada seleccionando los ajustes de texto no cifrado o TLS/texto no cifrado. Más información: Cifrado de MSK
P: ¿Los datos se cifran en tránsito mientras se trasladan entre agentes y nodos de Apache ZooKeeper en un clúster de Amazon MSK?
Sí, los clústeres de Amazon MSK que ejecutan Apache Kafka versión 2.5.1 o posterior admiten cifrado en tránsito TLS entre agentes Kafka y nodos ZooKeeper.
Autenticación y autorización
P. ¿Cómo se puede restringir el alcance de la conectividad con un clúster de Amazon MSK en varios clientes de mi VPC?
Amazon MSK admite la autenticación de certificados TLS (CA) y la autenticación SASL/SCRAM. Puede utilizar estos métodos para autenticar conexiones de clientes a un clúster de Amazon MSK. Con la autenticación de certificados TLS, implementa CA privadas dentro del servicio AWS Certificate Manager en un clúster de MSK. Cuando está habilitada la autenticación de clientes mediante TLS, solo los clientes que tienen este tipo de certificados generados por las CA privadas previamente cargadas pueden autenticarse con el clúster. Con la autenticación SASL/SCRAM, crea y almacena credenciales en AWS Secrets Manager. Cuando la autenticación SASL/SCRAM está habilitada, solo los clientes que presentan el nombre de usuario y la contraseña correctos almacenados en AWS Secrets Manager pueden autenticarse con el clúster.
P. ¿Cómo funciona la autorización en Amazon MSK?
Apache Kafka utiliza listas de control de acceso (ACL) para la autorización, y Amazon MSK admite el uso de ACL. Para habilitar las ACL, debe habilitar la autenticación del cliente mediante certificados TLS o SASL/SCRAM.
P. ¿Cómo puedo autenticar y autorizar un cliente al mismo tiempo?
Si usa la autenticación TLS, puede usar el nombre D de los certificados TLS de los clientes como principal de la ACL para autorizar las solicitudes de los clientes. Si utiliza SASL/SCRAM, puede utilizar el nombre de usuario como principal de la ACL para autorizar las solicitudes de los clientes.
Monitorización, métricas, registro y etiquetado
Sí, es posible etiquetar los clústeres de Amazon MSK mediante la CLI o la consola de AWS.
Las métricas a nivel del tema se incluyen en el conjunto predeterminado de métricas de Amazon MSK, las cuales son gratuitas. Las métricas a nivel de la partición se cobran de acuerdo con los precios de Amazon CloudWatch.
Puede habilitar la entrega del registro del agente para clústeres nuevos y existentes de Amazon MSK. Puede entregar los registros del agente a Amazon CloudWatch Logs, Amazon S3 y Kinesis Data Firehose. Kinesis Data Firehose admite Amazon Elasticsearch Service entre otros destinos. Para aprender cómo habilitar esta característica, visite la documentación de registro de Amazon MSK. A fin de conocer sobre los precios, diríjase a las páginas de precios de CloudWatch Logs y Kinesis Data Firehose.
Amazon MSK ofrece registros de nivel INFO para todos los agentes dentro del clúster.
Apache ZooKeeper
Integraciones
- Amazon VPC para aislamiento de red y seguridad
- Amazon CloudWatch para métricas
- Amazon KMS para cifrado de volúmenes de almacenamiento
- Amazon IAM para autenticación de API de clúster
- AWS CloudTrail para registros de API de AWS
- AWS Certificate Manager para las CA privadas empleadas en la autenticación de clientes mediante TLS
- AWS CloudFormation para describir y aprovisionar clústeres de Amazon MSK mediante el uso de código
- Amazon Kinesis Data Analytics para aplicaciones de Apache Flink completamente administradas
- AWS Secrets Manager para las credenciales de clientes utilizadas para la autenticación SASL/SCRAM
Escalado
Puede crear una política de auto scaling para almacenamiento utilizando la consola de administración de AWS o creando una política de Auto Scaling para la aplicación de AWS mediante AWS CLI o API.
Sí. Puede elegir escalar a un tipo de agente de mayor o menor tamaño en sus clústeres de Amazon MSK.
Puede utilizar Cruise Control para equilibrar particiones y administrar el calor. De manera alternativa, puede utilizar la API de administrador de Kafka kafka-reassign-partitions.sh para reasignar particiones entre agentes. Consulte la documentación de Control Cruise para obtener más información.
Precios y disponibilidad
P: ¿Debo pagar transferencia de datos como resultado de la replicación de datos?
Conformidad
- Cumplimiento de requisitos de HIPAA
- PCI
- ISO
- SOC 1, 2 Y 3
Para obtener una lista completa de los servicios y los programas de conformidad de AWS, consulte los Servicios de AWS en el ámbito del programa de conformidad.
Acuerdo de nivel de servicios
Introducción a Amazon MSK

Aprenda cómo configurar el clúster de Apache Kafka en Amazon MSK en esta guía paso a paso.

Comience a ejecutar su clúster de Apache Kafka en Amazon MSK. Inicie sesión en la consola de Amazon MSK.