Configuración de Kinesis Firehose en AWS

Clase 18 de 52Curso de Big Data en AWS

Resumen

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é.