POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

CI/CD con Terraform y GitHub Actions: Node.js y Redis en AWS

Automatiza el aprovisionamiento y despliegue de una aplicación containerizada en AWS con Terraform y GitHub Actions

Publicado el 09/09/2025

En esta guía práctica aprenderás a automatizar el aprovisionamiento de infraestructura y el despliegue de una aplicación containerizada usando GitHub Actions y Terraform, implementando una aplicación Node.js con Redis y NGINX en AWS.

Requisitos previos: una cuenta de AWS con un usuario IAM con permisos adecuados y AWS CLI configurado localmente, Docker y Docker Compose instalados para probar la aplicación en local, y conocimientos básicos de Git. Si trabajas con soluciones de software a medida en tu empresa, este flujo de trabajo te resultará muy familiar y repetible.

Descripción del proyecto: la aplicación es un contador de solicitudes sencillo que incrementa un contador almacenado en Redis y muestra qué servidor web respondió la petición, web1 o web2. El proyecto incluye un balanceador NGINX delante de dos instancias Node.js y un contenedor Redis.

Estructura clave del repositorio: web/server.js es la aplicación Node.js que se conecta a Redis en el puerto 6379 y sirve en el puerto 5000 mostrando el número de visitas y el hostname; nginx/nginx.conf contiene la configuración de upstream y las reglas de proxy para repartir la carga; docker-compose.yml orquesta los contenedores Redis, web1, web2 y NGINX. Además se incluyeron mejoras como una interfaz HTML y configuraciones Terraform en terra-config y un workflow de GitHub Actions en .github/workflows/main.yml.

Prueba local: desde la raíz del proyecto ejecuta docker-compose up --build para construir imágenes y levantar los contenedores. NGINX expondrá la aplicación en el puerto 80 y al abrir https://localhost:80 verás el contador incrementarse y la alternancia entre web1 y web2, confirmando que Docker, NGINX y Redis funcionan correctamente.

Automatización con Terraform y GitHub Actions: la idea es que Terraform aprovisione una instancia EC2 en AWS, que en su user data instale Docker y Docker Compose y clone tu repositorio para ejecutar la aplicación. El workflow de GitHub Actions realizará terraform init validate plan apply, esperará a que user data termine, obtendrá la IP pública, comprobará la salud de la aplicación y tras un tiempo controlado ejecutará terraform destroy para evitar costes innecesarios.

Configuración de secretos en GitHub: añade como secrets del repositorio las variables AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY generadas para tu usuario IAM para que GitHub Actions pueda interactuar con tu cuenta AWS.

Detalles de Terraform: el archivo main.tf utiliza la VPC por defecto, busca la AMI Ubuntu más reciente, crea un Security Group con puertos 22 y 80 abiertos y provisiona una instancia t2.micro con un script user_data que instala Docker, Docker Compose y lanza la aplicación desde el repositorio. Recuerda actualizar en user_data la URL del repositorio para que apunte a tu fork, por ejemplo git clone https://github.com/tu-usuario/nginx-node-redis.git.

Flujo del workflow de GitHub Actions: al hacer push o abrir un pull request el pipeline hace checkout, prepara Terraform, ejecuta los comandos de Terraform, espera unos segundos para que el provisioning termine, recupera la IP pública, realiza una comprobación de salud de la aplicación y mantiene la app en ejecución un periodo determinado antes de destruir la infraestructura.

Cómo disparar el despliegue: actualiza la URL en terra-config/main.tf, haz commit y push de los cambios y observa en la pestaña Actions de tu repositorio cómo se ejecuta el workflow. Cuando el pipeline llegue a la etapa de mantener la aplicación en ejecución podrás abrir la URL pública mostrada en los logs y ver la aplicación corriendo en EC2.

Ejemplo de actualización en caliente: para modificar un texto de la aplicación abre web/server.js, cambia el heading por ejemplo a Welcome to My Amazing Request Counter o a cualquier otro texto deseado, haz commit y push y GitHub Actions se encargará de aplicar los cambios sin acceso SSH manual. Este patrón demuestra la potencia de CI CD para despliegues repetibles y rápidos.

Buenas prácticas y costes: usa roles y permisos mínimos en producción, controla el ciclo de vida de los recursos para evitar costes, y automatiza la destrucción de entornos de prueba. Si necesitas migrar este tipo de soluciones a arquitecturas más escalables o a entornos gestionados, Q2BSTUDIO ofrece servicios integrales de servicios cloud AWS y Azure y migración a plataformas gestionadas.

Sobre Q2BSTUDIO: somos una empresa de desarrollo de software especializada en aplicaciones a medida, inteligencia artificial, ciberseguridad y servicios cloud. Ofrecemos soluciones personalizadas como software a medida, implementación de agentes IA y proyectos de inteligencia de negocio con Power BI para transformar datos en decisiones. Nuestro enfoque combina automatización, seguridad y buenas prácticas de DevOps para entregar productos robustos y escalables.

Palabras clave y servicios: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi aparecen reflejados en nuestras capacidades y casos de uso para que tu organización avance con confianza tecnológica.

Conclusión: este proyecto ilustra cómo combinar Docker, NGINX, Terraform y GitHub Actions para crear un pipeline CI CD que provisiona infraestructura y despliega aplicaciones containerizadas de forma automática y segura. Si deseas adaptar, escalar o profesionalizar este flujo para necesidades empresariales, en Q2BSTUDIO te podemos acompañar desde la consultoría hasta la entrega completa del producto.

Contacto y próximos pasos: si quieres que te ayudemos a diseñar una solución a medida con inteligencia artificial, ciberseguridad y despliegue en la nube, consulta nuestros servicios y casos en la web o solicita una reunión con nuestro equipo técnico para evaluar tu proyecto.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio