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

Guía práctica para automatizar Terraform y GitHub Actions, provisionar una instancia en AWS y desplegar una app Node.js con Redis y NGINX con CI/CD seguro.

9 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat