Lambdas en big data: real time y batch

Clase 34 de 52Curso de Big Data en AWS

Contenido del curso

Extracción de información

Transformación de Información

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.