¿Cansado de desplegar tu aplicación manualmente cada vez que haces un push a GitHub? Con AWS Developer Tools puedes automatizar todo el proceso con solo unos clics: desde el commit hasta tu aplicación ejecutándose en una instancia EC2. En este artículo te explico paso a paso cómo funcionan CodeBuild, CodeDeploy y CodePipeline para crear una canalización CI/CD que te permite: commit, build, deploy, repetir.
Requisitos previos: necesitas un repositorio en GitHub, una instancia EC2 para ejecutar la aplicación, y permisos IAM para que los servicios de AWS interactúen entre sí. Esta guía funciona con cualquier stack: Node.js, Python, Java o incluso sitios estáticos. Si no tienes una app de ejemplo, puedes usar un repositorio propio o basarte en uno público.
Paso 1 Crear y preparar la instancia EC2: en la consola EC2 lanza una instancia Amazon Linux 2. Crea o asigna un security group que permita el puerto 22 para SSH y el puerto donde corre tu app, por ejemplo 3000. Conéctate usando EC2 Instance Connect o SSH y prepara el servidor instalando Node.js y el agente de CodeDeploy. El agente actúa como un mensajero dentro de la instancia: recibe instrucciones de CodeDeploy, descarga los artefactos y ejecuta los scripts definidos en appspec.yml.
Comandos básicos en la instancia EC2: sudo yum update -y; sudo yum install -y nodejs npm; sudo yum install -y ruby wget; cd /home/ec2-user; wget https://aws-codedeploy-your-region.s3.your-region.amazonaws.com/latest/install; chmod +x ./install; sudo ./install auto; sudo service codedeploy-agent start; verifica el agente con sudo systemctl status codedeploy-agent.service. Sustituye your-region por tu región, por ejemplo ap-south-1.
Paso 2 Configurar CodeDeploy: crea una aplicación en CodeDeploy y dentro de ella un deployment group. Asigna un service role para CodeDeploy con la política administrada AWSCodeDeployRole para que CodeDeploy pueda comunicarse con EC2. En la configuración del deployment group selecciona Amazon EC2 y vincula las instancias por etiquetas o por nombre. Como opción segura para empezar selecciona el despliegue One at a time.
Recuerda crear además un role de instancia (instance profile) para tu EC2 con permisos como AmazonS3ReadOnlyAccess y la política necesaria para CodeDeploy. El agente de CodeDeploy en la instancia necesita estas credenciales para descargar artefactos desde S3 y completar el despliegue.
Paso 3 Crear el proyecto CodeBuild: en CodeBuild crea un proyecto nuevo y conecta como origen tu repositorio GitHub. Usa la imagen administrada Amazon Linux 2 y deja que CodeBuild cree el role de servicio automáticamente. CodeBuild usa el archivo buildspec.yml en tu repo para ejecutar pasos de instalación, pruebas y empaquetado. Asegúrate de que buildspec.yml defina claramente instalación de dependencias, ejecución de pruebas y la ruta de los artefactos que CodeDeploy consumirá.
Qué hace cada servicio: CodePipeline orquesta el flujo completo Source Build Deploy; CodeBuild compila y empaqueta la aplicación; CodeDeploy lleva los artefactos a las instancias EC2 y ejecuta los hooks del ciclo de vida según appspec.yml. CodePipeline detecta cambios en GitHub mediante webhooks y desencadena el pipeline automáticamente.
Paso 4 Crear la canalización en CodePipeline: crea un pipeline nuevo, selecciona GitHub como origen y autoriza la cuenta para que CodePipeline pueda leer el repo. Añade la etapa de Build vinculando el proyecto CodeBuild creado anteriormente y añade la etapa de Deploy usando CodeDeploy con la aplicación y deployment group configurados. Revisa y crea el pipeline; la primera ejecución se lanzará inmediatamente.
Errores comunes y solución: si el despliegue falla al principio es habitual que la instancia EC2 no tenga el IAM instance profile correcto. Añade a la EC2 un role con permisos AmazonS3ReadOnlyAccess y la política necesaria para CodeDeploy. Después vuelve a ejecutar el pipeline y la implementación debería completarse correctamente.
Verificación: cuando el pipeline finaliza, abre la IP pública de la EC2 en el puerto que usa tu app, por ejemplo http colon slash slash IP_PUBLICA dos puntos 3000, y deberías ver tu aplicación corriendo. No fue necesario SSH ni copiar archivos manualmente: todo se automatizó con CodePipeline, CodeBuild y CodeDeploy.
Prueba real de CI/CD: haz un cambio pequeño en GitHub, push a la rama main y observa cómo en segundos CodePipeline detecta el cambio, CodeBuild recompila y empaqueta, y CodeDeploy despliega la nueva versión en EC2. Así queda probado el ciclo commit build deploy completamente automatizado.
Consejos prácticos: incluye appspec.yml bien definido para manejar lifecycle hooks como BeforeInstall Install AfterInstall ApplicationStart y validaciones de salud; configura grupos de seguridad y puertos adecuados; usa variables de entorno y secretos en Parameter Store o Secrets Manager para credenciales; y monitoriza las ejecuciones de CodePipeline y los logs de CodeBuild para resolver errores.
Acerca de Q2BSTUDIO: en Q2BSTUDIO somos especialistas en desarrollo de software a medida y aplicaciones a medida, con experiencia en inteligencia artificial, ciberseguridad y servicios cloud. Si necesitas ayuda para diseñar pipelines CI/CD robustas, migrar a AWS o Azure o desarrollar una solución personalizada, podemos ayudarte. Conecta tus proyectos con soluciones profesionales de servicios cloud aws y azure o impulsa tus ideas con software a medida.
También ofrecemos servicios avanzados en inteligencia artificial, agentes IA y soluciones IA para empresas, servicios de inteligencia de negocio y dashboards con power bi, y auditorías de seguridad y pentesting para proteger tus sistemas. Palabras clave que dominamos para mejorar tu posicionamiento: 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.
Conclusión: automatizar tus despliegues con CodePipeline CodeBuild y CodeDeploy te ahorra tiempo y errores humanos. Una vez configurado correctamente el pipeline y los roles IAM, cada push a GitHub puede convertirse en un despliegue seguro y repetible. Si prefieres que un equipo experto configure todo por ti, en Q2BSTUDIO ofrecemos consultoría y ejecución completa para pipelines CI/CD, migración cloud y desarrollo a medida.
¿Listo para empezar o necesitas asesoría personalizada? Contacta con nuestro equipo de Q2BSTUDIO y llevemos tu proceso de entrega continua al siguiente nivel.