Cree una canalización e implemente actualizaciones de artefactos en instancias locales mediante EC2 CodePipeline - Recomendaciones de AWS

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.

Cree una canalización e implemente actualizaciones de artefactos en instancias locales mediante EC2 CodePipeline

Creado por Akash Kumar () AWS

Entorno: PoC o piloto

Fuente: DevOps

Objetivo: EC2 Amazon/On-Premises

Tipo R: volver a alojar

Tecnologías: modernización DevOps, aplicaciones web y móviles

AWSservicios: AWS CodeBuild AWS CodeCommit; AWS CodeDeploy; AWS CodePipeline

Resumen

Este patrón proporciona ejemplos de código y pasos para crear una canalización en la nube de Amazon Web Services (AWS) e implementar artefactos actualizados en las instancias locales de Amazon Elastic Compute Cloud (AmazonEC2). AWS CodePipeline El patrón se basa en la práctica de integración continua. Esta práctica automatiza la compilación y las pruebas de código con un sistema de control de versiones basado en Git. En este patrón, se crea y se clona un repositorio de código mediante AWS CodeCommit. A continuación, se crea un proyecto y se configura el código fuente mediante AWS CodeBuild. Por último, debe crear la aplicación y configurar su entorno de destino para las EC2 instancias locales mediante AWS CodeDeploy.

Requisitos previos y limitaciones

Requisitos previos 

  • Una cuenta activa AWS

  • Etiquetas definidas por el usuario para identificar las EC2 instancias durante la implementación

  • CodeDeploy agente, instalado en las instancias EC2

  • El software de tiempo de ejecución necesario, instalado en EC2 las instancias

  • Amazon Corretto 8 para el kit de desarrollo de Java

  • Servidor web Apache Tomcat, instalado

  • Amazon CloudWatch Events (opcional)

  • Un par de claves para iniciar sesión en el servidor web (opcional)

  • Un proyecto de aplicación Apache Maven para una aplicación web

Arquitectura

El siguiente diagrama muestra un ejemplo de aplicación web Java que se implementa en EC2 instancias locales mediante la arquitectura de este patrón.

Ejemplo de aplicación web Java implementada en instancias EC2

En el diagrama, se muestra el siguiente flujo de trabajo:

  1. El desarrollador confirma los cambios de código en un repositorio CodeCommit Git privado.

  2. CodePipeline CodeBuild se utiliza para iniciar la compilación y añadir nuevos artefactos que estén listos para su implementación en el bucket de Amazon Simple Storage Service (Amazon S3).

  3. CodePipeline utiliza el CodeDeploy agente para preinstalar todas las dependencias necesarias para los cambios en los artefactos de implementación.

  4. CodePipeline usa el CodeDeploy agente para implementar los artefactos del depósito de S3 en las instancias de destino. EC2 Si está habilitada, CloudWatch Events puede iniciar automáticamente la canalización cuando se produce un cambio en el código fuente.

Pila de tecnología

  • CodeBuild

  • CodeCommit

  • CodeDeploy

  • CodePipeline

  • CloudWatch Eventos (opcional)

Herramientas

  • AWS CodeBuildes un servicio de compilación totalmente gestionado que le ayuda a compilar código fuente, ejecutar pruebas unitarias y producir artefactos listos para su despliegue. CodeBuild compila el código fuente, ejecuta pruebas unitarias y produce artefactos listos para su despliegue.

  • AWS CodeCommites un servicio de control de versiones que te ayuda a almacenar y gestionar de forma privada los repositorios de Git, sin necesidad de gestionar tu propio sistema de control de código fuente.

  • AWS CodeDeployautomatiza las implementaciones en Amazon Elastic Compute Cloud EC2 (Amazon) o en instancias locales, AWS funciones de Lambda o servicios de Amazon Elastic Container Service (Amazon). ECS

  • AWS CodePipelinele ayuda a modelar y configurar rápidamente las diferentes etapas de una versión de software y a automatizar los pasos necesarios para publicar los cambios de software de forma continua.

Código

Este patrón incluye los siguientes archivos adjuntos:

  • buildspec.yml— Este archivo especifica las acciones necesarias CodeBuild para construir y crear un artefacto para su despliegue.

  • appspec.yml— Este archivo especifica las acciones necesarias para CodeDeploy crear una aplicación y configurar un entorno de destino para las instancias localesEC2.

  • install_dependencies.sh – Este archivo instala las dependencias del servidor web Apache Tomcat.

  • start_server.sh – Este archivo inicia el servidor web Apache Tomcat.

  • stop_server.sh – Este archivo detiene el servidor web Apache Tomcat.

Epics

TareaDescripciónHabilidades requeridas

Cree el repositorio.

Cree un CodeCommit repositorio.

AWSadministrador de sistemas

Clonar el repositorio.

