Introducción a AWS CodeDeploy

AWS CodeDeploy es un servicio de implementación completamente administrado que automatiza las implementaciones de aplicaciones en diversas instancias de cómputo, como Amazon EC2, AWS Lambda y servidores locales. CodeDeploy facilita la entrega continua y la implementación de aplicaciones, permitiendo a los desarrolladores lanzar nuevas características de manera rápida y segura.

Conceptos Clave

  1. Aplicación: Representa el conjunto de recursos que deseas implementar.
  2. Grupo de implementación: Un conjunto de instancias de destino para la implementación.
  3. Revisión de la aplicación: El código fuente y los archivos de configuración que se implementarán.
  4. Estrategia de implementación: Define cómo se llevará a cabo la implementación (por ejemplo, implementación en serie o en paralelo).

Configuración de AWS CodeDeploy

Paso 1: Crear una Aplicación en CodeDeploy

  1. Accede a la consola de AWS CodeDeploy.
  2. Selecciona "Crear aplicación".
  3. Introduce un nombre para la aplicación.
  4. Selecciona la plataforma de cómputo (Amazon EC2, AWS Lambda, o servidores locales).
  5. Haz clic en "Crear aplicación".

Paso 2: Crear un Grupo de Implementación

  1. Dentro de la aplicación creada, selecciona "Crear grupo de implementación".
  2. Introduce un nombre para el grupo de implementación.
  3. Selecciona el tipo de implementación (Amazon EC2, AWS Lambda, etc.).
  4. Configura las instancias de destino (por ejemplo, selecciona un grupo de Auto Scaling o etiquetas de instancias).
  5. Define la estrategia de implementación (por ejemplo, "Implementación en serie" o "Implementación en paralelo").
  6. Configura las notificaciones y alarmas (opcional).
  7. Haz clic en "Crear grupo de implementación".

Paso 3: Crear una Revisión de la Aplicación

  1. Prepara el código fuente y los archivos de configuración.
  2. Sube los archivos a un bucket de Amazon S3 o a un repositorio de GitHub.
  3. En la consola de CodeDeploy, selecciona "Crear implementación".
  4. Selecciona la aplicación y el grupo de implementación.
  5. Especifica la ubicación de la revisión de la aplicación (S3 o GitHub).
  6. Haz clic en "Crear implementación".

Ejemplo Práctico

Desplegando una Aplicación Web en Amazon EC2

Paso 1: Configuración del Entorno

  1. Lanza una instancia de Amazon EC2 con Amazon Linux 2.
  2. Instala el agente de CodeDeploy en la instancia:
    sudo yum update -y
    sudo yum install -y ruby
    cd /home/ec2-user
    wget https://aws-codedeploy-us-west-2.s3.us-west-2.amazonaws.com/latest/install
    chmod +x ./install
    sudo ./install auto
    sudo service codedeploy-agent start
    

Paso 2: Crear la Aplicación y el Grupo de Implementación

  1. Sigue los pasos mencionados anteriormente para crear una aplicación y un grupo de implementación en CodeDeploy.

Paso 3: Preparar la Revisión de la Aplicación

  1. Crea un archivo appspec.yml en el directorio raíz de tu aplicación:

    version: 0.0
    os: linux
    files:
      - source: /
        destination: /var/www/html
    hooks:
      AfterInstall:
        - location: scripts/install_dependencies.sh
          timeout: 300
          runas: root
    
  2. Crea un script de instalación de dependencias (scripts/install_dependencies.sh):

    #!/bin/bash
    yum install -y httpd
    service httpd start
    
  3. Sube los archivos a un bucket de S3:

    aws s3 cp appspec.yml s3://your-bucket-name/appspec.yml
    aws s3 cp scripts/install_dependencies.sh s3://your-bucket-name/scripts/install_dependencies.sh
    

Paso 4: Crear la Implementación

  1. En la consola de CodeDeploy, selecciona "Crear implementación".
  2. Selecciona la aplicación y el grupo de implementación.
  3. Especifica la ubicación de la revisión de la aplicación en S3.
  4. Haz clic en "Crear implementación".

Ejercicio Práctico

Ejercicio 1: Implementación de una Aplicación Web Simple

Objetivo: Implementar una aplicación web simple en una instancia de Amazon EC2 utilizando AWS CodeDeploy.

Instrucciones:

  1. Lanza una instancia de Amazon EC2 con Amazon Linux 2.
  2. Instala el agente de CodeDeploy en la instancia.
  3. Crea una aplicación y un grupo de implementación en CodeDeploy.
  4. Prepara una revisión de la aplicación que incluya un archivo appspec.yml y un script de instalación de dependencias.
  5. Sube los archivos a un bucket de S3.
  6. Crea una implementación en CodeDeploy.

Solución:

  1. Lanza una instancia de Amazon EC2 y conéctate a ella.

  2. Instala el agente de CodeDeploy:

    sudo yum update -y
    sudo yum install -y ruby
    cd /home/ec2-user
    wget https://aws-codedeploy-us-west-2.s3.us-west-2.amazonaws.com/latest/install
    chmod +x ./install
    sudo ./install auto
    sudo service codedeploy-agent start
    
  3. Crea una aplicación y un grupo de implementación en la consola de CodeDeploy.

  4. Prepara la revisión de la aplicación:

    • appspec.yml:
      version: 0.0
      os: linux
      files:
        - source: /
          destination: /var/www/html
      hooks:
        AfterInstall:
          - location: scripts/install_dependencies.sh
            timeout: 300
            runas: root
      
    • scripts/install_dependencies.sh:
      #!/bin/bash
      yum install -y httpd
      service httpd start
      
  5. Sube los archivos a un bucket de S3:

    aws s3 cp appspec.yml s3://your-bucket-name/appspec.yml
    aws s3 cp scripts/install_dependencies.sh s3://your-bucket-name/scripts/install_dependencies.sh
    
  6. Crea una implementación en CodeDeploy especificando la ubicación de la revisión de la aplicación en S3.

Conclusión

AWS CodeDeploy es una herramienta poderosa para automatizar las implementaciones de aplicaciones en diversas plataformas de cómputo. En este módulo, hemos cubierto los conceptos clave de CodeDeploy, cómo configurarlo y un ejemplo práctico de implementación en Amazon EC2. Con esta base, puedes explorar más características avanzadas de CodeDeploy y adaptarlo a tus necesidades específicas de implementación.

© Copyright 2024. Todos los derechos reservados