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 de lectura • Equipo Q2BSTUDIO

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.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat