Pipeline de datos en tiempo real con Amazon Kinesis - Diferenciación entre Data Streams y Data Firehose

Ingeste datos en tiempo real con Data Streams y distribúyalos automáticamente a S3, Redshift y OpenSearch con Data Firehose. Explicamos cómo construir un pipeline de streaming con diseño de shards y diferenciación del modo bajo demanda.

Descripción general de Kinesis

Kinesis es un conjunto de servicios que proporciona recopilación, procesamiento y análisis de datos de streaming en tiempo real. Data Streams ofrece procesamiento en tiempo real con consumidores personalizados, Data Firehose proporciona distribución automática a S3 y Redshift, y Managed Apache Flink ofrece procesamiento SQL/Flink sobre datos de streaming.

Diferenciación entre Data Streams y Firehose

Data Streams gestiona el throughput por unidad de shard e implementa procesamiento personalizado con Lambda o KCL (Kinesis Client Library). Es adecuado para alertas en tiempo real que requieren latencia sub-segundo o cuando múltiples consumidores leen el mismo stream. Data Firehose almacena automáticamente en buffer los datos de los productores y los entrega a S3, Redshift, OpenSearch y otros destinos. No requiere gestión de shards y es ideal para pipelines de entrega de datos donde la latencia de minutos es aceptable. Ambos pueden combinarse: Data Streams para procesamiento en tiempo real y Firehose para archivo a largo plazo del mismo stream.

Patrones de diseño de Data Streams

El número de shards de Data Streams se determina por los requisitos de throughput. Un shard proporciona 1 MB/s de escritura (1.000 registros/s) y 2 MB/s de lectura. En el modo bajo demanda, el número de shards se ajusta automáticamente, mientras que en el modo aprovisionado se configura manualmente. El diseño de la clave de partición controla la distribución de datos y previene shards calientes (sesgo hacia shards específicos). Al habilitar el fan-out mejorado, cada consumidor obtiene un throughput dedicado de 2 MB/s por shard, eliminando la contención entre consumidores. La integración con Lambda como Event Source Mapping permite procesar registros del stream sin gestionar consumidores.

Optimización de precios de Kinesis

El modo aprovisionado de Data Streams se cobra por hora de shard (aproximadamente 0,015 USD/hora) y unidades de payload PUT (en unidades de 25 KB, aproximadamente 0,014 USD por millón de unidades). El modo bajo demanda se cobra por volumen de datos ingestados (aproximadamente 0,08 USD por GB) y volumen de lectura, siendo adecuado para cargas de trabajo con tráfico variable. Data Firehose se cobra por volumen de datos ingestados (aproximadamente 0,029 USD por GB). La agregación de registros (combinar múltiples registros pequeños en un solo registro) reduce el número de unidades de payload PUT y optimiza costos.

Resumen

Kinesis es la base de procesamiento de datos de streaming en tiempo real. Implemente procesamiento personalizado en tiempo real con Data Streams y logre procesamiento paralelo de múltiples consumidores con fan-out mejorado. Automatice la entrega a S3 y Redshift con Data Firehose y optimice costos reduciendo las unidades de payload PUT con agregación de registros. También puede eliminar la carga operativa de gestión de shards con el modo bajo demanda.