Configuración de Kinesis Firehose en AWS

Clase 18 de 52Curso de Big Data en AWS

Contenido del curso

Extracción de información

Transformación de Información

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