Módulo 5: AWS Services for AI (S3, Lambda, SageMaker Basics)
1. Introducción: AWS Services for AI (S3, Lambda, SageMaker Basics)
Descripción
Esta es la primera cápsula del Módulo 5 de la Guía de Deployment & Cloud Infrastructure. Aquí vas a entender cómo S3, Lambda y SageMaker encajan como piezas de un sistema AI en AWS — y por qué usarlos juntos es diferente a usarlos en aislamiento. En el Módulo 4 probaste S3 y Lambda en LocalStack sin gastar un centavo. Ahora vas a profundizar en cómo esos mismos servicios operan en el contexto real de AWS, con IAM, costes, y patrones de integración que LocalStack no te enseña.
Por qué importa: Ya sabes crear buckets S3 y funciones Lambda localmente. Pero hay una distancia entre "funciona en LocalStack" y "funciona en producción AWS." Esa distancia se llama permisos (IAM), costes (S3 storage + Lambda invocations + SageMaker endpoints), y patrones de integración (S3 triggers, Lambda layers, event-driven pipelines). Este módulo cierra esa distancia. Al terminar, tendrás un servicio AI completo donde S3 almacena tus assets de AI, Lambda ejecuta inferencia, y sabrás cuándo SageMaker es mejor opción — con números, no opiniones.
¿Dónde Estamos en la Guía?
Contexto
Phase 1: Deployment Strategies (Módulos 1-3)
├── Módulo 1: Understanding Deployment Options ✅ COMPLETADO
├── Módulo 2: Local & Container Deployment ✅ COMPLETADO
└── Módulo 3: Serverless & Lambda for AI ✅ COMPLETADO
Phase 2: Cloud Infrastructure & Migration (Módulos 4-6)
├── Módulo 4: LocalStack — AWS Local Development ✅ COMPLETADO
├── Módulo 5: AWS Services for AI ← ESTÁS AQUÍ
└── Módulo 6: Cloud Migration Patterns
Phase 3: Alternatives & Production (Módulos 7-8)
├── Módulo 7: Alternative Platforms (Render, Railway, Fly.io)
└── Módulo 8: Proyecto Integrador — Deployed AI System
Duración total estimada de la guía: 10-12 horas (self-paced).
Transición desde Módulo 4
En el Módulo 4 conquistaste LocalStack: levantaste S3 y Lambda localmente, construiste un pipeline AI contra APIs simuladas, y validaste que tu código boto3 funciona sin cuenta AWS. Eso te dio tres cosas:
- Confianza — Tu código interactúa con S3 y Lambda correctamente, lo probaste localmente.
- Velocidad — Iteras sin esperar deploys a la nube ni pagar por errores.
- Portabilidad — Aprendiste que boto3 funciona igual contra LocalStack y AWS cambiando solo el endpoint.
Ahora viene la pregunta que LocalStack no responde: ¿cómo operas estos servicios en producción real?
- Permisos: En LocalStack no hay IAM real. En AWS, tu Lambda necesita un rol con permisos específicos para acceder a S3. Sin el rol correcto, tu función falla con
AccessDenied. - Costes: En LocalStack todo es gratis. En AWS, cada operación S3, cada milisegundo de Lambda, cada hora de SageMaker endpoint cuesta dinero. Necesitas estimar antes de desplegar.
- Integración real: S3 puede triggerear Lambda automáticamente cuando se sube un archivo. Lambda puede escribir resultados a S3. SageMaker puede servir modelos custom. Estos patrones de integración son el corazón de un sistema AI en AWS.
- SageMaker: LocalStack no simula SageMaker. Aquí aprenderás qué es, cuándo usarlo vs Lambda, y cómo funciona un endpoint básico.
Este módulo te lleva de "funciona en local" a "entiendo cómo funciona en AWS real."
Qué Es AWS Services para AI
AWS como plataforma de AI: las piezas que importan
AWS tiene 200+ servicios. Para un sistema AI, necesitas entender tres:
AWS Services para AI (este módulo):
├── S3 (Simple Storage Service)
│ ├── Almacena modelos, embeddings, documentos RAG
│ ├── Sirve como data lake de tu sistema AI
│ └── Trigger de eventos (archivo nuevo → Lambda se ejecuta)
│
├── Lambda (Serverless Compute)
│ ├── Ejecuta inferencia: lee assets de S3, invoca LLM
│ ├── Procesa eventos: S3 trigger, API Gateway, scheduled
│ └── Escala automáticamente de 0 a miles
│
└── SageMaker (ML Platform — basics)
├── Despliega modelos custom (no APIs externas)
├── Endpoints de inferencia dedicados
└── Cuándo usarlo vs Lambda → decision framework
Por qué estos tres y no otros
Podrías usar DynamoDB, SQS, Step Functions, ECS, y docenas más. Pero para un sistema AI típico, el 80% del valor viene de S3 + Lambda:
- S3 es donde viven tus datos. Modelos serializados, archivos de embeddings, documentos para RAG, templates de prompts versionados, logs de inferencia para auditoría.
- Lambda es donde se ejecuta tu lógica. Lee de S3, construye el prompt, invoca el LLM (OpenAI, Anthropic), procesa la respuesta, la guarda en S3.
- SageMaker es la opción cuando Lambda no alcanza: modelos custom que necesitas servir (no APIs externas), entrenamiento, inferencia con modelos de >1GB.
La analogía del estudio de arquitectura AI
Piensa en AWS como un estudio de arquitectura para tu sistema AI:
- S3 es tu archivo de planos. Guarda todo: los diseños (modelos), las especificaciones (embeddings), los documentos del cliente (datos RAG), las plantillas (prompt templates). Todo organizado en carpetas (prefijos), accesible cuando lo necesites.
- Lambda es tu equipo de trabajo on-demand. No pagas por tenerlos sentados esperando. Cuando llega un proyecto (request), se activan, consultan el archivo (S3), hacen el trabajo (inferencia), entregan el resultado, y se van. Pagas por el trabajo hecho.
- SageMaker es tu taller especializado. Para cuando necesitas fabricar piezas custom (modelos propios), no solo ensamblar componentes de terceros (APIs). Tiene más capacidad, pero también más coste y complejidad.
La pregunta no es "¿cuál uso?" sino "¿cuáles combino para mi caso?"
Objetivo del Módulo
Al terminar este módulo serás capaz de:
- ✅ Usar S3 para almacenar y recuperar assets de AI: modelos, embeddings, documentos RAG, prompt templates — con organización por prefijos
- ✅ Implementar operaciones S3 con boto3: put_object, get_object, list_objects_v2, generate_presigned_url, delete_object
- ✅ Construir un flujo completo S3 → Lambda → S3: Lambda lee prompt template de S3, invoca LLM, escribe respuesta a S3
- ✅ Configurar S3 event notifications que triggerean Lambda automáticamente
- ✅ Explicar qué es SageMaker y cuándo usarlo vs Lambda, con criterio técnico
- ✅ Crear IAM roles con permisos mínimos para Lambda → S3, siguiendo least privilege
- ✅ Estimar costes de AWS para un sistema AI: S3 storage + requests, Lambda compute, SageMaker endpoint uptime
- ✅ Integrar el conocimiento de LocalStack (M4) con servicios AWS reales
Objetivo profesional
Cuando tu equipo diga "vamos a poner los datos del RAG en S3 y usar Lambda para inferencia," vas a saber exactamente qué preguntar: "¿Qué estructura de bucket? ¿Qué permisos necesita Lambda? ¿Cuánto va a costar a nuestro volumen? ¿Necesitamos SageMaker o Lambda es suficiente?" Y vas a poder implementarlo — no solo opinar.
Roadmap del Módulo
Mapa de cápsulas
| # | Cápsula | Qué aprenderás | Tipo |
|---|---|---|---|
| 01 | Introducción (esta) | Context, objetivos, setup, roadmap | Intro |
| 02 | S3 para AI Assets | Almacenar modelos, embeddings, RAG docs con boto3. Organización de buckets | Técnica |
| 03 | Lambda para Inferencia AI | Lambda que invoca LLM desde AWS, error handling, retry, structured output | Técnica |
| 04 | Integración S3 + Lambda | S3 trigger → Lambda → S3. Flujo event-driven completo | Técnica |
| 05 | SageMaker Basics | Qué es, cuándo usar vs Lambda, deploy básico de endpoint | Técnica |
| 06 | IAM y Permisos Mínimos | Roles, policies, least privilege para Lambda→S3 | Técnica |
| 07 | Cost Estimation AWS AI | Calculadora de costes para S3, Lambda, SageMaker con números reales | Técnica |
| 08 | Proyecto: S3+Lambda AI Service | Servicio AI completo con S3, Lambda, IAM, cost estimation | Proyecto |
Flujo de aprendizaje
Primero dominarás S3 como data layer de tu sistema AI: organización, operaciones boto3, patrones de almacenamiento para modelos y RAG (cápsula 02). Luego implementarás Lambda como capa de inferencia en contexto AWS real: invocación de LLMs, error handling robusto, structured output (cápsula 03). Después integrarás ambos en un flujo event-driven: S3 trigger → Lambda → procesa → escribe a S3 (cápsula 04). Explorarás SageMaker basics para saber cuándo Lambda no es suficiente (cápsula 05). Aprenderás IAM para que tu sistema sea seguro en producción (cápsula 06). Estimarás costes para no recibir sorpresas en la factura (cápsula 07). Y finalmente integrarás todo en un servicio AI funcional (cápsula 08).
La progresión es: storage → compute → integración → alternativas → seguridad → costes → proyecto.
Duración estimada del módulo: 1.25-1.5 horas.
Conexión con el Proyecto
Proyecto de este módulo: S3+Lambda AI Service
El S3+Lambda AI Service es un servicio que:
- Almacena assets de AI en S3 (prompt templates, documentos RAG, embeddings)
- Usa Lambda para leer assets, construir prompts contextualizados, invocar un LLM
- Persiste las respuestas en S3 para auditoría y reutilización
- Tiene permisos IAM configurados con least privilege
- Incluye estimación de costes para diferentes volúmenes de uso
┌─────────────────────────────────┐
│ S3 Bucket │
│ ai-assets-{account-id}/ │
│ ├── prompts/ │
│ │ └── summarizer-v1.txt │
│ ├── documents/ │
│ │ └── knowledge-base.json │
│ └── responses/ │
│ └── 2026-03-08/resp-001.json│
└───────┬───────────────┬──────────┘
│ ↑
S3 trigger put_object
(new doc) (response)
↓ │
┌───────┴───────────────┴──────────┐
│ Lambda Function │
│ ├── Lee prompt template de S3 │
│ ├── Lee documento de S3 │
│ ├── Construye prompt contextual │
│ ├── Invoca OpenAI API │
│ └── Escribe respuesta a S3 │
└──────────────┬────────────────────┘
│
┌────┴────┐
│ OpenAI │
│ API │
└─────────┘
Conexión con módulos anteriores y posteriores
Módulo 3: Lambda AI Endpoint → función Lambda funcional (base)
↓
Módulo 4: LocalStack → probaste S3 + Lambda localmente, gratis
↓
Módulo 5: AWS Services → profundizas integración, IAM, costes ← ESTÁS AQUÍ
↓
Módulo 6: Migration → mismo código en LocalStack y AWS
↓
Módulo 8: Proyecto Integrador → S3+Lambda como opción de deployment
Prerequisitos
Lo que ya sabes
- ✅ Lambda fundamentals — Handler, event, context, packaging (Módulo 3)
- ✅ Docker Compose — Multi-container, services (Módulo 2)
- ✅ LocalStack — S3 local, Lambda local, boto3 con endpoint_url (Módulo 4)
- ✅ boto3 básico — Crear buckets, subir archivos, invocar Lambda (Módulo 4)
- ✅ Python intermedio — Clases, async, manejo de errores
- ✅ Apps AI — Has invocado LLMs desde código (OpenAI SDK)
Lo que aprenderás aquí (nuevo)
- S3 como data layer para AI: organización, lifecycle, presigned URLs
- Lambda para inferencia AI en contexto AWS real: IAM roles, triggers, retry patterns
- Integración S3 ↔ Lambda: event-driven AI pipelines
- SageMaker basics: qué es, cuándo usarlo, endpoint deploy
- IAM least privilege: roles, policies, security boundaries
- Cost estimation: pricing models de S3, Lambda, SageMaker con calculadora
Si te falta algo
| Te falta | Recurso recomendado |
|---|---|
| Lambda fundamentals | Módulo 3 de esta guía |
| LocalStack | Módulo 4 de esta guía |
| Docker Compose | Módulo 2 de esta guía |
| Decision Framework | Módulo 1 de esta guía |
| Python + FastAPI | Python REST APIs for AI Guide — NIEVA |
| Apps AI | AI Engineering Bootcamp — NIEVA |
Nota sobre LocalStack vs AWS real
Todos los ejemplos de este módulo funcionan tanto con AWS real como con LocalStack. Si no tienes cuenta AWS, sigue usando LocalStack del Módulo 4 — los conceptos son idénticos, los comandos boto3 son los mismos. La diferencia principal es IAM (LocalStack no lo enforcea) y costes (LocalStack es gratis). Cuando el módulo mencione "en AWS real," entiéndelo como "el comportamiento que tendrás cuando migres a AWS" — que es exactamente lo que harás en el Módulo 6.
Setup Técnico
Herramientas necesarias
# Python 3.10+ (mismo que módulos anteriores)
python --version
# boto3 (AWS SDK para Python)
pip install boto3
python -c "import boto3; print(boto3.__version__)"
# AWS CLI v2 (configurado en M3)
aws --version
# OpenAI SDK (para inferencia en Lambda)
pip install openai
Configuración de credenciales
Tienes dos opciones para trabajar este módulo:
Opción 1: AWS real (si tienes cuenta)
# Verificar que AWS CLI está configurado
aws sts get-caller-identity
# Output esperado:
# {
# "UserId": "AIDAEXAMPLE",
# "Account": "123456789012",
# "Arn": "arn:aws:iam::123456789012:user/tu-usuario"
# }
# Si no está configurado:
aws configure
# AWS Access Key ID: tu-access-key
# AWS Secret Access Key: tu-secret-key
# Default region: us-east-1
# Default output format: json
Opción 2: LocalStack (sin cuenta AWS, sin coste)
# Levantar LocalStack (si aún no lo tienes del M4)
docker run -d --name localstack \
-p 4566:4566 \
-e SERVICES=s3,lambda,iam,sagemaker \
localstack/localstack
# Configurar AWS CLI para usar LocalStack
export AWS_ENDPOINT_URL=http://localhost:4566
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1
# Verificar
aws --endpoint-url=http://localhost:4566 s3 ls
Todos los ejemplos de este módulo funcionan con ambas opciones. En código boto3, la diferencia es una línea:
import boto3
# AWS real
s3 = boto3.client("s3")
# LocalStack
s3 = boto3.client("s3", endpoint_url="http://localhost:4566")
En el Módulo 6 aprenderás a abstraer esto con environment variables para que el mismo código funcione en ambos entornos sin cambios.
Crear estructura del módulo
mkdir -p module-05/{s3-operations,lambda-inference,integration,tests}
cd module-05
# Estructura
# module-05/
# ├── s3-operations/
# │ └── s3_ai_assets.py # Operaciones S3 para AI
# ├── lambda-inference/
# │ ├── handler.py # Lambda para inferencia
# │ └── requirements.txt
# ├── integration/
# │ └── s3_lambda_flow.py # Integración S3 + Lambda
# ├── tests/
# │ └── test_s3_operations.py
# └── .env
Límites: Qué NO Cubre Este Módulo
- ❌ SageMaker avanzado — Training jobs, pipelines, feature store, MLOps. SageMaker tiene profundidad para una guía completa por sí solo. Aquí es "basics": qué es, cuándo usarlo, endpoint deploy. Si necesitas más, consulta la documentación de SageMaker directamente.
- ❌ DynamoDB, SQS, SNS — Servicios útiles pero fuera del scope de este módulo. El foco es S3 + Lambda + SageMaker basics.
- ❌ Terraform/CDK — Infrastructure as Code avanzado. Usamos boto3 directo y SAM para mantener el foco en los servicios, no en IaC tooling.
- ❌ Multi-account strategies — AWS Organizations, cross-account access. Esto es enterprise AWS, no deployment para AI systems.
- ❌ Data engineering completo — ETL pipelines, Glue, Athena. Usamos S3 como storage para AI assets, no como data lake analytics.
- ❌ Modelos custom ML — Entrenar y servir tu propio modelo. Si necesitas esto, SageMaker (la versión completa, no basics) es tu camino.
Qué sí cubrimos (y por qué)
| Tema | Razón |
|---|---|
| S3 para AI assets | Es donde viven los datos de tu sistema AI |
| Lambda para inferencia | Es la capa de compute serverless que conecta S3 con LLMs |
| Integración S3 ↔ Lambda | El patrón event-driven que hace que el sistema funcione solo |
| SageMaker basics | Para que sepas cuándo Lambda no es suficiente |
| IAM least privilege | Sin permisos correctos, tu sistema no funciona (o es inseguro) |
| Cost estimation | Sin estimación, tu sistema puede costarte más de lo esperado |
Evidencia de Éxito
Al terminar este módulo, sabrás que tuviste éxito si:
- ✅ Tu código boto3 sube y recupera assets de AI (modelos, embeddings, prompt templates) de S3
- ✅ Tu Lambda lee de S3, invoca un LLM, y escribe la respuesta de vuelta a S3
- ✅ Un S3 event trigger dispara tu Lambda automáticamente cuando se sube un archivo
- ✅ Puedes explicar cuándo usar SageMaker vs Lambda con argumentos técnicos
- ✅ Tu Lambda tiene un IAM role con permisos mínimos (no
*en recursos) - ✅ Puedes estimar el coste mensual de tu servicio AI a 1K, 10K, y 100K invocaciones
- ✅ Puedes ejecutar el mismo código contra LocalStack y AWS cambiando solo el endpoint
Test rápido de autoevaluación
Si puedes responder estas preguntas, vas por buen camino:
- ¿Cómo organizarías un bucket S3 para un sistema RAG con múltiples colecciones de documentos?
- ¿Qué permisos IAM mínimos necesita Lambda para leer de un bucket S3 específico?
- ¿Cuánto cuesta almacenar 10GB de embeddings en S3 durante un mes?
- ¿Cuándo elegirías SageMaker en lugar de Lambda para inferencia?
Resumen
- Del M4 (LocalStack) al M5 (AWS real): pasas de simular servicios a entenderlos en contexto de producción — permisos, costes, e integraciones reales.
- S3 + Lambda es el 80% de tu sistema AI en AWS. S3 almacena assets, Lambda ejecuta inferencia. Juntos forman un pipeline event-driven serverless.
- SageMaker se cubre a nivel basics. Saber qué es y cuándo usarlo es suficiente para este módulo — no es un deep dive de MLOps.
- IAM no es opcional. En producción, permisos mal configurados significan "AccessDenied" o, peor, brechas de seguridad.
- Costes importan. Estima antes de desplegar. S3 es barato, Lambda es variable, SageMaker endpoints son caros si los dejas encendidos.
- El código de este módulo se reutiliza en M6 (Migration) y M8 (Proyecto Integrador).
Recursos Adicionales
- AWS S3 Developer Guide — Documentación oficial de S3
- boto3 S3 Client Reference — Referencia completa del client S3
- AWS Lambda Developer Guide — Python — Lambda con Python
- Amazon SageMaker Documentation — Documentación oficial de SageMaker
- AWS IAM Best Practices — Best practices de IAM
- AWS Pricing Calculator — Calculadora de costes AWS
- LocalStack Documentation — Para desarrollo local sin coste