Conéctese al CodeCommit repositorio clonando el repositorio.

Desarrollador de aplicaciones

Envíe el código fuente al repositorio remoto.

  1. Crear una confirmación para añadir los archivos buildspec.yml y appspec.yml a su repositorio local.

  2. Envía la confirmación de tu repositorio local al CodeCommit repositorio remoto.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Cree un proyecto de compilación.

  1. Inicie sesión en la consola AWS de administración, abra la AWS CodeBuild consola y, a continuación, seleccione Crear proyecto de compilación.

  2. En Nombre del proyecto, introduzca el nombre de su proyecto.

  3. En Proveedor de código fuente, elija AWS CodeCommit.

  4. En Repositorio, seleccione el repositorio en el que desee compilar la canalización de código.

  5. Para Imagen de entorno, elija Imagen administrada o Imagen personalizada.

  6. En Operating system (Sistema operativo), elija Amazon Linux 2.

    Nota: Amazon Linux 2 está a punto de finalizar el soporte. Para obtener más información, consulte Amazon Linux 2 FAQs.

  7. Para RunTime(s), elija Estándar.

  8. En Imagen, elija aws/codebuild/amazonlinux2-aarch64-standard:2.0.

  9. En Version de la imagen, elija Utilizar siempre la imagen más reciente para esta versión del tiempo de ejecución.

  10. En Rol de servicio, seleccione Nuevo rol de servicio o Rol de servicio existente.

  11. En Especificaciones de construcción, elija Usar un archivo de especificaciones de compilación o Insertar comandos de compilación.

  12. (Opcional) Seleccione Añadir artefacto para configurar los artefactos.

  13. (Opcional) Para subir los registros de salida de compilaciones a Amazon CloudWatch, selecciona CloudWatch logs.

  14. Elija Crear el proyecto de compilación.

AWSadministrador, desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Cree la aplicación.

  1. Inicie sesión en la consola AWS de administración, abra la AWS CodeDeploy consola y, a continuación, seleccione Crear aplicación.

  2. En Nombre de la aplicación, especifique un nombre para su aplicación.

  3. Para la plataforma informática, elija EC2/On-premises.

  4. Seleccione Crear aplicación y, a continuación, seleccione Crear grupo de implementación.

  5. En Nombre del grupo de implementación, introduzca un nombre.

  6. Cree un rol de servicio para. CodeDeploy Nota: El rol de servicio debe tener permisos para conceder CodeDeploy acceso al entorno de destino.

  7. En Rol de servicio, seleccione la función de servicio que creó en el paso 6.

  8. Para el Tipo de implementación, seleccione Presencial o Azul/Verde en función de los requisitos de su empresa.

  9. Para la Configuración del entorno, seleccione las opciones que cumplan sus requisitos empresariales.

  10. (Opcional) Crea un grupo objetivo para tu balanceador de carga por separado en la EC2 consola de Amazon y, a continuación, vuelve a la página Crear grupo de despliegue de la AWS CodeDeploy consola para elegir tu balanceador de carga y tu grupo objetivo.

  11. Elija Crear grupo de implementación.

AWSadministrador de sistemas, desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Cree la canalización.

  1. Inicie sesión en la consola AWS de administración, abra la AWS CodePipeline consola y, a continuación, seleccione Crear canalización.

  2. En Nombre de la canalización, especifique un nombre para la canalización.

  3. En Rol de servicio, seleccione Nuevo rol de servicio o Rol de servicio existente.

  4. Escriba un nombre para el rol en Nombre de rol.

  5. En la sección Configuración avanzada, en Tienda de artefactos, seleccione Ubicación predeterminada si desea que Amazon S3 cree un bucket y almacene los artefactos en el bucket. Para utilizar un bucket de S3 existente, elija Ubicación personalizada. Elija Next (Siguiente).

  6. En Proveedor de origen, elija AWS CodeCommit.

  7. En Nombre del repositorio, seleccione el repositorio que clonó anteriormente. En Nombre de rama, seleccione la rama de su código fuente.

  8. Para ver las opciones de detección de cambios, selecciona Amazon CloudWatch Events (recomendado) o AWS CodePipeline. Elija Next (Siguiente).

  9. En Build provider (Proveedor de compilación), elija AWS CodeBuild.

  10. En Nombre del proyecto, elige el proyecto de compilación que creaste en la sección Crear un CodeBuild proyecto para la aplicación de este patrón.

  11. Elija sus opciones de compilación y después elija Siguiente.

  12. En Deploy provider, elija AWS CodeDeploy.

  13. Seleccione un nombre de aplicación y un grupo de implementación y, a continuación, seleccione Siguiente.

  14. Seleccione Create pipeline.

AWSadministrador de sistemas, desarrollador de aplicaciones

Recursos relacionados

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip