Mi Arquitectura Serverless 'Go-To' en AWS para Proyectos Rápidos y Escalables
Publicado el 17 de diciembre de 2023 en Cloud

Cuando necesito lanzar un backend rápido para un proyecto personal o una Prueba de Concepto (PoC), no pierdo tiempo configurando servidores, balanceadores de carga o gestionando conexiones a bases de datos. Tengo una arquitectura “Go-To” en AWS que me permite tener una API funcionando en minutos, no en días.
En este artículo, quiero compartir esta plantilla serverless que he refinado con el tiempo. Es una combinación de tres servicios clave de AWS que, juntos, ofrecen una velocidad de desarrollo, una escalabilidad automática y una eficiencia en costos que son difíciles de superar. Es la base que uso para validar ideas rápidamente y construir cimientos sólidos para aplicaciones más grandes.
El Trío Serverless: API Gateway, Lambda y DynamoDB
Mi stack se basa en tres servicios que se integran a la perfección:
- API Gateway: El Recepcionista. Es la puerta de entrada pública y segura a nuestra lógica de negocio. Se encarga de recibir las peticiones HTTP, gestionar la seguridad (API Keys, autenticación), controlar el tráfico y dirigir cada petición a la función correcta.
- AWS Lambda: El Trabajador. Aquí es donde vive nuestro código (en mi caso, generalmente Python). Son funciones que se ejecutan bajo demanda, sin que tengamos que preocuparnos por el servidor subyacente. Si llegan 10 peticiones, AWS ejecuta 10 instancias; si llegan 10,000, escala automáticamente. Pagas solo por los milisegundos que tu código se está ejecutando.
- DynamoDB: El Archivador. Como las funciones Lambda no tienen estado, necesitamos un lugar para guardar los datos. DynamoDB es una base de datos NoSQL ultra-rápida, con latencia de un solo dígito de milisegundo, ideal para el acceso rápido que requieren las funciones serverless.
Viéndolo en Acción: Un Flujo Típico
La belleza de esta arquitectura es su simplicidad. Un flujo de datos para una petición común, como crear un nuevo usuario, se vería así:
- Un cliente (una app web o móvil) envía una petición
POST
aapi.misitio.com/usuarios
. - API Gateway recibe la petición en esa ruta y la dirige a la función Lambda
crearUsuario
. - La función Lambda se ejecuta, valida los datos del cuerpo de la petición (nombre, email, etc.) y los escribe en la tabla
Usuarios
de DynamoDB. - La función devuelve un
201 Created
, que API Gateway transforma en una respuesta HTTP y la envía de vuelta al cliente.
Un ejemplo conceptual de cómo se vería la función Lambda en Python es sorprendentemente simple:
# fragmento de una función Lambda para crear un usuario
import boto3
import json
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Usuarios')
def handler(event, context):
try:
# 1. Obtener los datos del cuerpo de la petición
body = json.loads(event['body'])
user_id = body['user_id']
email = body['email']
# 2. Escribir en DynamoDB
table.put_item(
Item={
'user_id': user_id,
'email': email,
'status': 'activo'
}
)
# 3. Devolver una respuesta de éxito
return {
'statusCode': 201,
'body': json.dumps({'message': 'Usuario creado con éxito'})
}
except Exception as e:
# Manejo de errores
return {
'statusCode': 500,
'body': json.dumps({'error': str(e)})
}
Bonus: Infraestructura como Código (IaC)
Lo mejor de todo es que esta arquitectura completa (la API, la función, la tabla y los permisos entre ellos) se puede definir en un único archivo de configuración usando herramientas como Terraform o AWS SAM. Esto significa que puedes desplegar todo el backend con un solo comando, de forma repetible y segura.
Conclusión
Este stack serverless es mi receta para la velocidad y la escalabilidad. Me permite concentrarme en la lógica de negocio en lugar de en la gestión de infraestructura, reduce drásticamente los costos iniciales y me da la tranquilidad de que la aplicación puede crecer sin problemas.
Si buscas una forma eficiente de construir tus próximos proyectos, te recomiendo encarecidamente que pruebes esta combinación.
También te podría interesar

Arquitectura de un pipeline de datos en AWS
Te comparto mi arquitectura para construir un pipeline de datos moderno en AWS, desde la ingesta en tiempo real hasta el análisis. Una guía para tomar mejores decisiones de negocio.

Serverless en AWS: 3 servicios clave que simplifican mi desarrollo backend
La palabra 'serverless' es más que una moda. Te muestro cómo uso el trío de AWS Lambda, API Gateway y DynamoDB para lanzar APIs y microservicios de forma rápida y escalable.

De la Laptop a la Nube: Integrando Modelos de ML con AWS SageMaker
Tener un modelo de Machine Learning funcional es solo el primer paso. Descubre cómo usar Amazon SageMaker para desplegar, escalar y gestionar tus modelos en un entorno de producción real.

Escrito por
Osvaldo Trujillo
Ingeniero de Machine Learning, Arquitecto AWS y desarrollador. Apasionado por la tecnología y la creación de soluciones que aportan valor a través de los datos.
GitHub LinkedIn Contáctame