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.
Implementaciones en una plataforma Amazon ECS Compute
En este tema se proporciona información sobre los componentes y el flujo de trabajo de CodeDeploy las implementaciones que utilizan la plataforma ECS informática Amazon.
Temas
- Antes de comenzar una ECS implementación de Amazon
- Flujo de trabajo de implementación (alto nivel) en una plataforma ECS informática de Amazon
- Qué ocurre durante un ECS despliegue de Amazon
- Carga de la revisión de la aplicación
- Creación de la aplicación y los grupos de implementación
- Implementación de la revisión de la aplicación
- Actualización de la aplicación
- Implementaciones detenidas y que producen error
- Reimplementaciones y restauración de implementaciones
- Implementaciones ECS azul/verde de Amazon mediante AWS CloudFormation
Antes de comenzar una ECS implementación de Amazon
Antes de comenzar el despliegue de una ECS aplicación de Amazon, debe tener preparado lo siguiente. Algunos requisitos se especifican al crear el grupo de despliegues y otros se especifican en el AppSpec archivo.
Requisito | Donde se especifica |
---|---|
ECSClúster de Amazon | Grupo de implementación |
ECSServicio Amazon | Grupo de implementación |
Equilibrador de carga de aplicación y equilibrador de carga de red | Grupo de implementación |
Agente de escucha de producción | Grupo de implementación |
Agente de escucha de prueba (opcional) | Grupo de implementación |
Dos grupos de destino | Grupo de implementación |
Definición de ECS tareas de Amazon | AppSpec archivo |
Nombre de contenedor | AppSpec archivo |
Puerto del contenedor | AppSpec archivo |
- ECSClúster de Amazon
-
Un ECS clúster de Amazon es una agrupación lógica de tareas o servicios. Al crear el grupo de despliegues de la CodeDeploy aplicación, especificas el ECS clúster de Amazon que contiene tu ECS servicio de Amazon. Para obtener más información, consulte Amazon ECS Clusters en la Guía del usuario de Amazon Elastic Container Service.
- ECSServicio Amazon
-
Un ECS servicio de Amazon mantiene y ejecuta instancias específicas de una definición de tarea en un ECS clúster de Amazon. Tu ECS servicio de Amazon debe estar activado para CodeDeploy. De forma predeterminada, un ECS servicio de Amazon está habilitado para las ECS implementaciones de Amazon. Al crear el grupo de despliegues, eliges implementar un ECS servicio de Amazon que esté en tu ECS clúster de Amazon. Para obtener más información, consulta ECSlos servicios de Amazon en la Guía del usuario de Amazon Elastic Container Service.
- Equilibrador de carga de aplicación y equilibrador de carga de red
-
Debe usar Elastic Load Balancing con el ECS servicio de Amazon que desee actualizar con una ECS implementación de Amazon. Puede usar un equilibrador de carga de aplicación o un equilibrador de carga de red. Le recomendamos un equilibrador de carga de aplicación para que pueda aprovechar características tales como el mapeo de puertos dinámico, el enrutamiento basado en rutas y las reglas de prioridad. El balanceador de cargas se especifica al crear el grupo de implementación de la CodeDeploy aplicación. Para obtener más información, consulte Configure un balanceador de carga, grupos objetivo y agentes de escucha para las implementaciones de CodeDeploy Amazon ECS y Creación de un equilibrador de carga en la Guía del usuario de Amazon Elastic Container Service.
- Uno o dos oyentes
-
El equilibrador de carga utiliza un oyente para dirigir el tráfico hacia los grupos de destino. Es obligatorio un agente de escucha de producción. Puede especificar un segundo agente de escucha de prueba opcional que dirija el tráfico hacia conjunto de tareas de sustitución mientras ejecuta las pruebas de validación. Especifique uno o ambos agentes de escucha al crear su grupo de implementaciones. Si utilizas la ECS consola de Amazon para crear tu ECS servicio de Amazon, tus oyentes se crean para ti. Para obtener más información, consulte Oyentes para equilibradores de carga de aplicación en la Guía del usuario de Elastic Load Balancing y Creación de un servicio en la Guía del usuario de Amazon Elastic Container Service.
- Dos grupos ECS objetivo de Amazon
-
Un grupo de destino se utiliza para dirigir el tráfico a un destino registrado. Un ECS despliegue de Amazon requiere dos grupos objetivo: uno para el conjunto de tareas original de la ECS aplicación de Amazon y otro para el conjunto de tareas de reemplazo. Durante el despliegue, CodeDeploy crea un conjunto de tareas de reemplazo y redirige el tráfico del conjunto de tareas original al nuevo. Los grupos de destino se especifican al crear el grupo de despliegue de la CodeDeploy aplicación.
Durante un despliegue, CodeDeploy determina qué grupo objetivo está asociado al conjunto de tareas de tu ECS servicio de Amazon que tiene el estado
PRIMARY
(este es el conjunto de tareas original) y asocia un grupo objetivo a él y, a continuación, asocia el otro grupo objetivo al conjunto de tareas de reemplazo. Si realiza otra implementación, el grupo de destino asociado al conjunto de tareas original de la implementación actual se asocia al siguiente conjunto de tareas de sustitución de implementación. Para obtener más información, consulte Grupos de destino para equilibradores de carga de aplicación en la Guía del usuario de Elastic Load Balancing. - Definición de una ECS tarea de Amazon
-
Se necesita una definición de tarea para ejecutar el contenedor de Docker que contiene tu ECS aplicación de Amazon. La definición ARN de la tarea se especifica en el AppSpec archivo de la CodeDeploy aplicación. Para obtener más información, consulte las definiciones de ECS tareas de Amazon en la Guía del usuario de Amazon Elastic Container Service y AppSpec sección de «recursos» para las ECS implementaciones de Amazon.
- Un contenedor para tu ECS aplicación de Amazon
-
Un contenedor de Docker es una unidad de software que empaqueta código y sus dependencias para que pueda ejecutarse su aplicación. Un contenedor aísla la aplicación, por lo que se puede ejecutar en distintos entornos informáticos. El balanceador de cargas dirige el tráfico a un contenedor del conjunto de tareas de tu ECS aplicación de Amazon. Especificas el nombre de tu contenedor en el AppSpec archivo de tu CodeDeploy aplicación. El contenedor especificado en tu AppSpec archivo debe ser uno de los contenedores especificados en tu definición de ECS tarea de Amazon. Para obtener más información, consulte ¿Qué es Amazon Elastic Container Service? en la Guía del usuario de Amazon Elastic Container Service y AppSpec sección de «recursos» para las ECS implementaciones de Amazon.
- Un puerto para su conjunto de tareas de sustitución
-
Durante la ECS implementación de Amazon, el balanceador de carga dirige el tráfico a este puerto en el contenedor especificado en el AppSpec archivo de la CodeDeploy aplicación. El puerto se especifica en el AppSpec archivo de la CodeDeploy aplicación. Para obtener más información, consulte AppSpec sección de «recursos» para las ECS implementaciones de Amazon.
Flujo de trabajo de implementación (alto nivel) en una plataforma ECS informática de Amazon
En el siguiente diagrama se muestran los pasos principales de la implementación de los ECS servicios de Amazon actualizados.
Estos pasos incluyen:
-
Cree una AWS CodeDeploy aplicación especificando un nombre que represente de forma exclusiva lo que desea implementar. Para implementar una ECS aplicación de Amazon, en su AWS CodeDeploy aplicación, elija la plataforma ECS informática de Amazon. CodeDeploy utiliza una aplicación durante una implementación para hacer referencia a los componentes de implementación correctos, como el grupo de implementación, los grupos objetivo, los oyentes y el comportamiento de redireccionamiento del tráfico y la revisión de la aplicación. Para obtener más información, consulte Cree una aplicación con CodeDeploy.
-
Configure un grupo de implementaciones especificando:
-
El nombre del grupo de implementaciones.
-
Tu nombre de servicio y ECS clúster de Amazon. El controlador de despliegue del ECS servicio de Amazon debe estar configurado en CodeDeploy.
-
El agente de escucha de producción, un agente de escucha de prueba opcional y los grupos de destino utilizados durante una implementación.
-
Ajustes de despliegue, como cuándo redirigir el tráfico de producción al conjunto de ECS tareas de Amazon de reemplazo en tu ECS servicio de Amazon y cuándo finalizar el conjunto de ECS tareas de Amazon original en tu servicio de AmazonECS.
-
Las configuraciones opcionales, como los desencadenadores, alarmas y comportamiento de restauración.
-
-
Especifique un archivo de especificaciones de la aplicación (AppSpec archivo). Puede cargarlo en Amazon S3, introducirlo en la consola con un JSON formato YAML o especificarlo con la tecla AWS CLI oSDK. El AppSpec archivo especifica una definición de ECS tarea de Amazon para la implementación, un nombre de contenedor y una asignación de puertos que se utilizan para enrutar el tráfico, y las funciones Lambda que se ejecutan después de los enlaces del ciclo de vida de la implementación. El nombre del contenedor debe ser uno de los contenedores de la definición de ECS tareas de Amazon. Para obtener más información, consulte Trabajar con revisiones de aplicaciones para CodeDeploy.
-
Implemente la revisión de su aplicación. AWS CodeDeploy redirige el tráfico de la versión original de un conjunto de tareas de tu ECS servicio de Amazon a un nuevo conjunto de tareas de reemplazo. Los grupos de destino especificados en el grupo de implementaciones se utilizan para enviar tráfico a los conjuntos de tareas original y de sustitución. Cuando se completa la implementación, se termina el conjunto de tareas original. Puede especificar un agente de escucha de prueba opcional para enviar tráfico de prueba a la versión de sustitución antes de redirigir el tráfico a la misma. Para obtener más información, consulte Cree una implementación con CodeDeploy.
-
Compruebe los resultados de la implementación. Para obtener más información, consulte Supervisión de los despliegues en CodeDeploy.
Qué ocurre durante un ECS despliegue de Amazon
Antes de iniciar una ECS implementación de Amazon con un detector de prueba, debes configurar sus componentes. Para obtener más información, consulte Antes de comenzar una ECS implementación de Amazon.
El siguiente diagrama muestra la relación entre estos componentes cuando una ECS implementación de Amazon está lista para comenzar.
Cuando comienza la implementación, los eventos del ciclo de vida de la implementación empiezan a ejecutarse uno tras otro. Algunos eventos del ciclo de vida son enlaces que solo ejecutan las funciones de Lambda especificadas en el AppSpec archivo. Los eventos de ciclo de vida de la implementación de la siguiente tabla se indican en el orden en el que se ejecutan. Para obtener más información, consulte AppSpec sección «ganchos» para una ECS implementación de Amazon.
Evento del ciclo de vida | Acción del evento del ciclo de vida |
---|---|
BeforeInstall (un enlace para funciones de Lambda) |
Ejecutar las funciones de Lambda. |
Instalación | Configurar el conjunto de tareas de sustitución. |
AfterInstall (un enlace para funciones de Lambda) |
Ejecutar las funciones de Lambda. |
AllowTestTraffic | Dirigir el tráfico del oyente de prueba al grupo de destino 2. |
AfterAllowTestTraffic (un enlace para funciones de Lambda) |
Ejecutar las funciones de Lambda. |
BeforeAllowTraffic (un enlace para funciones de Lambda) |
Ejecutar las funciones de Lambda. |
AllowTraffic | Dirigir el tráfico desde el oyente de producción al grupo de destino 2. |
AfterAllowTraffic |
Ejecutar las funciones de Lambda. |
nota
Las funciones de Lambda de un enlace son opcionales.
-
Ejecute cualquier función Lambda especificada en el
BeforeInstall
enlace del AppSpec archivo. -
Durante el evento de ciclo de vida
Install
:-
Se crea un conjunto de tareas de reemplazo en tu ECS servicio de Amazon.
-
La aplicación en contenedor actualizada se instala en el conjunto de tareas de sustitución.
-
El segundo grupo de destino se asocia al conjunto de tareas de sustitución.
En el siguiente diagrama se muestran los componentes de implementación con el nuevo conjunto de tareas de sustitución. La aplicación en contenedor está dentro del conjunto de tareas. El conjunto de tareas se compone de tres tareas. (Una aplicación puede tener cualquier número de tareas). El segundo grupo de destino se asocia ahora al conjunto de tareas de sustitución.
-
-
Ejecute cualquier función Lambda especificada en el
AfterInstall
enlace del AppSpec archivo. -
Se invoca el evento
AllowTestTraffic
. Durante este evento del ciclo de vida, el agente de escucha de prueba dirige el tráfico a la aplicación en contenedor actualizada. -
Ejecute cualquier función Lambda especificada en el
AfterAllowTestTraffic
enlace del AppSpec archivo. Las funciones de Lambda pueden validar la implementación mediante el tráfico de prueba. Por ejemplo, una función Lambda puede servir tráfico al agente de escucha de prueba y realizar un seguimiento de las métricas del conjunto de tareas de sustitución. Si las reversiones están configuradas, puede configurar una CloudWatch alarma que active una reversión cuando falle la prueba de validación de la función Lambda.Una vez realizadas las pruebas de validación, se produce una de las situaciones siguientes:
-
Si no se supera la validación y se han configurado las restauraciones, el estado de la implementación se marca como
Failed
y los componentes vuelven al estado que tenían cuando se inició la implementación. -
Si no se supera la validación y no se han configurado las restauraciones, el estado de la implementación se marca como
Failed
y los componentes permanecen en su estado actual. -
Si se supera la validación, la implementación continúa hasta el enlace
BeforeAllowTraffic
.
Para obtener más información, consulte Supervisión de las implementaciones con CloudWatch alarmas en CodeDeploy, Restauraciones automáticas y Configuración de las opciones avanzadas de un grupo de implementación.
-
-
Ejecute cualquier función Lambda especificada en el
BeforeAllowTraffic
enlace del AppSpec archivo. -
Se invoca el evento
AllowTraffic
. El tráfico se desvía del conjunto de tareas original al conjunto de tareas de sustitución. En el siguiente diagrama se muestra el conjunto de tareas de sustitución recibiendo tráfico de producción. -
Ejecute cualquier función Lambda especificada en el
AfterAllowTraffic
enlace del AppSpec archivo. -
Después de que todos los eventos se ejecuten correctamente, el estado de la implementación se establece en
Succeeded
y el conjunto de tareas original se elimina.
Carga de la revisión de la aplicación
Coloque un AppSpec archivo en Amazon S3 o introdúzcalo directamente en la consola o AWS CLI. Para obtener más información, consulte Application Specification Files.
Creación de la aplicación y los grupos de implementación
Un grupo de CodeDeploy despliegue en una plataforma ECS informática de Amazon identifica a los oyentes para que entreguen el tráfico a la ECS aplicación de Amazon actualizada y a los dos grupos objetivo que se utilizan durante la implementación. Un grupo de implementación también define un conjunto de opciones de configuración, como alarmas y configuraciones de restauración.
Implementación de la revisión de la aplicación
Ahora está listo para implementar el ECS servicio de Amazon actualizado especificado en su grupo de implementación. Puede usar la CodeDeploy consola o el comando create-deployment. Hay parámetros que puede especificar para controlar la implementación, que incluyen el grupo de revisión y de implementaciones.
Actualización de la aplicación
Puede realizar actualizaciones en la aplicación y, a continuación, utilizar la CodeDeploy consola o ejecutar el comando create-deployment para realizar una revisión.
Implementaciones detenidas y que producen error
Puede usar la CodeDeploy consola o el comando stop-deployment para detener una implementación. Cuando se intenta detener la implementación, sucede una de estas tres cosas:
-
La implementación se detiene y la operación devuelve el estado “realizada correctamente”. En este caso, no se ejecutan más eventos del ciclo de vida de implementación en el grupo de implementaciones para la implementación detenida.
-
La implementación no se detiene inmediatamente y la operación devuelve el estado “pendiente”. En este caso, podrían seguir ejecutándose algunos eventos del ciclo de vida de implementación en el grupo de implementaciones. Después de finalizada la operación pendiente, las llamadas posteriores para detener la implementación devuelven el estado “realizada correctamente”.
-
La implementación no se puede detener y la operación devuelve un error. Para obtener más información, consulte Información sobre errores y Errores comunes en la AWS CodeDeploy API referencia.
Reimplementaciones y restauración de implementaciones
CodeDeploy implementa las reversiones redireccionando el tráfico del conjunto de tareas de reemplazo al conjunto de tareas original.
Puede configurar un grupo de implementación para que se restaure automáticamente si se dan ciertas condiciones, por ejemplo, si falla una implementación o si se alcanza el umbral de monitorización de alarmas. Además, puede anular la configuración de restauración especificada para el grupo de implementaciones en una implementación individual.
También puede optar por restaurar una implementación que produjo error manualmente, volviendo a implementar una revisión implementada anteriormente.
En todos los casos, a la implementación nueva o restaurada se le asigna su propio ID de implementación. La CodeDeploy consola muestra una lista de las implementaciones que son el resultado de una implementación automática.
Si vuelve a realizar una implementación, el grupo de destino asociado al conjunto de tareas original de la implementación actual se asocia al siguiente conjunto de tareas de sustitución de la nueva implementación.
Para obtener más información, consulte Vuelva a implementar y revertir una implementación con CodeDeploy.
Implementaciones ECS azul/verde de Amazon mediante AWS CloudFormation
Puede utilizarlo AWS CloudFormation para gestionar las implementaciones ECS azul/verde de Amazon a través de. CodeDeploy Para obtener más información, consulte Cree una implementación ECS azul/verde de Amazon mediante AWS CloudFormation.
nota
La gestión de las implementaciones ECS azul/verde de Amazon con no AWS CloudFormation está disponible en la región Asia Pacífico (Osaka).