3 proyectos para iniciar en AWS: Explicados paso a paso

Índice
Introducción
El mundo del Cloud y DevOps es muy amplio, por lo tanto conocer todos los servicios que los componen puede llevar una gran complejidad. No existe mejor manera de comprender los conceptos, que poniéndolos en práctica, por lo tanto en este artículo, proponemos 3 proyectos reales y prácticos para iniciar en AWS para principiantes, explicados paso a paso con detalles.
En estos, vamos a utilizar servicios tales de AWS como EC2, S3, VPC, IAM, EKS, Polly, entre otros. Además de herramientas de DevOps como Docker, Kubernetes, IaC con Terraform y más.
A continuación, listamos cada uno de ellos junto con una pequeña descripción y las herramientas utilizadas.
Aplicación serverless: Conversor Texto a Audio

En este primero de los proyectos para iniciar en AWS, desplegaremos una aplicación sin servidor (serverless) que realiza conversiones a partir de texto (entrada de un archivo .txt) a audio (salida en un archivo .mp3).
Se utilizan servicios de AWS como:
- S3: 1 bucket de origen donde se encuentra la entrada del archivo .txt y 1 bucket de destino para la salida .mp3
- Lambda: Cuando se carga un archivo txt en el origen, se dispara una función Lambda en Python que realiza el proceso de conversión a audio, y lo guarda en el bucket de destino.
- Polly: Es el servicio de AWS que realiza las conversiones a Audio. Se utiliza en la función Lambda.
- IAM: Debemos crear roles y políticas para poder acceder a los diferentes recursos.
Explicación paso a paso del proyecto: Click aquí.
Bot de WhatsApp con EKS y Kubernetes

Aquí vamos a desplegar un pequeño ChatBot de WhatsApp, que responde preguntas al usuario cuando recibe un mensaje y genera alertas cuando requiere hablar con un humano. Esta personalizado para un empresa proveedora de servicios de TV e Internet.
Aunque no realizaremos la programación en si del FrontEnd, Backend y demás procesos de la aplicación, es bueno conocer que esta desarrollado en Nodejs, Angular y la base de datos es PostgreSQL (en los roles de Cloud Engineer no vamos a realizar la programación de la app, sino desplegarla en un proveedor de la nube).
Primeramente, vamos a realizar pruebas en nuestro local, para verificar que todo esta correcto y asegurarnos que cuando ya pasemos a desplegarlo en AWS no existan errores. Finalmente, lo desplegamos en producción.
Vamos a utilizar lo siguiente:
- Docker: Para las pruebas locales en nuestra computadora y la generación de las imagenes.
- Kubernetes: Para las pruebas locales en nuestra computadora en el clúster de Minikube y el posterior despliegue en EKS en producción.
- EKS: Servicio de AWS donde desplegaremos nuestra app en producción.
- ECR: Servicio de AWS donde se almacenan las imágenes de Docker creadas.
Explicación paso a paso del proyecto: Click aquí.
App de arquitectura 3-Tier con Terraform

Un proyecto muy interesante donde no solo empleamos servicios de AWS, sino que también se toma contacto con un concepto muy importante: la Infraestructura como Código (IaC) utilizando Terraform.
Además, se aplican principios muy importantes como la escalabilidad (con los AutoScaling Groups y Load Balancers), la disponibilidad (con las replicaciones y el empleo de varias zonas de disponibilidad), entre otros, que se complementan con las instancias EC2 para desplegar la aplicación final.
Se despliega una aplicación sencilla que consiste en un pequeño frontend (de instancias EC2), que se comunica con un backend (tambien instancias EC2) que, a través de el, guarda/actualiza valores en un base de datos de DynamoDB.
Adicionalmente, establecemos alarmas en CloudWatch para el seguimiento del porcentaje de uso del CPU de las instancias (puede ser para medir el tráfico que recibe la app) y en función de él agregar (escalado hacia arriba) o eliminar (escalado hacia abajo). Esto nos va a permitir que nuestros procesos sean más eficientes y automáticos, reduciendo costos y procesos manuales.
Utilizamos lo siguiente:
- Terraform: Infraestructura como Código que nos permite a través de un lenguaje (HCL) de sintaxis sencilla desplegar nuestra infraestructura.
- EC2: Es el servicio de AWS que permite crear maquinas virtuales (VM) que las utilizamos con servidores. Las combinamos con AutoScaling Groups y Load Balancers.
- VPC: Es el servicio de AWS que gestiona las redes de nuestro desarrollo. Creamos las Subnets, NAT Gateways, el Internet Gateway, las tablas de ruteo, etc.
- DynamoDB: Servicio de AWS para crear una base de datos NoSQL con replicación regional.
Explicación paso a paso del proyecto: Click aquí.
Conclusiones
Estos 3 proyectos pueden ser un gran punto de partida para iniciar en AWS. También puedes ver contenido en la documentación de AWS muy útil, que te permitirá comprender aún mas los servicios además de su utilidad en la práctica.
Última actualización el 01-04-2025 por Bruno D’Angelo