Lambdas en big data: real time y batch

Clase 34 de 52Curso de Big Data en AWS

Resumen

La potencia de AWS Lambda en big data brilla cuando combinamos fuentes de eventos, distribución inteligente y orquestación simple. Aquí verás cómo operar en tiempo real y en procesamiento batch con componentes como CloudWatch, SNS, SQS, Redis, VPC, NAT gateway, Elasticsearch, Kibana y S3, sin agregar complejidad innecesaria.

¿Cómo operar big data en tiempo real con AWS Lambda y Elasticsearch?

Un flujo de logs de CloudWatch dispara una Lambda de distribución (fan out) que reparte eventos a múltiples funciones. Estas funciones ingestan datos en Elasticsearch para su visualización en Kibana, cada una hacia índices diferentes según el tipo de evento. Así separamos, por ejemplo, producción y errores dentro del mismo cluster.

¿Dónde visualizar y cómo segmentar índices en Elasticsearch y Kibana?

  • Ingesta directa a Elasticsearch para consulta en Kibana.
  • Índice de producción y índice de errores en el mismo cluster.
  • Separación clara para análisis y monitoreo por tipo de evento.

¿Cómo evitar duplicados con SQS estándar y Redis?

  • SQS estándar garantiza entrega al menos una vez: pueden existir duplicados.
  • Una Lambda dentro de VPC consulta Redis para validar si el evento ya fue procesado.
  • Si Redis indica que no ha pasado, la Lambda ingesta en el endpoint de terceros.
  • Redis actúa como capa de deduplicación antes de un endpoint crítico.

¿Por qué ubicar lambdas en una VPC y usar NAT gateway?

  • La Lambda que consulta Redis está en subred privada dentro de una VPC.
  • Sale por NAT gateway para consultar Redis y retorna con la validación.
  • Garantiza acceso controlado a recursos internos y evita duplicidades en endpoints sensibles.

Además, en esta ruta puede integrarse Kinesis Firehose para alimentar directamente el clúster de Elasticsearch.

¿Qué papel tienen SNS, SQS y el patrón fan out en la distribución?

La Lambda de distribución recibe los eventos desde CloudWatch y los reparte mediante SNS a múltiples funciones. También podría usarse SQS: hoy las Lambdas reciben el trigger de SQS de cola estándar, lo que implica eventos potencialmente duplicados y la necesidad de idempotencia con apoyo de Redis cuando el endpoint lo requiere.

¿Cuándo usar SNS o SQS para distribuir eventos?

  • SNS: difusión a varios consumidores de forma simultánea.
  • SQS estándar: desacopla con entrega al menos una vez, con duplicados posibles.
  • Ambos soportan el patrón fan out con Lambdas consumidoras.

¿Qué implica el patrón fan out en Lambda?

  • Una Lambda central recibe todos los eventos.
  • Distribuye a múltiples Lambdas especializadas.
  • Alimenta diferentes endpoints y distintos índices en paralelo.

¿Cómo hacer map reduce con lambdas y S3 sin EMR?

Varias Lambdas, coordinadas con S3, pueden reemplazar una funcionalidad de EMR para un map reduce model en procesamiento batch. Un coordinator orquesta tareas de reducción y consolidación dentro de funciones, permitiendo un flujo por etapas con disparadores entre cargas a S3 y ejecuciones Lambda.

¿Qué componentes intervienen en el procesamiento batch?

  • Lambdas que envían eventos y resultados parciales a S3.
  • Disparadores que habilitan otras Lambdas según el avance.
  • Un coordinator que asegura la reducción y consolidación final.

¿Qué beneficio aporta esta orquestación?

  • Procesamiento batch sin clústeres dedicados.
  • Arquitectura orquestada únicamente con Lambdas y S3.
  • Alternativa para tareas tipo map reduce que antes vivían en EMR.

¿Tienes un caso de uso en mente para real time o batch con Lambda? Compártelo en los comentarios y enriquece la conversación con tu experiencia.