Tutorial: Implemente en instancias de Amazon EC2 con CodePipeline - AWS CodePipeline

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Implemente en instancias de Amazon EC2 con CodePipeline

Este tutorial le ayuda a crear una acción de despliegue CodePipeline que despliegue el código en las instancias que haya configurado en Amazon EC2.

nota

Como parte de la creación de una canalización en la consola, para los artefactos se utilizará un depósito de artefactos de CodePipeline S3. (Es diferente del bucket que se usa para una acción de origen de S3). Si el depósito de artefactos de S3 está en una cuenta diferente a la de tu canalización, asegúrate de que el depósito de artefactos de S3 pertenezca a una Cuentas de AWS persona segura y fiable.

nota

La acción de implementación de EC2 solo está disponible para canalizaciones de tipo V2.

Requisitos previos

Para poder usar este tutorial para crear su propia canalización de implementación continua debe tener instalados algunos recursos. Esto es lo que necesita para empezar:

nota

Todos estos recursos deben crearse en la misma región. AWS

Una vez satisfechos estos requisitos previos, puede continuar con el tutorial y crear su canalización de implementación continua.

Paso 1: creación de instancias de Amazon EC2 en Linux

En este paso, va a crear las instancias de Amazon EC2 en las que va a implementar una aplicación de ejemplo. Como parte de este proceso, cree un rol de instancia en IAM si aún no ha creado un rol de instancia en la región en la que desea crear los recursos.

Para crear un rol de instancia
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/).

  2. En el panel de la consola, elija Roles.

  3. Elija Crear rol.

  4. En Seleccionar el tipo de entidad de confianza, seleccione Servicio de AWS. En Elegir un caso de uso, seleccione EC2. En Select your use case (Seleccionar su caso de uso), elija EC2. Elija Siguiente.

  5. Busque y seleccione la política denominada AmazonSSMManagedEC2InstanceDefaultPolicy.

  6. Busque y seleccione la política denominada AmazonSSMManagedInstanceCore. Elija Siguiente: Etiquetas.

  7. Elija Siguiente: Revisar. Escriba el nombre del rol (por ejemplo, EC2InstanceRole).

    nota

    Anote el nombre del rol para utilizarlo en el siguiente paso. Tendrá que elegir este rol cuando cree la instancia.

    nota

    Agregará permisos a este rol para permitir el acceso al bucket de artefactos de S3 para su canalización una vez creada la canalización.

    Elija Crear rol.

Para lanzar las instancias
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En la barra de navegación lateral, elija Instancias y seleccione Lanzar instancias en la parte superior de la página.

  3. En Name (Nombre), escriba MyInstances. Esto asigna a la instancia una clave de etiqueta Name y un valor de etiqueta MyInstances.

  4. En Imágenes de aplicaciones y sistemas operativos (Amazon Machine Image), busque la opción AMI de Amazon Linux con el AWS logotipo y asegúrese de que esté seleccionada. (Esta AMI se describe como AMI de Amazon Linux 2 (HVM) y se denomina "Free tier eligible" (Apta para capa gratuita).)

  5. En Tipo de instancia, elija el tipo t2.micro apto para la capa gratuita como configuración de hardware de la instancia.

  6. En Par de claves (inicio de sesión), seleccione un par de claves o cree uno.

  7. En Configuración de red, asegúrese de que el estado sea Habilitar.

  8. Amplíe Advanced details (Detalles avanzados). En Perfil de instancia de IAM, elija el rol de IAM que creó en el procedimiento anterior (por ejemplo, EC2InstanceRole).

    nota

    No deje el rol de instancia en blanco, ya que esto crea un rol predeterminado y no selecciona el rol que ha creado.

  9. En Resumen, en Número de instancias, especifique 2.

  10. Seleccione Iniciar instancia.

  11. Puede ver el estado del lanzamiento en la página Instances. Al lanzar una instancia, su estado inicial es pending. Una vez iniciada la instancia, el estado cambia a running y recibe un nombre de DNS público. (Si la columna Public DNS no se muestra, haga clic en el icono Show/Hide y después seleccione Public DNS.)

Paso 2: agregación de los permisos del bucket de artefactos al rol de instancia de EC2

Debe actualizar el rol de instancia de EC2 que creó para su instancia a fin de que pueda acceder al bucket de artefactos de su canalización.

nota

