Skip to main content
📝 Cloud & DevOps (AWS)

AWS CodeDeploy: Cómo Configurar un Pipeline CI/CD para Desplegar Aplicaciones en EC2 Usando GitHub

Configura un pipeline CI/CD con AWS CodeDeploy para desplegar automáticamente desde GitHub a EC2. Guía paso a paso con roles IAM, appspec y solución de problemas.

4 min

Tiempo de lectura

608

Palabras

Mar 23, 2025

Publicado

Engr Mejba Ahmed

Escrito por

Engr Mejba Ahmed

Compartir Artículo

AWS CodeDeploy: Cómo Configurar un Pipeline CI/CD para Desplegar Aplicaciones en EC2 Usando GitHub

AWS CodeDeploy: Cómo Configurar un Pipeline CI/CD para Desplegar Aplicaciones en EC2 Usando GitHub

Desplegar aplicaciones manualmente es tedioso, propenso a errores e ineficiente. AWS CodeDeploy simplifica la automatización de despliegues, mejorando la eficiencia y minimizando el tiempo de inactividad. En esta guía, aprenderás paso a paso cómo configurar un pipeline robusto de Integración Continua y Despliegue Continuo (CI/CD) para desplegar tus aplicaciones directamente desde GitHub a una instancia Amazon EC2.

Lo que necesitarás:

  • Cuenta de AWS
  • Instancia EC2 ejecutando Amazon Linux
  • Repositorio de GitHub con tu aplicación
  • AWS CLI instalado en tu máquina local

Paso 1: Preparar tu instancia EC2

Conéctate a tu instancia EC2 vía SSH:

ssh -i "your-key.pem" ec2-user@your-ec2-instance-public-ip

Instala e inicia el agente de CodeDeploy:

sudo yum update
sudo yum install ruby -y
sudo yum install wget -y

cd /home/ec2-user
wget https://aws-codedeploy-region.s3.region.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto

sudo service codedeploy-agent status

Reemplaza region con tu región de AWS, como us-east-1.


Paso 2: Crear un Rol IAM para CodeDeploy

En la consola de AWS:

  • Navega a IAM → RolesCrear Rol.
  • Elige Servicio de AWS, luego selecciona CodeDeploy.
  • Adjunta políticas: selecciona AWSCodeDeployRole.
  • Nombra tu rol (por ejemplo, CodeDeployRole) y créalo.

Paso 3: Configurar la Aplicación de CodeDeploy

  • Ve a AWS CodeDeploy → Applications → Create application.
  • Ingresa un nombre de aplicación.
  • Elige la plataforma de cómputo: EC2/On-premises.

Crea un grupo de despliegue:

  • Nombre del grupo de despliegue (por ejemplo, Production)
  • Selecciona tu Rol IAM (CodeDeployRole)
  • Selecciona instancias EC2 por etiqueta o selecciona manualmente tu instancia EC2.
  • Tipo de despliegue: In-place.

Paso 4: Preparar tu Repositorio de GitHub

Crea un archivo appspec.yml en la raíz de tu repositorio:

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html
hooks:
  AfterInstall:
    - location: scripts/install_dependencies.sh
      timeout: 300
      runas: root

Crea los scripts necesarios, por ejemplo, scripts/install_dependencies.sh:

#!/bin/bash
sudo yum update -y
sudo yum install -y httpd
sudo service httpd start
sudo chkconfig httpd on

Asegúrate de que tus scripts tengan permisos de ejecución:

chmod +x scripts/*.sh

Confirma y sube los cambios a GitHub:

git add .
git commit -m "Added appspec.yml and deployment scripts"
git push origin main

Paso 5: Conectar AWS CodeDeploy con GitHub

  • En la consola de CodeDeploy, selecciona tu aplicación y grupo de despliegue.
  • Haz clic en Create Deployment.
  • Selecciona GitHub como tipo de repositorio.
  • Conéctate a GitHub y autoriza a AWS.
  • Elige tu repositorio y la rama de commits (por ejemplo, main).
  • Haz clic en Deploy.

Paso 6: Automatizar con CI/CD Usando GitHub Actions

Crea .github/workflows/deploy.yml en tu repositorio:

name: AWS Deploy

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: AWS CodeDeploy
        uses: aws-actions/aws-codedeploy@v1
        with:
          application-name: your-codedeploy-app-name
          deployment-group-name: your-deployment-group
          region: your-region
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

Configura las credenciales de AWS como secretos de GitHub:

  • Ve a GitHub → Settings → Secrets and variables → Actions → New repository secret
  • Agrega tu AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY.

Ahora, cada push a main activará despliegues automáticos.


Paso 7: Verificar tu Despliegue

Visita la IP pública de tu EC2 en un navegador web:

http://your-ec2-instance-public-ip

¡Deberías ver tu aplicación desplegada exitosamente!


Conclusión

¡Felicitaciones! Has configurado exitosamente un pipeline CI/CD de AWS CodeDeploy integrado con GitHub para desplegar automáticamente aplicaciones en EC2. Esta automatización optimizará significativamente tu proceso de despliegue, reducirá el tiempo de inactividad y simplificará las actualizaciones.

Publicidad
Coffee cup

¿Te gustó este artículo?

Tu apoyo me ayuda a crear más contenido técnico detallado, herramientas de código abierto y recursos gratuitos para la comunidad de desarrolladores.

Temas Relacionados

Engr Mejba Ahmed

Sobre el Autor

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 10+ years shipping production software in Laravel, Python, and AWS, he's helped companies automate workflows, reduce infrastructure costs, and scale without security headaches. He writes about practical AI integration, cloud architecture, and developer productivity.

Discussion

Comments

0

No comments yet

Be the first to share your thoughts

Leave a Comment

Your email won't be published

2  x  2  =  ?

Seguir Aprendiendo

Artículos Relacionados

Ver Todos

Comments

Leave a Comment

Comments are moderated before appearing.

Learning Resources

Expand Your Knowledge

Accelerate your growth with structured courses, verified certificates, interactive flashcards, and production-ready AI agent skills.

Sample Certificate of Completion

Sample certificate — complete any course to earn yours

Engr Mejba Ahmed

Engr Mejba Ahmed

Claude Code Expert · Online

👋

Hey there!

Quick Actions

WhatsApp Instant reply

Chat on WhatsApp

+880 1723 741224 · Instant reply

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

[email protected]

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support