Este proyecto es una demo completa que permite desplegar una aplicación en AWS de forma automatizada utilizando Terraform, Docker, AWS CLI y CodePipeline. Proporciona tanto ejecución local como dentro de un contenedor.
- Clona el código fuente desde un repositorio remoto.
- Usa AWS CodeBuild para generar una imagen Docker.
- Despliega la aplicación con AWS CodePipeline en Amazon ECS (Fargate).
- Crea automáticamente:
- Red VPC
- Subnets públicas/privadas
- Security Groups
- Load Balancer (ALB)
- Devuelve la URL del Load Balancer donde se puede acceder a la aplicación desplegada.
- Permite destruir toda la infraestructura cuando ya no se necesita.
Antes de ejecutar este proyecto, asegurate de tener instaladas:
make localEsto ejecuta la app directamente en tu entorno local.
Debes pasar las variables de entorno necesarias:
make run AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=yyy AWS_DEFAULT_REGION=us-east-1Internamente, ejecuta:
docker run -e AWS_ACCESS_KEY_ID=$(AWS_ACCESS_KEY_ID) \
-e AWS_SECRET_ACCESS_KEY=$(AWS_SECRET_ACCESS_KEY) \
-e AWS_DEFAULT_REGION=$(AWS_DEFAULT_REGION) \
-p 8080:80 \
proyecto-cloudPuedes eliminar todos los recursos creados con se puede relizar mediante el frontend de la aplicación o ejecutando:
cd terraform && terraform destroy -auto-approve- Este proyecto es solo una demo y no debe usarse tal cual en producción sin revisiones de seguridad.
- Se recomienda eliminar la infraestructura cuando no se use para evitar costos innecesarios.
Rafael Rodríguez
GitHub: @RafaelRodriguezSanz
Joaquin Cuitiño