Al crear la instancia, se crea o se utiliza un rol de instancia de EC2 existente. Para evitar Access Denied errores, debes añadir permisos de bucket de S3 a la función de instancia para conceder a la instancia permisos de acceso al bucket de CodePipeline artefactos. Cree un rol predeterminado o actualice el rol actual con el permiso s3:GetObject limitado al bucket de artefactos correspondiente a la región de su canalización.

  1. Navega hasta tu canalización en la CodePipeline consola. Seleccione Configuración. Vea el nombre y la ubicación del almacén de artefactos de una canalización existente. Anote el nombre de recurso de Amazon (ARN) del bucket de artefactos y cópielo.

  2. Vaya a la consola de IAM y elija Roles (Roles). Elija el rol de instancia que creó en el paso 1 de este tutorial.

  3. En la pestaña Permisos, elija Añadir política en línea.

  4. Agregue el siguiente JSON al documento de política y sustituya el valor del campo Resource por el ARN del bucket.

    { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BucketName" }
  5. Elija Actualizar.

Paso 3: agregación del archivo de script al repositorio

Pegue este texto de ejemplo para crear el archivo script.sh para el paso posterior al script de la implementación.

echo "Hello World!"
Para añadir un archivo script.sh a su repositorio de código fuente
  1. Abra un editor de texto y luego copie y pegue el archivo anterior en un nuevo archivo.

  2. Confirme la operación e inserte el archivo script.sh en el repositorio de código fuente.

    1. Añada el archivo.

      git add .
    2. Valide el cambio con.

      git commit -m "Adding script.sh."
    3. Envíe la confirmación.

      git push

    Anote la ruta en su repositorio.

    /MyDemoRepo/test/script.sh

Paso 4: creación de una canalización

Usa el CodePipeline asistente para crear las etapas de tu canalización y conectar tu repositorio de origen.

Para crear la canalización
  1. Abre la CodePipeline consola en https://console.aws.amazon.com/codepipeline/.

  2. En la página Bienvenido, Introducción o Canalizaciones, elija Crear canalización.

  3. En la página Paso 1: elección de la opción de creación, en Opciones de creación, seleccione la opción Crear una canalización personalizada. Elija Siguiente.

  4. En Paso 2: elegir la configuración de la canalización, en Nombre de la canalización, escriba MyPipeline.

  5. CodePipeline proporciona tuberías de tipo V1 y V2, que difieren en características y precio. El tipo V2 es el único tipo que puede elegir en la consola. Para obtener más información, consulte Tipos de canalización. Para obtener información sobre los precios de CodePipeline, consulte Precios.

  6. En Función de servicio, elija Usar la función de servicio existente y, a continuación, elija la función de CodePipeline servicio que se ha actualizado con los permisos necesarios para esta acción. Para configurar el rol CodePipeline de servicio para esta acción, consultePermisos de la política de rol de servicio para la acción de implementación de EC2.

  7. En Advanced settings (Configuración avanzada), deje los valores predeterminados y elija Next (Siguiente).

  8. En la página Paso 3: agregar la etapa de origen, agregue una etapa de origen:

    1. En Proveedor de origen, elija GitHub (a través de GitHub la aplicación).

    2. En Conexión, seleccione una conexión existente o cree una nueva. Para crear o gestionar una conexión para la acción GitHub de origen, consulteGitHub conexiones.

    3. En Repository name (Nombre de repositorio), elija el nombre de su repositorio de GitHub .

    Elija Siguiente.

  9. En la página Paso 4: agregación de la etapa de compilación, seleccione Omitir.

  10. En la página Paso 5: agregación de la etapa de implementación, elija EC2.

    Agregue una acción de implementación de EC2 a la canalización.
    1. En el directorio de destino, especifique el directorio de la instancia en la que desee realizar la implementación, por ejemplo, /home/ec2-user/testhelloworld.

      nota

      Especifique el directorio de implementación que desea que utilice la acción en la instancia. La acción automatizará la creación del directorio especificado en la instancia como parte de la implementación.

    2. Para PostScript, introduzca la ruta y el nombre de archivo del script, por ejemplotest/script.sh.

    3. Elija Siguiente.

  11. En la página Step 6: Review, revise la configuración de la canalización y elija Create pipeline para crear la canalización.

    Diagrama de consola donde se muestra la ejecución correcta de una canalización con la acción de implementación agregada a la misma
  12. Cuando la canalización se haya ejecutado correctamente, elija Ver detalles para consultar los registros de la acción y ver la salida de la acción de computación administrada.

    Consulte los registros de la acción de implementación de Amazon EC2 en su canalización.
    Consulte la segunda página de los registros de la acción de implementación de Amazon EC2 en su canalización.

Paso 5: Pon a prueba tu canalización

Su canalización debe tener todo lo necesario para ejecutar una implementación AWS continua end-to-end nativa. Ahora, pruebe su funcionalidad enviando un cambio de código al repositorio de código fuente.

Para probar la canalización
  1. Realice una modificación del código en el repositorio de código fuente configurado, valide y envíe el cambio.

  2. Abra la CodePipeline consola en https://console.aws.amazon.com/codepipeline/.

  3. Seleccione su canalización de la lista.

  4. Vea el progreso en la canalización a través de sus etapas. La canalización debería completarse y la acción implementar el script en las instancias.

  5. Para obtener más información sobre la solución de problemas, consulte Error en la acción de implementación de EC2 con el mensaje No such file.