El otro día uno de ustedes me preguntó:
¿Cómo se diseñan arquitecturas serverless?
Le respondí que para diseñar arquitecturas necesitas tres cosas:
- Entender el problema del cliente.
- Conocer patrones de diseño de sistemas distribuidos y microservicios.
- Saber qué servicios existen en AWS, qué hacen y cómo usarlos.
Ya les mostré cómo hago mis páginas web serverless en AWS, con una arquitectura muy simple que repito en casi todos mis proyectos.
Hoy quiero dar un paso atrás y mostrarles las piezas con las que se construyen estas arquitecturas.
En este artículo te voy a listar los servicios serverless más usados.
En AWS hay más de 200 servicios, muchos de ellos serverless o gestionados. No vas a usar todos, pero es clave conocer cuáles son los más comunes. Así, cuando veas un diagrama (como el de la semana pasada ☝️), vas a poder identificar qué hace cada servicio.
AWS Lambda
El servicio que hizo famoso el término serverless. Ejecuta tu código sin servidores, escala automáticamente y solo pagás por uso. La ejecución puede durar hasta 15 minutos.
AWS Step Functions
Orquesta funciones Lambda, llamadas a APIs y servicios de AWS en flujos de trabajo. La ejecución puede durar hasta un año. Ideal para aplicaciones complejas que combinan varios servicios.
AWS Amplify Hosting
La forma más sencilla de hostear aplicaciones web en AWS. Combina S3, CloudFront y otras funcionalidades para que desplegar tu web sea muy fácil.
Amazon CloudFront
CDN de AWS. Lleva tus archivos, sitios y APIs cerca de tus usuarios con baja latencia. Tiene puntos de presencia en todo el mundo.
Amazon Route 53
Servicio de DNS. Te permite comprar dominios, gestionar registros y enrutar tráfico hacia tus aplicaciones serverless.
Amazon Cognito
Autenticación y autorización de usuarios. Soporta login social, federación y entrega credenciales temporales para AWS.
Amazon DynamoDB
La base de datos NoSQL serverless de AWS. Escala automáticamente, tiene baja latencia y se usa mediante API (sin gestionar conexiones).
Amazon Simple Storage Service (Amazon S3)
El servicio original serverless. Almacena objetos como archivos estáticos, imágenes, videos o sitios web. Sencillo y al mismo tiempo muy poderoso.
Amazon API Gateway
Crea APIs REST o WebSocket para exponer tus Lambdas y otros servicios.
AWS AppSync
Servicio para crear APIs GraphQL y sincronizar datos en tiempo real.
Amazon EventBridge
Bus de eventos serverless que conecta aplicaciones sin integraciones personalizadas. Incluye Scheduler (cron jobs) y Pipes (para conectar fuentes de datos).
Amazon Simple Notification Service (Amazon SNS)
Servicio de publicación/suscripción. Envía mensajes a múltiples destinos: Lambdas, colas, emails o notificaciones push.
Amazon Simple Queue Service (Amazon SQS)
Servicio de colas para desacoplar componentes y procesar mensajes de forma confiable. Clave para aplicaciones resilientes y escalables.
Amazon Kinesis
Procesa datos en streaming en tiempo real. Ideal para logs, métricas, IoT y análisis en vivo.
AWS Identity and Access Management (AWS IAM)
Gestiona identidades, accesos y permisos. Es la base de la seguridad en cualquier aplicación serverless.
AWS Secrets Manager
Almacena y rota credenciales, claves y secretos de forma segura.
AWS CloudWatch
Observabilidad para tus aplicaciones. Ofrece métricas, logs, alarmas y dashboards en tiempo real.
Ahora ya conocés los servicios serverless más usados.
Con esto no vas a diseñar arquitecturas todavía, pero la próxima vez que escuches uno de estos nombres, ya vas a saber qué hacen.