Configurar Kinesis Firehose en AWS es más simple cuando entiendes el flujo completo: crear un delivery stream, elegir la fuente, decidir si transformas los datos y definir el destino final. Aquí verás cómo hacerlo, qué opciones existen y qué parámetros afinan rendimiento, costos y seguridad.
¿Cómo configurar Kinesis Firehose paso a paso?
Para empezar, ingresa a la consola de AWS, busca Kinesis y crea un delivery stream. Asigna un nombre claro (por ejemplo, “Firehose Platzi”) y define la fuente de datos. Luego, decide si habrá transformación con Lambda y si aplicarás conversión a Parquet o Apache ORC. Por último, selecciona el destino y ajusta buffer, compresión, cifrado, logging y rol.
¿Qué fuentes de datos soporta Kinesis Firehose?
- Llamadas vía API con direct put: otros recursos envían records directamente.
- Kinesis stream: opción para que los records lleguen desde un flujo creado previamente.
- Agente de Kinesis: instalación de un agente para enviar datos desde servidores.
- AWS IoT con MQTT: integración con el Internet de las Cosas.
- CloudWatch Logs y CloudWatch Events: envío de registros y eventos como fuente.
¿Cómo activar la transformación con Lambda?
- Habilita la opción de transformación si necesitas limpiar o enriquecer datos.
- Selecciona una función de Lambda existente o crea una nueva.
- Si no la requieres, déjala deshabilitada para simplificar el flujo.
¿Conviene convertir a Parquet u ORC?
- Sí: usar Parquet u Apache ORC es más eficiente que JSON por su compresión y menor tamaño.
- Requiere configuraciones en Glue para habilitar la conversión.
- Si no lo necesitas aún, puedes dejarlo deshabilitado y activarlo después.
¿A qué destinos enviar los datos con Kinesis Firehose?
Firehose permite elegir entre varios destinos administrados según el caso de uso: almacenamiento duradero, analítica o búsqueda. Puedes enviar a Amazon S3, Amazon Redshift, Elasticsearch o Splunk.
¿Cómo funciona la entrega a Amazon S3?
- Selecciona el bucket y, si aplicas, un prefijo para organizar objetos.
- Es ideal para almacenamiento económico y procesamiento posterior.
¿Qué implica integrar con Redshift?
- Especifica el cluster, base de datos, tabla y columna de destino.
- Define un bucket intermedio en S3: Firehose escribe ahí antes de cargar en Redshift.
- Flujo recomendado: Firehose → S3 intermedio → Redshift.
¿Cómo configurar Elasticsearch o Splunk?
- Para Elasticsearch: elige el dominio existente, define el índice, decide rotación de índice, tipo y política de retry si falla el endpoint.
- Habilita un bucket de respaldo en S3 para almacenar entregas fallidas y reprocesarlas después.
- Para Splunk: conecta con el servidor o servicio donde corre Splunk para recibir la data procesada.
¿Qué parámetros finales optimizan rendimiento y seguridad?
Estos ajustes determinan latencia, costos, durabilidad y cumplimiento. Configúralos con cuidado antes de crear el delivery stream.
¿Cómo ajustar buffer e intervalo?
- Configura el S3 buffer condition: tamaño del buffer y intervalo de entrega.
- Mayor buffer reduce costos y llamadas, pero aumenta latencia.
- Menor buffer acelera la entrega, con más operaciones y costo potencial.
¿Qué opciones de compresión y cifrado existen?
- Habilita compresión y elige formato para reducir tamaño de archivo.
- Activa cifrado con Key Management System para proteger datos en reposo.
- Gestiona el logging: habilítalo para auditoría o desactívalo si no lo necesitas.
¿Por qué es esencial el rol de permisos?
- Firehose requiere un rol con permisos para interactuar con S3, Redshift, Elasticsearch, Splunk y otros servicios.
- Sin el rol adecuado, el flujo no puede leer/escribir ni aplicar transformaciones.
¿Ya decidiste tu fuente y destino ideales? Cuéntame en comentarios qué combinación te funciona mejor y por qué.