Día 53: CI/CD en AWS, Parte 4. En este artículo explicamos paso a paso cómo configurar un pipeline CI CD en AWS usando CodeCommit, CodeBuild, CodeDeploy y CodePipeline, junto con buenas prácticas y ejemplos prácticos. Este contenido está pensado para equipos de desarrollo que busquen automatizar despliegues en instancias EC2 con nginx. Q2BSTUDIO es una empresa de desarrollo de software y aplicaciones a medida especializada en inteligencia artificial, ciberseguridad y servicios cloud AWS y Azure, capaz de implementar soluciones de integración continua para proyectos empresariales.

Prerrequisitos comprobación rápida

• Repositorio en CodeCommit que contenga index.html buildspec.yml appspec.yml y cualquier carpeta de scripts por ejemplo scripts/restart_nginx.sh

• Instancia EC2 en ejecución (se recomienda Amazon Linux 2) con nginx instalado y el agente de CodeDeploy instalado y en funcionamiento. Si el agente no está instalado, siga la guía de instalación del agente.

• Proyecto CodeBuild que compile el repositorio y genere un artefacto correcto según buildspec.yml.

• Un bucket S3 en la misma región que actuará como almacén de artefactos de CodePipeline.

• Roles IAM: rol de servicio para CodePipeline para que interactúe con CodeBuild CodeDeploy y S3, rol de servicio para CodeBuild y rol de servicio para CodeDeploy. La consola puede crear roles automáticamente si se prefiere.

Parte A Crear una aplicación CodeDeploy y un Deployment Group

Consola recomendado para la primera vez

1 Abra la consola de AWS vaya a CodeDeploy luego Applications y Create application. Nombre MyCodeDeployApp Compute platform EC2 On premises

2 Tras crear la aplicación vaya a Deployment groups y Create deployment group. Deployment group name MyDeploymentGroup Service role seleccione o permita que la consola cree un rol IAM con permisos para que CodeDeploy actúe sobre los recursos Environment configuration elija cómo identificar las instancias EC2 etiquetas EC2 recomendadas etiquete sus instancias y configure filtros por etiqueta o use Auto Scaling group o IDs de instancias EC2. Deje otros valores por defecto o configure rollback y triggers según necesite y cree el deployment group

3 Ahora tiene un deployment group apuntable por CodeDeploy

CLI ejemplo

Etiquete la instancia primero por ejemplo

aws ec2 create-tags --resources i-0123456789abcdef0 --tags Key=CodeDeploy,Value=day53

Crear deployment group ejemplo reemplazando ARNs y nombres

aws deploy create-deployment-group --application-name MyCodeDeployApp --deployment-group-name MyDeploymentGroup --service-role-arn arn:aws:iam::123456789012:role/CodeDeployServiceRole --ec2-tag-filters Key=CodeDeploy,Value=day53,Type=KEY_AND_VALUE --deployment-config-name CodeDeployDefault.OneAtATime --auto-rollback-configuration enabled=true,events=DEPLOYMENT_FAILURE

Parte B Verificar appspec.yml y scripts de despliegue

El archivo appspec.yml en la raíz del repositorio debe mapear archivos y definir hooks. Ejemplo mínimo para EC2 nginx

version: 0.0 os: linux files: - source: /index.html destination: /usr/share/nginx/html hooks: AfterInstall: - location: scripts/restart_nginx.sh timeout: 300 runas: root

Ejemplo de script scripts/restart_nginx.sh

#!/bin/bash sudo systemctl restart nginx

Asegúrese de que los scripts son ejecutables chmod +x scripts/*.sh y haga push al repositorio CodeCommit

Parte C Crear el bucket S3 para artefactos de CodePipeline

CodePipeline necesita un bucket S3 en la misma región. Ejemplo de creación

aws s3 mb s3://my-pipeline-artifacts-123456789012 --region eu-west-1

Reemplace el nombre por uno único para su cuenta y región

Parte D Crear el pipeline en CodePipeline consola el método más sencillo

1 Abra la consola vaya a CodePipeline y Create pipeline

2 Pipeline settings Nombre MyPipeline-Day53 Service role permita que CodePipeline cree un nuevo rol o especifique un ARN Artifact store seleccione el bucket S3 que creó

3 Añadir Source stage Provider AWS CodeCommit seleccione su repositorio por ejemplo MyDemoRepo Branch main o la rama que use

4 Añadir Build stage Provider AWS CodeBuild seleccione el proyecto CodeBuild creado anteriormente que usa buildspec.yml para construir Asegúrese de que CodeBuild produce un artefacto de salida si necesita pasar archivos a CodeDeploy

5 Añadir Deploy stage Provider AWS CodeDeploy Application Name seleccione MyCodeDeployApp Deployment Group seleccione MyDeploymentGroup

6 Cree el pipeline CodePipeline iniciará la ejecución. Empuje un commit para disparar el pipeline

Parte E Probar el pipeline

1 Realice un cambio pequeño en index.html por ejemplo modifique el texto git add index.html git commit -m Test pipeline Day 53 git push origin main

Vaya al panel de CodePipeline y observe las etapas Source Build Deploy. Cuando el despliegue finalice abra la IP pública de la EC2 o la URL del load balancer y compruebe que index.html muestra la actualización. Si no funciona revise los logs de CodeDeploy y el estado del agente en la instancia EC2

Resolución rápida de problemas comunes

• Falla en Source verifique repositorio y rama y que el rol de CodePipeline tiene permisos adecuados

• Falla en CodeBuild revise la sintaxis de buildspec.yml y los logs de construcción en CodeBuild

• Falla en CodeDeploy asegúrese de que el agente de CodeDeploy está instalado y en ejecución en la EC2 que appspec.yml tiene rutas correctas y que los scripts son ejecutables. Revise el archivo de log en la instancia por ejemplo /var/log/aws/codedeploy-agent/codedeploy-agent.log

• Errores de permisos confirme que existen los roles de servicio para CodePipeline CodeBuild y CodeDeploy y que tienen las políticas necesarias. La creación automática desde la consola simplifica esto

Servicios y ayuda de Q2BSTUDIO

Si su empresa necesita soporte profesional para implementar pipelines CI CD despliegues automatizados y prácticas de DevOps Q2BSTUDIO ofrece servicios de consultoría en integración continua despliegue continuo y automatización. Podemos ayudar a diseñar flujos de trabajo seguros y escalables integrando aplicaciones a medida con servicios gestionados en la nube. Vea nuestras soluciones de Servicios cloud AWS y Azure y cómo desarrollamos aplicaciones a medida y software a medida para empresas que necesitan acelerar su transformación digital.

Además Q2BSTUDIO cuenta con experiencia en inteligencia artificial agentes IA ciberseguridad servicios de inteligencia de negocio y Power BI para que su plataforma no solo despliegue correctamente sino que también sea segura y genere valor de negocio con datos. Palabras clave integradas para mejorar posicionamiento aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi

Si desea que le acompañemos en la implementación de CI CD en AWS o en la migración a pipelines más avanzados contacte con Q2BSTUDIO para una evaluación personalizada