Amazon Kinesis

Familia de servicios de streaming de datos completamente administrados que permite recopilar, procesar y analizar grandes volúmenes de datos en streaming en tiempo real

Descripción general

Amazon Kinesis es una familia de servicios para procesar datos de streaming en tiempo real a gran escala. Kinesis Data Streams es el servicio central, capaz de ingerir millones de registros por segundo con baja latencia, permitiendo que múltiples consumidores procesen en paralelo. Kinesis Data Firehose permite construir pipelines ETL que entregan automáticamente los datos ingeridos a S3, Redshift, OpenSearch y otros destinos, operando sin necesidad de programación. Se adopta en casos de uso donde el procesamiento por lotes no es suficiente, como telemetría de dispositivos IoT, clickstreams de aplicaciones web y análisis en tiempo real de transacciones financieras.

Criterios de decisión entre Data Streams y Data Firehose

Kinesis Data Streams es una infraestructura de streaming primitiva que controla el throughput por unidad de shard, con una capacidad de 1 MB/s de escritura y 2 MB/s de lectura por shard. Permite implementar libremente la lógica del lado del consumidor, siendo adecuado para procesamiento en tiempo real con Lambda o aplicaciones propias. Por otro lado, Data Firehose es un servicio administrado que automatiza la transformación de datos (procesamiento mediante Lambda) y la escritura en destinos, sin necesidad de gestión de shards. El criterio de decisión es claro: si se requiere latencia de procesamiento en tiempo real inferior a 200 milisegundos, se selecciona Data Streams; si se tolera un retraso de decenas de segundos a minutos y el único objetivo es la escritura en destinos, se selecciona Firehose.

Diseño de shards y consideraciones sobre retención de datos

Lo más importante en el diseño de Data Streams es la estimación del número de shards. En modo bajo demanda se escala automáticamente según el tráfico, pero al facturarse por el throughput pico, en cargas de trabajo estables el modo provisionado puede ser más de un 50% más económico. El período de retención de datos puede extenderse hasta 365 días, siendo ventajoso frente a Azure Event Hubs Standard tier (máximo 7 días) en casos de uso que requieren retención a largo plazo. Al habilitar Enhanced Fan-Out, cada consumidor obtiene un throughput de lectura dedicado de 2 MB/s, pero genera cargos adicionales por consumidor, por lo que debe evaluarse la relación costo-beneficio cuando hay 3 o más consumidores. Libros relacionados con análisis de datos (Amazon) permiten aprender patrones de diseño de procesamiento de streaming.

Ejemplo de construcción de dashboard en tiempo real

El patrón de uso representativo de Kinesis es la construcción de dashboards en tiempo real. Una configuración típica envía logs de acceso de aplicaciones web a Kinesis Data Streams, realiza agregación en tiempo real con Lambda, escribe en DynamoDB y entrega al frontend vía API Gateway. En la recopilación de telemetría de dispositivos IoT, una arquitectura de dos niveles es efectiva: recibir datos de sensores enviados cada segundo desde decenas de miles de dispositivos con Data Streams, acumularlos en S3 con Firehose, y simultáneamente detectar valores anómalos en tiempo real con Lambda para notificar vía SNS. En el análisis en tiempo real de transacciones financieras, el diseño de la partition key es crucial: usar el ID de transacción como clave genera hotspots en shards específicos, por lo que es necesario agregar sufijos aleatorios para distribuir la carga.

共有するXB!