TL;DR:
En este lab vas a construir, paso a paso, un RAG completo con Amazon Bedrock Knowledge Bases sobre tus propios PDFs en S3, usando Titan Embeddings para crear el índice vectorial y hacer consultas naturales con grounding en tus documentos. En ~25–35 minutos montas la arquitectura en us-east-1, validas respuestas, revisas costos, monitoreo y seguridad, y te llevas un blueprint sencillo para entender GenAI “de verdad” y poder explicarla a otros.
Veremos: Creación del bucket S3, ingestión de documentos, generación de embeddings, configuración del índice vectorial y consultas inteligentes.
Tiempo estimado: 25–35 min
Decidí crear este lab porque quiero entender GenAI de verdad —no solo para un examen, sino para poder explicarlo, documentarlo y ayudar a otros que están empezando como yo.
Este post es parte de mi proceso para crecer en AWS, reforzar mi base en IA, mejorar mi habilidad de enseñar y construir contenido útil para la comunidad técnica.
🧭 Metadatos rápidos
| Campo | Valor |
|---|---|
| Categoría CB | AI/ML |
| Servicios AWS | Amazon Bedrock, Knowledge Bases, Amazon S3, Titan Embeddings |
| Requisitos previos | Cuenta AWS, permisos para Bedrock + S3, región us-east-1
|
| Costos estimados | Bajo (menos de \$0.50) |
| Arquitectura | Ver diagrama abajo |
🗺️ Tabla de contenidos (ToC)
- ¿Por qué importa?
- Arquitectura / Qué vas a construir
- Prerrequisitos
- Paso a paso
- Validación y pruebas
- Observabilidad (CloudWatch)
- Seguridad y buenas-prácticas
- Costos y optimización
- Errores comunes (Troubleshooting)
- Qué sigue
- Recursos oficiales
💡 ¿Por qué importa?
Hoy casi todas las empresas quieren agregar IA generativa a sus aplicaciones, pero no basta con “preguntarle” a un modelo:
necesitan respuestas basadas en su propio conocimiento, documentos internos, políticas, PDFs, etc.
Eso es RAG.
AWS lo simplifica con Knowledge Bases for Amazon Bedrock, que hace por ti:
- Extracción
- Vectorización (Titan Embeddings)
- Indexación
- Orquestación de RAG
- Consultas con grounding seguro
Mi motivación: Este fue uno de los labs que más me costaba crear con sandboxes. Así que lo reconstruí desde cero en una cuenta AWS Free Tier real, y quiero dejar los pasos exactos para que otros no sufran como yo.
🧰 Arquitectura / Qué vas a construir
Diagrama simple del flujo:
📄 **Documentos (PDF/Markdown/TXT)**
⬇️
🪣 **S3 Bucket (raw docs)**
⬇️
🧠 **Knowledge Base**
- Titan Embeddings
- Vector Index
⬇️
🤖 **Modelo en Amazon Bedrock** (ej. Claude 3 Haiku)
⬇️
💬 **Respuesta aumentada con contexto**
Puntos clave
- Titan hace los embeddings de forma automática.
- No necesitas manejar el índice vectorial manualmente (AWS lo gestiona).
- El modelo genera respuestas basadas en tus documentos, no solamente en lo que ya trae “pre-entrenado”.
✅ Prerrequisitos
- Cuenta AWS Free Tier
- Región: us-east-1
- Amazon Bedrock habilitado (primer uso requiere activarlo)
- Permisos IAM de laboratorio:
-
AmazonBedrockFullAccess -
AmazonS3FullAccess
-
🛠️ Paso a paso
Este lab se realiza 100% desde la consola de AWS.
1) Crear un bucket S3
- En tu consola AWS, busca: S3
- Clic en Create bucket
- Configura:
-
Bucket name:
kb-sina-rag-lab Region:
us-east-1Block Public Access: todas ON
Versioning: opcional (dejalo off)
Encryption: Deja lo que viene por defecto (SSE-S3)
2) Subir documentos
- Ve a S3 en tu consola AWS
- Abre tu bucket: kb-sina-rag-lab
- Haz clic en Upload
- Clic en Add files
- Selecciona tus 3 PDFs recién creados
- Clic en Upload
- Espera a que todos aparezcan con “Upload succeeded”
3) Crear la Knowledge Base
- Ve a Amazon Bedrock en la consola
- En el menú lateral, selecciona: Knowledge bases
- Clic en Create knowledge base
3.1 Basic settings
- Knowledge base name: En la pantalla de creación indica el nombre de tu Knowledge base
rag-lab-sina-kb
- Description: (opcional) RAG Knowledge Base para pruebas de GenAI usando mis documentos en S3.
3.2 Data source: Amazon S3.
- Bucket: Selecciona kb-sina-rag-lab. Clic next
3.3 Embeddings model: Titan Text Embeddings v2. Este modelo genera los embeddings para el vector store.
3.4 Vector store: OpenSearch Serverless (auto-configurado). Y deja la configuración automática (es perfecta para este lab).
Knowledge Base creado
4) Sincronizar e indexar
- En tu pantalla actual, ve abajo a la sección: Data source (1)
- Click Sync
Espera a que el estado cambie a:
- Sync successful
- Status: Up to date
- o simplemente green check ✔️
⏳ Esto puede tardar entre 30 segundos y 2 minutos dependiendo del tamaño de los PDFs.
5) Probar tu RAG en la consola
Aquí vas a ver:
- Cómo la KB busca contexto en tus documentos
- Cómo selecciona los fragmentos relevantes
- Cómo el modelo responde usando solo lo que tú subiste
- Cero alucinaciones (si el documento está claro)
1. En tu pantalla actual (rag-lab-sina-kb)
Busca el botón:Test Knowledge Base (y haz clic). Esto te abrirá una consola de chat simple.
📝 Nota importante Activar modelos generativos en Bedrock
Antes de probar la Knowledge Base, asegúrate de tener habilitado al menos un modelo generativo en Amazon Bedrock.
Para usar la pestaña Test de la Knowledge Base, necesitas seleccionar un modelo generativo. En cuentas nuevas de AWS (incluyendo Free Tier), los modelos Titan y Claude pueden no estar disponibles de inmediato.
La opción compatible y disponible por defecto es: Amazon Nova Micro
Después de habilitarlo, ya podrás probar tus consultas.
2. Escribe un prompt como:
Que dicen los documentos acerca de Bedrock?
3. Verifica que el modelo responde con grounding en tus archivos:
📊 Observabilidad (CloudWatch)
En este laboratorio trabajamos con OpenSearch Serverless, que es administrado por AWS. A diferencia de OpenSearch tradicional, esta versión no crea log groups automáticamente a menos que habilitemos políticas de logging específicas.
En CloudWatch → Log groups verás que no se generan logs por defecto, lo cual es normal para este tipo de servicio administrado y además ayuda a mantener el laboratorio dentro del Free Tier.
Sin embargo, sí podemos observar actividad del laboratorio en:
✔️ Bedrock Metrics
CloudWatch → Metrics → Bedrock
Aquí se registran las invocaciones del modelo y la latencia de cada llamada.
- En AWS Console → escribe CloudWatch
- Menú izquierdo → Metrics
- Selecciona Bedrock
- Luego seleccion All Models Lds
- Click en todas las metricas
✔️ CloudTrail (auditoría)
En la consola busca CloudTrail
- Entra en el servicio
- En el menú izquierdo, selecciona:Event history
- En la barra de filtros selecciona: Event Source
- En el buscador escribe: bedrock.amazonaws.com
Esto confirma que la KB está funcionando incluso si los logs de OpenSearch no se generan automáticamente.
🔐 Seguridad y buenas prácticas
Aunque este es un laboratorio simple, es importante seguir buenas prácticas desde el inicio. Aquí están las recomendaciones aplicables específicamente a una Knowledge Base de Bedrock:
- Nunca expongas tu bucket (mantén Block Public Access ON).
- Crea roles separados si piensas conectar la KB a aplicaciones.
- Usa documentos en texto claro cuando sea posible (mejor chunking).
💸 Costos y optimización
Costo estimado del lab:
- Titan Embeddings → unos centavos por la generación de embeddings (muy barato).
- Bedrock – Invocations → solo un par de llamadas (menos de 1 centavo cada una).
- OpenSearch Serverless (Vector Store) → modo on-demand, el costo mínimo posible.
- Amazon S3 → almacenamiento muy pequeño (tus PDFs y TXT), prácticamente $0.
- Total aproximado: $0.20–$0.50
🧯 Errores comunes
| Síntoma | Causa | Solución |
|---|---|---|
| KB no sincroniza | Ruta de S3 incorrecta | Revisar bucket y prefijo |
| No aparecen documentos | IAM insuficiente | Revisar permisos en rol de KB |
| Respuestas sin grounding | PDFs mal parseados | Usar formato TXT/Markdown o PDFs limpios |
🚀 Qué sigue
- Conectar esta KB a un Bedrock Agent
- Crear una API de RAG con Lambda + API Gateway
- Integrar identidad con Amazon Cognito






















Top comments (0)