Amazon Kinesis - Guia Completa (Claves para el Examen DEA-C01)
Introduccion
Amazon Kinesis es uno de los servicios que aparece con mayor frecuencia en la seccion Domain 1: Data Ingestion and Transformation (34%) del examen DEA-C01.
Kinesis no es un unico servicio, sino un conjunto de servicios disenados para el procesamiento de streaming en tiempo real. El examen se centra especialmente en las diferencias entre cada servicio y en la arquitectura de Kinesis Data Streams (KDS).
Esta guia cubre los conceptos clave que necesitas conocer para preparar el examen.
---
Los cuatro servicios de Kinesis de un vistazo
Kinesis se compone de cuatro servicios distintos. Como cada uno tiene un proposito claramente diferente, el examen presenta con frecuencia preguntas basadas en escenarios donde debes elegir el servicio correcto.
| Servicio | Funcion | Conceptos clave | | --- | --- | --- | | Kinesis Data Streams (KDS) | Captura y procesamiento de datos en tiempo real | Shards, procesamiento en tiempo real | | Kinesis Data Firehose | Entrega automatica de datos a almacenes de datos | Escalado automatico, carga de datos | | Kinesis Data Analytics | Analisis de datos en streaming con SQL o Flink | Analisis en tiempo real | | Kinesis Video Streams | Captura y procesamiento de streams de video | Analisis de video |
Puntos clave para el examen:
Necesitas implementar logica de procesamiento personalizada → Kinesis Data Streams Necesitas cargar datos automaticamente en S3 o Redshift → Firehose Necesitas analizar datos en streaming con SQL → Data Analytics
!Comparación de los 4 servicios de Kinesis
Arquitectura central de Kinesis Data Streams (Shards)
El concepto fundamental de Kinesis Data Streams es el Shard.
Todo el rendimiento y la escalabilidad se determinan en base a los shards.
| Aspecto | Detalle | | --- | --- | | Rendimiento de escritura por shard | 1 MB/seg o 1.000 registros/seg | | Rendimiento de lectura por shard | 2 MB/seg | | Tamano maximo de registro | 1 MB | | Retencion predeterminada | 24 horas | | Retencion maxima | 7 dias | | Garantia de orden | Dentro de un shard |
El punto clave del examen aqui es como calcular el rendimiento.
Si el rendimiento es insuficiente, puedes escalar anadiendo mas shards.
---
Modos de servicio: Provisioned vs On-Demand
Kinesis Data Streams ofrece dos modos de operacion.
| Modo | Caracteristicas | Caso de uso | | --- | --- | --- | | Provisioned | Especificas el numero de shards manualmente | Trafico predecible | | On-Demand | La capacidad se ajusta automaticamente | Trafico impredecible |
En el examen, la respuesta correcta se determina tipicamente por el patron de trafico.
El trafico es constante → Provisioned El trafico fluctua significativamente → On-Demand
---
Producers: como ingresan los datos
Las entidades que envian datos a un stream se llaman Producers.
Existen tres enfoques principales.
| Herramienta | Caracteristicas | Caso de uso | | --- | --- | --- | | AWS SDK | Llamadas directas a la API | Transmision basica de datos | | Kinesis Producer Library (KPL) | Transmision de alto rendimiento | Streaming a gran escala | | Kinesis Agent | Transmision automatica de archivos de log | Recopilacion de logs de servidor |
Dos escenarios aparecen con frecuencia en el examen:
Procesamiento de datos de streaming a gran escala → KPL Recopilacion automatica de logs en servidores Linux → Kinesis Agent
---
Consumers: como se leen los datos
Las aplicaciones que leen datos del stream se llaman Consumers.
El enfoque basico utiliza la API GetRecords.
| Aspecto | Detalle | | --- | --- | | Limite de llamadas | 5 llamadas/seg | | Tamano maximo de lectura | 10 MB | | Rendimiento | 2 MB/s por shard |
Cuando varios consumers leen datos simultaneamente, comparten el rendimiento.
Para resolver este problema, puedes usar la funcion Enhanced Fan-Out.
Con Enhanced Fan-Out:
Cada consumer obtiene rendimiento dedicado (2 MB/s) Multiples aplicaciones pueden leer el stream simultaneamente sin degradacion del rendimiento
---
KCL (Kinesis Client Library)
Cuando multiples instancias de aplicacion necesitan procesar un stream, se utiliza KCL.
Las funciones principales de KCL son las siguientes.
| Funcion | Descripcion | | --- | --- | | Procesamiento distribuido | Multiples workers procesan en paralelo | | Gestion de checkpoints | Guarda la posicion de procesamiento | | Recuperacion ante fallos | Reanuda desde el ultimo checkpoint |
La informacion de checkpoints se almacena en Amazon DynamoDB.
El punto clave del examen aqui es la relacion con el costo.
Checkpoints frecuentes aumentan los costos de DynamoDB Checkpoints poco frecuentes significan mas datos que reprocesar tras un fallo
---
Integracion de Lambda con Kinesis
Kinesis se usa muy frecuentemente junto con AWS Lambda.
Lambda sondea automaticamente el stream y procesa los nuevos datos.
| Funcion | Descripcion | | --- | --- | | Sondeo automatico | Lambda lee datos del stream | | Escalado automatico | Lambda escala segun el numero de shards | | Procesamiento paralelo | Usa Parallelization Factor |
Las dos formas principales de aumentar el rendimiento son:
Aumentar el Parallelization Factor Habilitar Enhanced Fan-Out
---
Division y fusion de shards
Cuando el trafico aumenta o disminuye, puedes ajustar los shards en consecuencia.
| Operacion | Descripcion | | --- | --- | | Splitting | Aumenta el numero de shards | | Merging | Reduce el numero de shards |
Despues de dividir un shard, debes prestar atencion al orden de procesamiento de datos.