Qué es
Amazon Kinesis Data Streams captura y guarda flujos de datos en tiempo real: clics de una web, telemetría de dispositivos, registros de aplicaciones o transacciones. Los productores escriben registros en un stream y uno o varios consumidores los leen en orden, cada uno a su ritmo, en milisegundos. A diferencia de una cola, los datos no desaparecen al leerlos: se conservan durante el periodo de retención y se pueden volver a leer.
Conceptos clave
- Shard: unidad de capacidad de un stream: 1 MB/s o 1 000 registros por segundo de escritura y 2 MB/s de lectura.
- Modos de capacidad: bajo demanda (escala solo, sin gestionar shards) o aprovisionado (eliges el número de shards y lo cambias con resharding).
- Clave de partición: decide a qué shard va cada registro; los registros con la misma clave van al mismo shard y se leen en orden. Una clave poco variada crea shards calientes.
- Tamaño de registro: 1 MiB por defecto, ampliable hasta 10 MiB para registros grandes ocasionales.
- Retención: 24 horas por defecto, ampliable hasta 365 días.
- Consumidores: Lambda, aplicaciones con la KCL (Kinesis Client Library), Amazon Managed Service for Apache Flink para análisis en streaming, Amazon Data Firehose para entregar a S3 (Simple Storage Service) o Redshift. Con enhanced fan-out cada consumidor tiene sus propios 2 MB/s por shard.
- Productores: SDK (Software Development Kit: bibliotecas para programar contra AWS), KPL (Kinesis Producer Library), agente de Kinesis o servicios de AWS.
Casos de uso típicos
- Analítica en tiempo real de clics, juegos o redes sociales.
- Telemetría de dispositivos IoT (internet de las cosas) y vehículos.
- Centralizar registros y eventos para varios consumidores (alertas, archivo, análisis).
- Captura de cambios de bases de datos para procesarlos en orden.
Cuándo NO usarlo
- Solo cargar datos en S3, Redshift u OpenSearch sin procesarlos en tiempo real: Amazon Data Firehose directamente.
- Desacoplar tareas donde cada mensaje lo procesa un solo trabajador y se borra: SQS (Simple Queue Service).
- Si el equipo ya usa Apache Kafka y quiere su API (Application Programming Interface: interfaz para que los programas se comuniquen): MSK (Managed Streaming for Apache Kafka).
Kinesis Data Streams, Firehose y SQS
| Característica | Kinesis Data Streams | Data Firehose | SQS |
|---|---|---|---|
| Latencia | Milisegundos | Segundos (con búfer) | Milisegundos |
| Consumidores | Varios, cada uno lee todo | Destino gestionado | Uno por mensaje |
| Relectura | Sí, dentro de la retención | No | No |
| Orden | Por clave de partición | No aplica | Solo en FIFO (First In, First Out: el primero en entrar es el primero en salir) |
| Gestión | Shards o bajo demanda | Sin servidores | Sin servidores |
Modelo de precios
En modo aprovisionado se paga por hora de shard y por unidades de datos escritos; en bajo demanda, por hora de stream y por GB escrito y leído. La retención ampliada, el enhanced fan-out y los registros grandes tienen coste adicional.
Seguridad y alta disponibilidad
- Datos replicados en tres zonas de disponibilidad.
- Cifrado en reposo con KMS (Key Management Service) y en tránsito con TLS (Transport Layer Security: cifrado de las conexiones).
- Acceso con IAM (Identity and Access Management) y endpoint de VPC (Virtual Private Cloud) para no salir a internet.
Trampas de examen
- "Tiempo real", "varios consumidores" o "volver a leer los datos": Kinesis Data Streams.
- "Cargar en S3 o Redshift casi en tiempo real sin código": Firehose.
- "ProvisionedThroughputExceeded": más shards, modo bajo demanda o mejor clave de partición.
- "Orden por cliente": clave de partición igual al identificador del cliente.
- "Cada consumidor necesita su propio rendimiento": enhanced fan-out.
- "Guardar los datos una semana para reprocesar": ampliar la retención.
Preguntas de práctica
Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.
Fuentes
- What is Amazon Kinesis Data Streams?, documentación de AWS (consultada el 26/09/2026).
- Choose the data stream capacity mode, documentación de AWS (consultada el 26/09/2026).
- Handle large records, documentación de AWS (consultada el 26/09/2026).
- Develop enhanced fan-out consumers with dedicated throughput, documentación de AWS (consultada el 26/09/2026).