

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.

# ¿Qué es CodeDeploy?
<a name="welcome"></a>

CodeDeploy es un servicio de implementación que automatiza las implementaciones de aplicaciones en instancias de Amazon EC2, instancias locales, funciones Lambda sin servidor o servicios de Amazon ECS.

Puede implementar una variedad de contenidos de aplicación prácticamente ilimitada, entre las que se incluyen:
+ Código
+ Funciones sin servidor AWS Lambda 
+ Archivos de configuración y web
+ Executables
+ Paquetes
+ Scripts
+ Archivos multimedia

CodeDeploy puede implementar contenido de aplicaciones que se ejecute en un servidor y se almacene en buckets, GitHub repositorios o repositorios de Bitbucket de Amazon S3. CodeDeploy también puede implementar una función Lambda sin servidor. No es necesario hacer cambios en el código existente para poder utilizar CodeDeploy. 

CodeDeploy le facilita:
+ Lanzar rápidamente nuevas características.
+ Actualizar las versiones AWS Lambda de las funciones.
+ Evitar tiempos de inactividad durante la implementación de las aplicaciones.
+ Gestionar el complejo proceso de actualización de las aplicaciones, evitando muchos de los riesgos asociados a las implementaciones manuales, que son susceptibles a errores.

El servicio se adapta a su infraestructura, por lo que puede implementar fácilmente en una sola instancia o en miles de ellas.

CodeDeploy funciona con varios sistemas para la gestión de la configuración, el control de fuentes, [la integración continua](https://aws.amazon.com/devops/continuous-integration/)[, la entrega](https://aws.amazon.com/devops/continuous-delivery/) continua y el despliegue continuo. Para obtener más información, consulte [Integraciones de productos](https://aws.amazon.com/codedeploy/product-integrations/).

 La CodeDeploy consola también proporciona una forma de buscar rápidamente sus recursos, como repositorios, proyectos de compilación, aplicaciones de implementación y canalizaciones. Elija **Ir a recurso** o pulse la tecla `/` y, a continuación, escriba el nombre del recurso. Se muestran todas las coincidencias en la lista. En las búsquedas, no se distingue entre mayúsculas y minúsculas. Solo puede ver los recursos para los que tiene permiso. Para obtener más información, consulte [Gestión de identidad y acceso para AWS CodeDeploy](security-iam.md). 

**Topics**
+ [

## Ventajas de AWS CodeDeploy
](#benefits)
+ [

## Descripción general de las plataformas informáticas CodeDeploy
](#compute-platform)
+ [

## Descripción general de los tipos de implementación CodeDeploy
](#welcome-deployment-overview)
+ [

## Esperamos tener noticias suyas
](#welcome-contact-us)
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

## Ventajas de AWS CodeDeploy
<a name="benefits"></a>

CodeDeploy ofrece los siguientes beneficios:
+ **Aplicaciones de servidor, sin servidor y de contenedor.** CodeDeployle permite implementar aplicaciones tradicionales en servidores y aplicaciones que implementan una versión de AWS Lambda función sin servidor o una aplicación de Amazon ECS.
+ **Implementaciones automatizadas**. CodeDeploy automatiza completamente las implementaciones de sus aplicaciones en sus entornos de desarrollo, pruebas y producción. CodeDeployescala con su infraestructura para que pueda implementarlas en una o en miles de instancias.
+ **Minimizar el tiempo de inactividad**. Si su aplicación utiliza la plataforma informática local EC2, CodeDeploy ayuda a maximizar la disponibilidad de la aplicación. Durante una implementación local, CodeDeploy realiza una actualización progresiva en todas las instancias de Amazon EC2. Es posible especificar el número de instancias que se desactivan a la vez para efectuar las actualizaciones. Durante una blue/green implementación, la última revisión de la aplicación se instala en las instancias de reemplazo. El tráfico se desvía a estas instancias en el momento que desee, bien inmediatamente o cuando haya terminado de probar el nuevo entorno. En ambos tipos de implementación, CodeDeploy supervisa el estado de la aplicación de acuerdo con las reglas que configure. 
+ **Detención y reversión**. En caso de que haya errores, puede detener y revertir la implementación de forma automática o manual. 
+ **Control centralizado**. Puede iniciar sus implementaciones y realizar un seguimiento del estado de las mismas a través de la CodeDeploy consola o del AWS CLI. Recibirá un informe que indica el momento en que se implementó cada revisión de la aplicación en cada instancia de Amazon EC2. 
+ **Fácil de adoptar**. CodeDeploy es independiente de la plataforma y funciona con cualquier aplicación. Puedes reutilizar fácilmente tu código de configuración. CodeDeploy también se puede integrar con su proceso de lanzamiento de software o con su cadena de herramientas de entrega continua.
+ **Implementaciones simultáneas**. Si tiene más de una aplicación que utiliza la plataforma informática local EC2, CodeDeploy puede implementarlas simultáneamente en el mismo conjunto de instancias.



## Descripción general de las plataformas informáticas CodeDeploy
<a name="compute-platform"></a>

CodeDeploy puede implementar aplicaciones en tres plataformas informáticas:
+ **EC2/en las instalaciones**: describe las instancias de servidores físicos que pueden ser instancias en la nube de Amazon EC2, servidores en las instalaciones o ambas cosas. Las aplicaciones creadas mediante la plataforma de informática EC2/en las instalaciones pueden estar formadas por archivos ejecutables, archivos de configuración, imágenes, etc.

  Las implementaciones que usan la plataforma de informática EC2/en las instalaciones administran la forma en que el tráfico se envía a las instancias mediante un tipo de implementación local o azul/verde. Para obtener más información, consulte [Descripción general de los tipos de implementación CodeDeploy](#welcome-deployment-overview).
+ **AWS Lambda**: se usa para implementar aplicaciones que constan de una versión actualizada de una función Lambda. AWS Lambda administra la función Lambda en un entorno informático sin servidor compuesto por una estructura informática de alta disponibilidad. Toda la administración de los recursos de cómputo la realiza. AWS Lambda Para obtener más información, consulte [Aplicaciones y informática sin servidor‭](https://aws.amazon.com/serverless/). Para obtener más información acerca de AWS Lambda las funciones Lambda, consulte. [AWS Lambda](https://aws.amazon.com/lambda/)

  Puede administrar la forma en que el tráfico se desplaza a las versiones actualizadas de la función Lambda durante una implementación eligiendo una configuración canaria, lineal o all-at-once lineal. 
+ **Amazon ECS**: se utiliza para implementar una aplicación contenerizada de Amazon ECS como un conjunto de tareas. CodeDeploy realiza una blue/green implementación instalando una versión actualizada de la aplicación como un nuevo conjunto de tareas de reemplazo. CodeDeploy redirige el tráfico de producción del conjunto de tareas de la aplicación original al conjunto de tareas de reemplazo. Cuando la implementación se realiza correctamente, se termina el conjunto de tareas original. Para obtener más información acerca de Amazon ECS, consulte [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Puede administrar la forma en que el tráfico se desplaza al conjunto de tareas actualizado durante una implementación eligiendo una configuración canaria, lineal o all-at-once lineal.
**nota**  
Las blue/green implementaciones de Amazon ECS son compatibles con CodeDeploy y CloudFormation. Los detalles de estas implementaciones se describen en secciones posteriores.

En la siguiente tabla se describe cómo se utilizan CodeDeploy los componentes con cada plataforma informática. Para obtener más información, consulte lo siguiente: 
+  [Trabajar con grupos de despliegue en CodeDeploy](deployment-groups.md) 
+  [Trabajar con despliegues en CodeDeploy](deployments.md) 
+  [Trabajar con configuraciones de implementación en CodeDeploy](deployment-configurations.md) 
+  [Trabajar con revisiones de aplicaciones para CodeDeploy](application-revisions.md) 
+  [Trabajo con aplicaciones en CodeDeploy](applications.md) 


| CodeDeploy componente | EC2/en las instalaciones | AWS Lambda | Amazon ECS | 
| --- | --- | --- | --- | 
| Grupo de implementación | Implementa una revisión en un conjunto de instancias. | Implementa una nueva versión de una función de Lambda sin servidor en una infraestructura informática de alta disponibilidad. | Especifica el servicio de Amazon ECS con la aplicación en contenedor para implementar como un conjunto de tareas, un oyente de producción y de prueba opcional que se utiliza para enviar tráfico a la aplicación implementada, cuándo redirigir el tráfico y terminar el conjunto de tareas original de la aplicación implementada y configuración opcional de activador, alarma y restauración. | 
| Implementación | Implementa una nueva revisión que consta de una aplicación y AppSpec un archivo. AppSpec Especifica cómo implementar la aplicación en las instancias de un grupo de implementación. | Desvía el tráfico de producción desde una versión de una función de Lambda a una nueva versión de la misma función. El AppSpec archivo especifica qué versión de la función Lambda se debe implementar. | Implementa una versión actualizada de una aplicación contenerizada de Amazon ECS como un nuevo conjunto de tareas de reemplazo. CodeDeploy redirige el tráfico de producción del conjunto de tareas con la versión original al nuevo conjunto de tareas de reemplazo con la versión actualizada. Cuando se completa la implementación, se termina el conjunto de tareas original. | 
| Configuración de implementación | Configuración que determina la velocidad de implementación y el número mínimo de instancias que deben estar en buen estado en cualquier momento durante una implementación. | Configuración que determina cómo se desvía el tráfico a las versiones de la función de Lambda actualizadas. | Configuración que determina cómo se desvía el tráfico al conjunto de tareas actualizado de Amazon ECS. | 
| Revisión | Combinación de un AppSpec archivo y archivos de aplicación, como ejecutables, archivos de configuración, etc. |  AppSpec Archivo que especifica qué función de Lambda se debe implementar y qué funciones de Lambda pueden ejecutar pruebas de validación durante los ganchos de eventos del ciclo de vida de la implementación. |  Un AppSpec archivo que especifica: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/welcome.html)  | 
| Aplicación | Colección de grupos de implementación y revisiones. Una aplicación de EC2/en las instalaciones utiliza la plataforma de informática de EC2/en las instalaciones. | Colección de grupos de implementación y revisiones. Una aplicación utilizada para una AWS Lambda implementación usa la plataforma de procesamiento AWS Lambda sin servidor. | Colección de grupos de implementación y revisiones. Una aplicación utilizada para una implementación de Amazon ECS utiliza la plataforma de informática de Amazon ECS. | 

## Descripción general de los tipos de implementación CodeDeploy
<a name="welcome-deployment-overview"></a>

CodeDeploy ofrece dos opciones de tipos de despliegue:
+ **Implementación local**: la aplicación de cada instancia del grupo de implementación se para, se instala la última revisión de la aplicación, y se inicia y valida la nueva versión de la aplicación. Puede utilizar un equilibrador de carga de modo que se cancele el registro de cada instancia durante su implementación y, a continuación, vuelva a ponerse en servicio una vez completada la implementación. Solo las implementaciones que usan la plataforma de informática de EC2/en las instalaciones pueden utilizar implementaciones locales. Para obtener más información acerca de las implementaciones locales, consulte [Información general de la implementación local](#welcome-deployment-overview-in-place).
**nota**  
AWS Las implementaciones de Lambda y Amazon ECS no pueden usar un tipo de implementación local.
+ **Implementación azul/verde**: el funcionamiento de la implementación depende de la plataforma de informática que utilice:
  + **Blue/green on an EC2/On-Plataforma informática local**: las instancias de un grupo de implementaciones (el entorno original) se sustituyen por un conjunto diferente de instancias (el entorno de reemplazo) siguiendo estos pasos:
    + Las instancias se aprovisionan en el entorno de sustitución.
    + La revisión de aplicación más reciente se instala en las instancias de sustitución.
    + Existe un tiempo de espera opcional para actividades como las pruebas de aplicaciones y la verificación del sistema.
    + Las instancias del entorno de sustitución se registran en uno o más equilibradores de carga de Elastic Load Balancing, lo que provoca que el tráfico se redirija a ellos. Las instancias del entorno original se anulan del registro y se pueden cerrar o mantener en ejecución para otros usos.
**nota**  
Si utiliza una plataforma informática EC2/local, tenga en cuenta que las blue/green implementaciones solo funcionan con instancias de Amazon EC2.
  + **Azul/verde en una plataforma informática o AWS Lambda Amazon ECS**: el tráfico se desplaza en incrementos según una configuración **canaria**, **lineal** o **all-at-once**de implementación.
  + **Implementaciones azules/verdes CloudFormation: el tráfico pasa** de los recursos actuales a los recursos actualizados como parte de una actualización de la pila. CloudFormation Actualmente, solo se admiten las blue/green implementaciones de ECS. 

  Para obtener más información sobre blue/green las implementaciones, consulte. [Descripción general de una implementación blue/green](#welcome-deployment-overview-blue-green)

**nota**  
Con el CodeDeploy agente, puede realizar un despliegue en una instancia en la que haya iniciado sesión sin necesidad de una aplicación, un grupo de despliegue o incluso una AWS cuenta. Para obtener información, consulte [Utilice el CodeDeploy agente para validar un paquete de despliegue en una máquina local](deployments-local.md).

**Topics**
+ [

### Información general de la implementación local
](#welcome-deployment-overview-in-place)
+ [

### Descripción general de una implementación blue/green
](#welcome-deployment-overview-blue-green)

### Información general de la implementación local
<a name="welcome-deployment-overview-in-place"></a>

**nota**  
AWS Las implementaciones de Lambda y Amazon ECS no pueden usar un tipo de implementación local.

Así es como funciona una implementación local:

1. En primer lugar, debe crear contenido desplegable en su máquina de desarrollo local o entorno similar y, a continuación, añadir un archivo de *especificaciones de la aplicación (archivo*). AppSpec El AppSpec archivo es exclusivo de. CodeDeploy Define las acciones de despliegue que CodeDeploy desea ejecutar. Agrupa el contenido desplegable y el AppSpec archivo en un archivo y, a continuación, lo carga en un depósito o GitHub repositorio de Amazon S3. Este archivo de almacenamiento se denomina *revisión de la aplicación* (o simplemente *revisión*).

1. A continuación, debe proporcionar CodeDeploy información sobre su implementación, como el GitHub depósito o repositorio de Amazon S3 desde el que extraer la revisión y en qué conjunto de instancias de Amazon EC2 se debe implementar su contenido. CodeDeploy llama grupo de *implementación* a un conjunto de instancias de Amazon EC2. Un grupo de implementación contiene instancias de Amazon EC2 etiquetadas individualmente, instancias de Amazon EC2 en grupos de Amazon EC2 Auto Scaling o ambas.

   Cada vez que cargue correctamente una nueva revisión de una aplicación que desee implementar en el grupo de implementaciones, el paquete correspondiente se marca como *revisión de destino* para ese grupo de implementaciones. En otras palabras, la revisión de la aplicación que debe implementarse en cada momento es la revisión de destino. También es la revisión que se extrae para las implementaciones automáticas.

1. A continuación, el CodeDeploy agente de cada instancia sondea CodeDeploy para determinar qué y cuándo extraer del GitHub depósito o repositorio de Amazon S3 especificado.

1. Por último, el CodeDeploy agente de cada instancia extrae la revisión de destino del GitHub depósito o repositorio de Amazon S3 y, siguiendo las instrucciones del AppSpec archivo, despliega el contenido en la instancia.

 CodeDeploy mantiene un registro de las implementaciones para que pueda obtener el estado de las mismas, los parámetros de configuración de las mismas, el estado de las instancias, etc.

### Descripción general de una implementación blue/green
<a name="welcome-deployment-overview-blue-green"></a>

Una blue/green implementación se utiliza para actualizar las aplicaciones y, al mismo tiempo, minimizar las interrupciones causadas por los cambios de una nueva versión de la aplicación. CodeDeploy aprovisiona la nueva versión de la aplicación junto con la versión anterior antes de redirigir el tráfico de producción. 
+  **AWS Lambda**: el tráfico pasa de una versión de una función Lambda a una nueva versión de la misma función Lambda. 
+  **Amazon ECS**: se desvía el tráfico desde un conjunto de tareas de su servicio de Amazon ECS a un conjunto de tareas de sustitución actualizado en el mismo servicio de Amazon ECS. 
+  **EC2/en las instalaciones**: se desvía el tráfico desde un conjunto de instancias en el entorno original a un conjunto de instancias de sustitución. 

Todas las implementaciones de AWS Lambda y Amazon ECS ofrecen una serie de ventajas en comparación con una blue/green. An EC2/On-Premises deployment can be in-place or blue/green. A blue/green implementación local:
+ Puede instalar y probar una aplicación en el nuevo entorno de sustitución e implementarla en producción con solo redirigir el tráfico.
+  Si utiliza la plataforma de informática de EC2/en las instalaciones, es más rápido y seguro volver a cambiar a la versión más reciente de una aplicación. Esto se debe a que el tráfico puede volver a dirigirse a las instancias originales, siempre que no se hayan terminado. Con una implementación in situ, las versiones deben revertirse a la versión anterior de la aplicación.
+ Si utiliza la plataforma informática local EC2, se aprovisionan nuevas instancias para una blue/green implementación y reflejan la mayoría de las configuraciones de servidor. up-to-date Esto ayuda a evitar la clase de problemas que a veces aparecen en las instancias que llevan mucho tiempo en ejecución.
+ Si utiliza la plataforma de procesamiento AWS Lambda, usted controla cómo se transfiere el tráfico de la versión original de la función AWS Lambda a la nueva versión de la función AWS Lambda.
+ Si utiliza la plataforma de informática de Amazon ECS, puede controlar cómo se desvía el tráfico del conjunto de tareas original al nuevo conjunto de tareas.

Una blue/green implementación con CloudFormation puede usar uno de los siguientes métodos:
+ **CloudFormation plantillas para despliegues**: cuando configuras despliegues con CloudFormation plantillas, los despliegues se activan mediante actualizaciones. CloudFormation Al cambiar un recurso y cargar un cambio de plantilla, una actualización de la pila CloudFormation inicia la nueva implementación. Para obtener una lista de los recursos que puede utilizar en CloudFormation las plantillas, consulte[CloudFormation plantillas de CodeDeploy referencia](reference-cloudformation-templates.md).
+ Desde **despliegues azules/verdes hasta CloudFormation**: puedes utilizarlos CloudFormation para gestionar tus blue/green despliegues mediante actualizaciones de pilas. Defina los recursos blue y green (azules y verdes), además de especificar la configuración de enrutamiento y estabilización del tráfico dentro de la plantilla de pila. A continuación, si actualizas los recursos seleccionados durante una actualización de pila, CloudFormation generas todos los recursos verdes necesarios, desplaza el tráfico en función de los parámetros de enrutamiento de tráfico especificados y elimina los recursos azules. Para obtener más información, consulte [Automatizar blue/green las implementaciones de Amazon ECS CodeDeploy mediante su uso CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html) en la *Guía del AWS CloudFormation usuario*.
**nota**  
Solo se admite en las blue/green implementaciones de Amazon ECS.

La forma de configurar una blue/green implementación depende de la plataforma informática que utilice la implementación.



#### Implementación azul/verde en una plataforma informática o AWS Lambda Amazon ECS
<a name="blue-green-lambda-compute-type"></a>

Si utiliza la AWS Lambda plataforma informática Amazon ECS, debe indicar cómo se desplaza el tráfico de la AWS Lambda función original o del conjunto de tareas de Amazon ECS a la nueva función o conjunto de tareas. Para indicar cómo se desvía el tráfico, debe especificar una de las siguientes configuraciones de implementación:
+ **valor controlado**
+ **lineal**
+ **all-at-once**

Para obtener información sobre cómo se desplaza el tráfico en configuraciones canarias, lineales o de all-at-once despliegue, consulte[Configuración de implementación](primary-components.md#primary-components-deployment-configuration).

Para obtener más información sobre la configuración de implementación de Lambda, consulte [Configuraciones de implementación en una plataforma AWS Lambda informática](deployment-configurations.md#deployment-configuration-lambda).

Para obtener más información sobre la configuración de implementación de Amazon ECS, consulte [Configuraciones de implementación en una plataforma de informática de Amazon ECS](deployment-configurations.md#deployment-configuration-ecs).

#### Blue/Green deployment on an EC2/on-plataforma informática local
<a name="blue-green-server-compute-type"></a>

**nota**  
Debe usar instancias de Amazon EC2 para las blue/green implementaciones en la plataforma informática local EC2/. Las instancias locales no son compatibles con este tipo de implementación. blue/green 

Si utiliza la plataforma de informática de EC2/en las instalaciones, tenga en cuenta lo siguiente:

 Debe tener una o varias instancias de Amazon EC2 con etiquetas de identificación de Amazon EC2 o un grupo de Amazon EC2 Amazon EC2 Auto Scaling. Las instancias también deben cumplir los requisitos siguientes:
+ Cada instancia de Amazon EC2 debe tener asociado el perfil de instancia de IAM correcto.
+ El CodeDeploy agente debe estar instalado y en ejecución en cada instancia.

**nota**  
Por lo general, también se ejecuta una revisión de la aplicación en las instancias de su entorno original, pero esto no es obligatorio para una blue/green implementación.

Al crear un grupo de implementaciones que se utiliza en blue/green las implementaciones, puede elegir cómo especificar el entorno de reemplazo:

**Copie un grupo de Amazon EC2 Auto Scaling existente**: durante blue/green la implementación CodeDeploy , crea las instancias para su entorno de reemplazo durante la implementación. Con esta opción, CodeDeploy utiliza el grupo Amazon EC2 Auto Scaling que especifique como plantilla para el entorno de reemplazo, que incluye el mismo número de instancias en ejecución y muchas otras opciones de configuración.

**Elegir las instancias manualmente**: puede especificar las instancias consideradas de sustitución mediante etiquetas de instancia de Amazon EC2, nombres de grupo de Amazon EC2 Auto Scaling o ambos. Si elige esta opción, no tendrá que especificar las instancias del entorno de sustitución hasta el momento de crear una implementación.

Así es como funciona:

1. Ya cuenta con instancias o un grupo de Amazon EC2 Auto Scaling que sirven como entorno original. La primera vez que ejecuta una blue/green implementación, suele utilizar instancias que ya se utilizaron en una implementación local.

1. En una CodeDeploy aplicación existente, se crea un grupo de blue/green implementaciones en el que, además de las opciones necesarias para una implementación local, se especifica lo siguiente:
   + El balanceador o balanceadores de carga que redirigen el tráfico desde el entorno original al entorno de reemplazo durante el blue/green proceso de implementación.
   + Si el tráfico debe dirigirse al entorno de sustitución de inmediato o esperar a que lo redirija manualmente. 
   + La velocidad con la que se dirige el tráfico a las instancias de sustitución.
   + Si las instancias sustituidas deben terminarse o mantenerse en ejecución.

1. Ahora creará una implementación para este grupo de implementaciones en la que ocurrirá lo siguiente:

   1. Si decide copiar un grupo de Amazon EC2 Auto Scaling, se preparan instancias para el entorno de sustitución.

   1. La revisión de aplicación especificada para la implementación se instala en las instancias de sustitución.

   1. Si ha especificado un tiempo de espera en la configuración del grupo de implementaciones, la implementación se pausa. Este es el momento en el que puede realizar pruebas y verificaciones en el entorno de sustitución. Si no redirige manualmente el tráfico antes de que finalice el periodo de espera, la implementación se detiene.

   1. Las instancias del entorno de sustitución se registran con un equilibrador de carga de Elastic Load Balancing y el tráfico comienza a dirigirse a ellas.

   1. Las instancias del entorno original se borran del registro y se terminan o se mantienen en ejecución, según lo que haya especificado para el grupo de implementaciones.

#### Implementación azul/verde a través de CloudFormation
<a name="blue-green-cfn-config-type"></a>

Puede gestionar las implementaciones CodeDeploy azules y verdes modelando sus recursos con una plantilla. CloudFormation 

Cuando modelas tus blue/green recursos con una CloudFormation plantilla, creas una actualización de pila CloudFormation que actualiza tu conjunto de tareas. El tráfico de producción pasa del conjunto de tareas original del servicio a un conjunto de tareas de sustitución o bien todo a la vez, con implementaciones lineales y tiempos de procesamiento, o bien con implementaciones de valores controlados. La actualización de la pila inicia una implementación en CodeDeploy. Puedes ver el estado y el historial de la implementación en ella CodeDeploy, pero no puedes crear ni administrar CodeDeploy recursos fuera de la CloudFormation plantilla.

**nota**  
En el blue/green caso de las implementaciones CloudFormation completas, no debe crear una CodeDeploy aplicación o un grupo de implementaciones.

Este método solo es compatible con las blue/green implementaciones de Amazon ECS. Para obtener más información sobre blue/green las implementaciones realizadas CloudFormation, consulte. [Cree una blue/green implementación de Amazon ECS mediante CloudFormation](deployments-create-ecs-cfn.md)

## Esperamos tener noticias suyas
<a name="welcome-contact-us"></a>

Agradecemos sus comentarios. Para ponerse en contacto con nosotros, visite [el CodeDeploy foro](https://forums.aws.amazon.com/forum.jspa?forumID=179).

**Temas**
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

# CodeDeploy componentes principales
<a name="primary-components"></a>

Antes de empezar a trabajar con el servicio, debe familiarizarse con los componentes principales del proceso de CodeDeploy implementación.

**Topics**
+ [

## Aplicación
](#primary-components-application)
+ [

## Plataforma de informática
](#primary-components-compute-platform)
+ [

## Configuración de implementación
](#primary-components-deployment-configuration)
+ [

## Grupo de implementación
](#primary-components-deployment-group)
+ [

## Tipo de implementación
](#primary-components-deployment-type)
+ [

## Perfil de instancia IAM
](#primary-components-iam-instance-profile)
+ [

## Revisión
](#primary-components-revision)
+ [

## Rol de servicio
](#primary-components-service-role)
+ [

## Revisión de destino
](#primary-components-target-revision)
+ [

## Otros componentes
](#primary-components-other-components)

## Aplicación
<a name="primary-components-application"></a>

Una *aplicación* es un nombre que identifica de forma exclusiva la aplicación que desea implementar. CodeDeploy utiliza este nombre, que funciona como contenedor, para garantizar que se haga referencia a la combinación correcta de revisión, configuración de despliegue y grupo de despliegue durante un despliegue.

## Plataforma de informática
<a name="primary-components-compute-platform"></a>

Una *plataforma informática* es una plataforma en la que se CodeDeploy despliega una aplicación. Existen tres plataformas de informática:
+ **EC2/On-Premises**: describe instancias de servidores físicos que pueden ser instancias EC2 en la nube de Amazon, servidores locales o ambos. Las aplicaciones creadas con la plataforma informática EC2 /On-Premises pueden estar compuestas por archivos ejecutables, archivos de configuración, imágenes y mucho más.

  Las implementaciones que utilizan la plataforma informática EC2 /On-Premises administran la forma en que el tráfico se dirige a las instancias mediante una implementación local o de tipo azul/verde. Para obtener más información, consulte [Descripción general de los tipos de implementación CodeDeploy](welcome.md#welcome-deployment-overview).
+ **AWS Lambda**: se usa para implementar aplicaciones que constan de una versión actualizada de una función Lambda. AWS Lambda administra la función Lambda en un entorno informático sin servidor compuesto por una estructura informática de alta disponibilidad. Toda la administración de los recursos de cómputo la realiza. AWS Lambda Para obtener más información, consulte [Aplicaciones y informática sin servidor‭](https://aws.amazon.com/serverless/). Para obtener más información acerca de AWS Lambda las funciones Lambda, consulte. [AWS Lambda](https://aws.amazon.com/lambda/)

  Puede administrar la forma en que el tráfico se desplaza a las versiones actualizadas de la función Lambda durante una implementación eligiendo una configuración canaria, lineal o all-at-once lineal. 
+ **Amazon ECS**: se utiliza para implementar una aplicación contenerizada de Amazon ECS como un conjunto de tareas. CodeDeploy realiza una blue/green implementación instalando una versión actualizada de la aplicación como un nuevo conjunto de tareas de reemplazo. CodeDeploy redirige el tráfico de producción del conjunto de tareas de la aplicación original al conjunto de tareas de reemplazo. Cuando la implementación se realiza correctamente, se termina el conjunto de tareas original. Para obtener más información acerca de Amazon ECS, consulte [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Puede administrar la forma en que el tráfico se desplaza al conjunto de tareas actualizado durante una implementación eligiendo una configuración canaria, lineal o all-at-once lineal.

**nota**  
Las blue/green implementaciones de Amazon ECS son compatibles con CodeDeploy y CloudFormation. Los detalles de estas implementaciones se describen en secciones posteriores.

## Configuración de implementación
<a name="primary-components-deployment-configuration"></a>

Una *configuración de despliegue* es un conjunto de reglas de despliegue y condiciones de éxito y fracaso que se utilizan CodeDeploy durante un despliegue. Si la implementación utiliza la plataforma informática EC2 /On-Premises, puede especificar el número mínimo de instancias en buen estado para la implementación. Si su implementación utiliza la AWS Lambda plataforma informática Amazon ECS, puede especificar cómo se enruta el tráfico a la función Lambda actualizada o al conjunto de tareas de ECS.

Para obtener más información sobre cómo especificar el número mínimo de hosts en buen estado para una implementación que utilice la plataforma informática EC2 /On-Premises, consulte. [Acerca del número mínimo de instancias en buen estado](instances-health.md#minimum-healthy-hosts)

Las siguientes configuraciones de implementación especifican cómo se dirige el tráfico durante una implementación que usa la plataforma de informática de ECS o Lambda:
+ **Valor controlado**: el tráfico se desvía en dos incrementos. Puede elegir opciones de valor controlado predefinidas que especifiquen el porcentaje de tráfico desviado al conjunto de tareas de ECS o a la función de Lambda actualizada en el primer incremento y el intervalo, en minutos, antes de que el tráfico restante se desvíe en el segundo incremento. 
+ **Lineal**: el tráfico se desvía en incrementos iguales con el mismo número de minutos entre incrementos. Puede elegir opciones lineales predefinidas que especifiquen el porcentaje de tráfico desviado en cada incremento y el número de minutos entre cada incremento.
+ **R ll-at-once**: Todo el tráfico se desplaza de la función Lambda original o del conjunto de tareas de ECS a la función o conjunto de tareas actualizado de una sola vez.

## Grupo de implementación
<a name="primary-components-deployment-group"></a>

Un *grupo de implementación* es un conjunto de instancias individuales. Un grupo de despliegues contiene instancias etiquetadas individualmente, EC2 instancias de Amazon en grupos de Amazon EC2 Auto Scaling o ambas. Para obtener información sobre las etiquetas de EC2 instancia de Amazon, consulta [Cómo trabajar con etiquetas mediante la consola](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console). Para obtener más información acerca de las instancias en las instalaciones, consulte [Trabajar con instancias locales para CodeDeploy](instances-on-premises.md). Para obtener información acerca de Amazon EC2 Auto Scaling, consulte[Integración CodeDeploy con Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md).

## Tipo de implementación
<a name="primary-components-deployment-type"></a>

Un *tipo de implementación* es un método que se utiliza para hacer que la última revisión de la aplicación esté disponible en las instancias de un grupo de implementación. Existen dos tipos de implementaciones:
+ **Implementación local**: la aplicación de cada instancia del grupo de implementación se para, se instala la última revisión de la aplicación, y se inicia y valida la nueva versión de la aplicación. Puede utilizar un equilibrador de carga de modo que se cancele el registro de cada instancia durante su implementación y, a continuación, vuelva a ponerse en servicio una vez completada la implementación. Solo las implementaciones que utilizan la plataforma informática EC2 /On-Premises pueden utilizar implementaciones locales. Para obtener más información acerca de las implementaciones locales, consulte [Información general de la implementación local](welcome.md#welcome-deployment-overview-in-place).
+ **Implementación azul/verde**: el funcionamiento de la implementación depende de la plataforma de informática que utilice:
  + **Blue/green on an EC2/On-Plataforma informática local**: las instancias de un grupo de implementaciones (el entorno original) se sustituyen por un conjunto diferente de instancias (el entorno de reemplazo) siguiendo estos pasos:
    + Las instancias se aprovisionan en el entorno de sustitución.
    + La revisión de aplicación más reciente se instala en las instancias de sustitución.
    + Existe un tiempo de espera opcional para actividades como las pruebas de aplicaciones y la verificación del sistema.
    + Las instancias del entorno de sustitución se registran en uno o más equilibradores de carga de Elastic Load Balancing, lo que provoca que el tráfico se redirija a ellos. Las instancias del entorno original se anulan del registro y se pueden cerrar o mantener en ejecución para otros usos.
**nota**  
Si utilizas una plataforma informática EC2 /On-Premises, ten en cuenta que blue/green las implementaciones solo funcionan con instancias de Amazon EC2 .
  + **Azul/verde en una plataforma informática o AWS Lambda Amazon ECS**: el tráfico se desplaza en incrementos según una configuración **canaria**, **lineal** o **all-at-once**de implementación.
  + **Implementaciones azules/verdes CloudFormation: el tráfico pasa** de los recursos actuales a los recursos actualizados como parte de una actualización de la pila. CloudFormation Actualmente, solo se admiten las blue/green implementaciones de ECS. 

  Para obtener más información sobre blue/green las implementaciones, consulte. [Descripción general de una implementación blue/green](welcome.md#welcome-deployment-overview-blue-green)

**nota**  
Las blue/green implementaciones de Amazon ECS son compatibles con CodeDeploy y CloudFormation. Los detalles de estas implementaciones se describen en secciones posteriores.

## Perfil de instancia IAM
<a name="primary-components-iam-instance-profile"></a>

Un *perfil de instancia de IAM* es un rol de IAM que adjuntas a tus instancias de Amazon EC2 . Este perfil incluye los permisos necesarios para acceder a los GitHub depósitos o repositorios de Amazon S3 en los que se almacenan las aplicaciones. Para obtener más información, consulte [Paso 4: Crear un perfil de instancia de IAM para las instancias de Amazon EC2](getting-started-create-iam-instance-profile.md).

## Revisión
<a name="primary-components-revision"></a>

Una *revisión* es una versión de su aplicación. Una revisión de despliegue de AWS Lambda es un archivo con formato YAML o JSON que especifica información sobre la función de Lambda que se va a implementar. Una revisión de implementación EC2 de /On-Premises es un archivo de almacenamiento que contiene el contenido fuente (código fuente, páginas web, archivos ejecutables y scripts de implementación) y un archivo de especificaciones de la aplicación (archivo). AppSpec AWS Las revisiones Lambda se pueden almacenar en buckets de Amazon S3. EC2/Las revisiones locales se almacenan en depósitos o repositorios de Amazon S3. GitHub En el caso de Amazon S3, una revisión se identifica de forma exclusiva mediante su clave de objeto de Amazon S3 y su ETag versión o ambas. GitHubEn efecto, una revisión se identifica de forma exclusiva por su ID de confirmación.

## Rol de servicio
<a name="primary-components-service-role"></a>

Un *rol de servicio* es un rol de IAM que otorga permisos a un AWS servicio para que pueda acceder a AWS los recursos. Las políticas que se adjuntan a la función de servicio determinan a qué AWS recursos puede acceder el servicio y las acciones que puede realizar con esos recursos. Para CodeDeploy, un rol de servicio se usa para lo siguiente:
+ Para leer las etiquetas aplicadas a las instancias o los nombres de los grupos de Amazon EC2 Auto Scaling asociados a las instancias. Esto le CodeDeploy permite identificar las instancias en las que puede implementar aplicaciones.
+ Para realizar operaciones en instancias, grupos de Amazon EC2 Auto Scaling y balanceadores de carga de Elastic Load Balancing.
+ Publicar información en los temas de Amazon SNS para que se puedan enviar notificaciones cuando se produzcan eventos de implementación o instancia específicos.
+ Para recuperar información sobre CloudWatch las alarmas a fin de configurar el monitoreo de alarmas para las implementaciones.

Para obtener más información, consulte [Paso 2: Crear un rol de servicio para CodeDeploy](getting-started-create-service-role.md).

## Revisión de destino
<a name="primary-components-target-revision"></a>

Una *revisión de destino* es la versión más reciente de la revisión de la aplicación que ha cargado en su repositorio y que desea implementar en las instancias de un grupo de implementación. Es decir, revisión de la aplicación que se va a incluir en la implementación actual. También es la revisión que se extrae para las implementaciones automáticas.

## Otros componentes
<a name="primary-components-other-components"></a>

Para obtener información sobre otros componentes del CodeDeploy flujo de trabajo, consulte los temas siguientes:
+ [Elección de un tipo de repositorio de CodeDeploy](application-revisions-repository-type.md)
+  [CodeDeploy despliegues](deployment-steps.md)
+  [CodeDeploy archivos de especificación de la aplicación (AppSpec)](application-specification-files.md)
+  [CodeDeploy estado de la instancia](instances-health.md)
+  [Trabajando con el CodeDeploy agente](codedeploy-agent.md)
+  [Trabajar con instancias locales para CodeDeploy](instances-on-premises.md)

# CodeDeploy despliegues
<a name="deployment-steps"></a>

Este tema proporciona información sobre los componentes y el flujo de trabajo de las implementaciones en CodeDeploy. El proceso de implementación varía en función de la plataforma informática o el método de implementación (Lambda, Amazon ECS, EC2/on-premise o directo AWS CloudFormation) que utilice para las implementaciones.

**Topics**
+ [

# Implementaciones en una plataforma informática AWS Lambda
](deployment-steps-lambda.md)
+ [

# Implementación en una plataforma de informática de Amazon ECS
](deployment-steps-ecs.md)
+ [

# Implementación azul/verde en una plataforma de informática de EC2/en las instalaciones
](deployment-steps-server.md)

# Implementaciones en una plataforma informática AWS Lambda
<a name="deployment-steps-lambda"></a>

En este tema se proporciona información sobre los componentes y el flujo de trabajo de CodeDeploy las implementaciones que utilizan la plataforma de AWS procesamiento Lambda. 

**Topics**
+ [

## Flujo de trabajo de implementación en una plataforma informática AWS Lambda
](#deployment-process-workflow-lambda)
+ [

## Carga de la revisión de la aplicación
](#deployment-steps-uploading-your-app-lambda)
+ [

## Creación de la aplicación y los grupos de implementación
](#deployment-steps-registering-app-deployment-groups-lambda)
+ [

## Implementación de la revisión de la aplicación
](#deployment-steps-deploy-lambda)
+ [

## Actualización de la aplicación
](#deployment-steps-updating-your-app-lambda)
+ [

## Implementaciones detenidas y que producen error
](#deployment-stop-fail-lambda)
+ [

## Reimplementaciones y restauración de implementaciones
](#deployment-rollback-lambda)

## Flujo de trabajo de implementación en una plataforma informática AWS Lambda
<a name="deployment-process-workflow-lambda"></a>

En el siguiente diagrama se muestran los principales pasos en la implementación de funciones de AWS Lambda nuevas y actualizadas.

![\[Cómo se CodeDeploy implementa una AWS Lambda función nueva o actualizada.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/deployment-process-lambda.png)


Estos pasos incluyen:

1. Cree una aplicación y asígnele un nombre que identifique las revisiones de la aplicación que desea implementar. Para implementar funciones Lambda, elija la plataforma de procesamiento AWS Lambda al crear la aplicación. CodeDeploy usa este nombre durante una implementación para asegurarse de que hace referencia a los componentes de implementación correctos, como el grupo de implementación, la configuración de la implementación y la revisión de la aplicación. Para obtener más información, consulte [Cree una aplicación con CodeDeploy](applications-create.md). 

1. Configure un grupo de implementaciones especificando el nombre del grupo.

1. Elija una configuración de despliegue para especificar cómo se transfiere el tráfico de la versión original de AWS Lambda la función a la nueva versión de la función Lambda. Para obtener más información, consulte [Vea los detalles de la configuración de la implementación con CodeDeploy](deployment-configurations-view-details.md).

1. Carga de un archivo de *especificaciones de la aplicación (AppSpec archivo*) a Amazon S3. El AppSpec archivo especifica una versión de la función Lambda y las funciones Lambda utilizadas para validar la implementación. Si no desea crear un AppSpec archivo, puede especificar una versión de la función Lambda y las funciones de validación del despliegue de Lambda directamente en la consola mediante YAML o JSON. Para obtener más información, consulte [Trabajar con revisiones de aplicaciones para CodeDeploy](application-revisions.md).

1. Implemente la revisión de la aplicación en el grupo de implementación. AWS CodeDeploy implementa la revisión de la función Lambda que especificó. El tráfico se desplaza a la revisión de la función Lambda mediante el AppSpec archivo de despliegue que eligió al crear la aplicación. Para obtener más información, consulte [Cree una implementación con CodeDeploy](deployments-create.md).

1. Compruebe los resultados de la implementación. Para obtener más información, consulte [Supervisión de los despliegues en CodeDeploy](monitoring.md).

## Carga de la revisión de la aplicación
<a name="deployment-steps-uploading-your-app-lambda"></a>

Coloque un AppSpec archivo en Amazon S3 o introdúzcalo directamente en la consola o AWS CLI. Para obtener más información, consulte [CodeDeploy archivos de especificación de la aplicación (AppSpec)](application-specification-files.md).

## Creación de la aplicación y los grupos de implementación
<a name="deployment-steps-registering-app-deployment-groups-lambda"></a>

Un grupo de CodeDeploy implementación en una plataforma de procesamiento AWS Lambda identifica una colección de uno o más AppSpec archivos. Cada AppSpec archivo puede implementar una versión de la función Lambda. Un grupo de implementaciones también define un conjunto de opciones de configuración para implementaciones futuras, como alarmas y configuraciones de restauración.

## Implementación de la revisión de la aplicación
<a name="deployment-steps-deploy-lambda"></a>

Ahora está listo para implementar la revisión de la función especificada en el AppSpec archivo en el grupo de implementación. Puede usar la CodeDeploy consola o el comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Hay parámetros que puede especificar para controlar la implementación, que incluyen la revisión, el grupo de implementaciones y la configuración de la implementación.

## Actualización de la aplicación
<a name="deployment-steps-updating-your-app-lambda"></a>

Puede realizar actualizaciones en la aplicación y, a continuación, utilizar la CodeDeploy consola o ejecutar el comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) para realizar una revisión. 

## Implementaciones detenidas y que producen error
<a name="deployment-stop-fail-lambda"></a>

Puede usar la CodeDeploy consola o el comando [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) 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, consulta la [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)referencia sobre [errores comunes](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) en la AWS CodeDeploy API.

Al igual que las implementaciones detenidas, las implementaciones con errores pueden hacer que algunos eventos del ciclo de vida de implementación ya se hayan ejecutado. Para averiguar por qué no se ha realizado una implementación, puede utilizar la consola de CodeDeploy o analizar los datos del archivo de log de esa implementación. Para obtener más información, consulte [Limpieza de revisiones de aplicación y archivos de registro](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) y [Vea los datos de registro de las implementaciones locales CodeDeploy de EC2/](deployments-view-logs.md).

## Reimplementaciones y restauración de implementaciones
<a name="deployment-rollback-lambda"></a>

CodeDeploy implementa las reversiones al volver a implementar, como una nueva implementación, una revisión previamente implementada. 

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 lista de despliegues que puede ver en la CodeDeploy consola muestra cuáles son el resultado de un despliegue automático. 

Para obtener más información, consulte [Vuelva a implementar y revertir una implementación con CodeDeploy](deployments-rollback-and-redeploy.md).

# Implementación en una plataforma de informática de Amazon ECS
<a name="deployment-steps-ecs"></a>

En este tema se proporciona información sobre los componentes y el flujo de trabajo de CodeDeploy las implementaciones que utilizan la plataforma informática Amazon ECS. 

**Topics**
+ [

## Antes de empezar una implementación de Amazon ECS
](#deployment-steps-prerequisites-ecs)
+ [

## Flujo de trabajo de implementación (alto nivel) en una plataforma de informática de Amazon ECS
](#deployment-process-workflow-ecs)
+ [

## ¿Qué sucede durante una implementación de Amazon ECS?
](#deployment-steps-what-happens)
+ [

## Carga de la revisión de la aplicación
](#deployment-steps-uploading-your-app-ecs)
+ [

## Creación de la aplicación y los grupos de implementación
](#deployment-steps-registering-app-deployment-groups-ecs)
+ [

## Implementación de la revisión de la aplicación
](#deployment-steps-deploy-ecs)
+ [

## Actualización de la aplicación
](#deployment-steps-updating-your-app-ecs)
+ [

## Implementaciones detenidas y que producen error
](#deployment-stop-fail-ecs)
+ [

## Reimplementaciones y restauración de implementaciones
](#deployment-rollback-ecs)
+ [

## blue/green Implementaciones de Amazon ECS mediante AWS CloudFormation
](#deployment-steps-ecs-cf)

## Antes de empezar una implementación de Amazon ECS
<a name="deployment-steps-prerequisites-ecs"></a>

 Antes de empezar una implementación de aplicación de Amazon ECS, debe tener listo lo siguiente. Algunos requisitos se especifican al crear el grupo de implementaciones y otros se especifican en el AppSpec archivo.


****  

| Requisito | Donde se especifica | 
| --- | --- | 
| Clúster de Amazon ECS | Grupo de implementación | 
| Servicio de Amazon ECS | 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 tarea de Amazon ECS | AppSpec archivo | 
| Nombre de contenedor | AppSpec archivo | 
| Puerto del contenedor | AppSpec archivo | 

**Clúster de Amazon ECS**  
Un *clúster* de Amazon ECS es una agrupación lógica de tareas o servicios. Al crear el grupo de implementación de la CodeDeploy aplicación, debe especificar el clúster de Amazon ECS que contiene su servicio de Amazon ECS. Para obtener más información, consulte [Clústeres de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_clusters.html) en la *Guía del usuario de Amazon Elastic Container Service*.

**Servicio de Amazon ECS**  
Un *servicio* de Amazon ECS le ayuda a mantener y ejecutar un número determinado de instancias de una definición de tareas en un clúster de Amazon ECS. Su servicio Amazon ECS debe estar habilitado para CodeDeploy. De forma predeterminada, hay un servicio de Amazon ECS habilitado para implementaciones de Amazon ECS. Al crear su grupo de implementación, puede elegir implementar un servicio de Amazon ECS que se encuentra en su clúster de Amazon ECS. Para obtener más información, consulte [Servicios de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) 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 servicio de Amazon ECS que desee actualizar con una implementación de Amazon ECS. 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 carga 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](deployment-groups-create-load-balancer-for-ecs.md) y [Creación de un equilibrador de carga](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-load-balancer.html) 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 utiliza la consola de Amazon ECS para crear su servicio de Amazon ECS, los oyentes se crean automáticamente. Para obtener más información, consulte [Oyentes para equilibradores de carga de aplicación](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listener.html) en la *Guía del usuario de Elastic Load Balancing* y [Creación de un servicio](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service.html) en la *Guía del usuario de Amazon Elastic Container Service*.

**Dos grupos de destino de Amazon ECS**  
 Un *grupo de destino* se utiliza para dirigir el tráfico a un destino registrado. Una implementación de Amazon ECS requiere dos grupos de destino: uno para el conjunto de tareas original de la aplicación de Amazon ECS y otro para su conjunto de tareas de sustitución. Durante la implementación, CodeDeploy crea un conjunto de tareas de reemplazo y redirige el tráfico del conjunto de tareas original al nuevo. Especifique los grupos de destino al crear el grupo de implementaciones de la aplicación de CodeDeploy .   
 Durante una implementación, CodeDeploy determina qué grupo objetivo está asociado al conjunto de tareas de su servicio Amazon ECS 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](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html) en la *Guía del usuario de Elastic Load Balancing*. 

**Una definición de tarea de Amazon ECS**  
 Se requiere una *definición de tarea* para ejecutar el contenedor de Docker que contiene su aplicación de Amazon ECS. El ARN de la definición de la tarea se especifica en el archivo de CodeDeploy AppSpec la aplicación. Para obtener más información, consulte [Definiciones de tareas de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) en la *Guía del usuario de Amazon Elastic Container Service* y [AppSpec sección de «recursos» para las implementaciones de Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Un contenedor de la aplicación de Amazon ECS**  
 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 equilibrador de carga dirige el tráfico hacia un contenedor en el conjunto de tareas de la aplicación de Amazon ECS. El nombre del contenedor se especifica en el AppSpec archivo de CodeDeploy la aplicación. El contenedor especificado en el AppSpec archivo debe ser uno de los contenedores especificados en la definición de tareas de Amazon ECS. Para obtener más información, consulte [¿Qué es Amazon Elastic Container Service?](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) en la *Guía del usuario de Amazon Elastic Container Service* y [AppSpec sección de «recursos» para las implementaciones de Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Un puerto para su conjunto de tareas de sustitución**  
 Durante la implementación de Amazon ECS, 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 implementaciones de Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

## Flujo de trabajo de implementación (alto nivel) en una plataforma de informática de Amazon ECS
<a name="deployment-process-workflow-ecs"></a>

En el diagrama siguiente se muestran los principales pasos en la implementación de servicios de Amazon ECS actualizados.

![\[Cómo se CodeDeploy implementa una aplicación como un conjunto de tareas en Amazon ECS.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/deployment-process-ecs.png)


Estos pasos incluyen:

1. Cree una AWS CodeDeploy aplicación especificando un nombre que represente de forma exclusiva lo que desea implementar. Para implementar una aplicación Amazon ECS, en su AWS CodeDeploy aplicación, elija la plataforma informática Amazon ECS. CodeDeploy utiliza una aplicación durante una implementación para hacer referencia a los componentes de la implementación correctos, como el grupo de implementación, los grupos objetivo, los oyentes, 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](applications-create.md). 

1. Configure un grupo de implementaciones especificando:
   +  El nombre del grupo de implementaciones. 
   +  El nombre de servicio y clúster de Amazon ECS. El controlador de despliegue del servicio Amazon ECS 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. 
   +  La configuración de implementación como, por ejemplo, cuándo redirigir el tráfico de producción al conjunto de tareas de Amazon ECS de sustitución en el servicio de Amazon ECS y cuándo terminar el conjunto de tareas de Amazon ECS original en el servicio de Amazon ECS. 
   +  Las configuraciones opcionales, como los desencadenadores, alarmas y comportamiento de restauración. 

1. Especifique un archivo de *especificaciones de la aplicación (AppSpec archivo*). Puede cargarlo en Amazon S3, introducirlo en la consola en formato YAML o JSON, o especificarlo con el AWS CLI o el SDK. El AppSpec archivo especifica una definición de tarea de Amazon ECS 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 enganches del ciclo de vida de la implementación. El nombre del contenedor debe ser un contenedor de su definición de tareas de Amazon ECS. Para obtener más información, consulte [Trabajar con revisiones de aplicaciones para CodeDeploy](application-revisions.md).

1. 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 su servicio Amazon ECS 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](deployments-create.md).

1. Compruebe los resultados de la implementación. Para obtener más información, consulte [Supervisión de los despliegues en CodeDeploy](monitoring.md).

## ¿Qué sucede durante una implementación de Amazon ECS?
<a name="deployment-steps-what-happens"></a>

Antes de iniciar una implementación de Amazon ECS con un agente de escucha de prueba, debe configurar sus componentes. Para obtener más información, consulte [Antes de empezar una implementación de Amazon ECS](#deployment-steps-prerequisites-ecs).

 En el siguiente diagrama se muestra la relación entre estos componentes cuando una implementación de Amazon ECS está lista para comenzar. 

![\[La relación entre el equilibrador de carga, los oyentes, los grupos de destino y el conjunto de tareas cuando una implementación de Amazon ECS está lista para comenzar.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-1.png)


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 implementación de Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs).


| 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.

1. <a name="ecs-before-install"></a>

****

   Ejecute cualquier función Lambda especificada en el `BeforeInstall` enlace del AppSpec archivo.

1. <a name="ecs-install"></a>

****

   Durante el evento de ciclo de vida `Install`:

   1.  Se crea un conjunto de tareas de sustitución en el servicio de Amazon ECS. 

   1.  La aplicación en contenedor actualizada se instala en el conjunto de tareas de sustitución. 

   1.  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.   
![\[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. El segundo grupo de destino se asocia ahora al conjunto de tareas de sustitución.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-2.png)

1. <a name="ecs-after-install"></a>

****

   Ejecute cualquier función Lambda especificada en el `AfterInstall` enlace del AppSpec archivo.

1. <a name="ecs-allow-test-traffic"></a>

****

   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.  
![\[El oyente de prueba dirige el tráfico a la aplicación en contenedor actualizada.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-3.png)

1. <a name="ecs-after-allow-test-traffic"></a>

****

   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](monitoring-create-alarms.md), [Restauraciones automáticas](deployments-rollback-and-redeploy.md#deployments-rollback-and-redeploy-automatic-rollbacks) y [Configuración de las opciones avanzadas de un grupo de implementación](deployment-groups-configure-advanced-options.md). 

1. <a name="ecs-before-allow-traffic"></a>

****

   Ejecute cualquier función Lambda especificada en el `BeforeAllowTraffic` enlace del AppSpec archivo.

1. <a name="ecs-allow-traffic"></a>

****

   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.   
![\[El conjunto de tareas de sustitución recibe el tráfico de producción.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-4.png)

1. <a name="ecs-after-allow-traffic"></a>

****

   Ejecute cualquier función Lambda especificada en el `AfterAllowTraffic` enlace del AppSpec archivo.

1. 

****

   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.   
![\[Todos los eventos sucesivos.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-6.png)

## Carga de la revisión de la aplicación
<a name="deployment-steps-uploading-your-app-ecs"></a>

Coloque un AppSpec archivo en Amazon S3 o introdúzcalo directamente en la consola o AWS CLI. Para obtener más información, consulte [CodeDeploy archivos de especificación de la aplicación (AppSpec)](application-specification-files.md).

## Creación de la aplicación y los grupos de implementación
<a name="deployment-steps-registering-app-deployment-groups-ecs"></a>

Un grupo de CodeDeploy implementación en una plataforma informática de Amazon ECS identifica a los oyentes que sirven el tráfico a la aplicación Amazon ECS actualizada y a los dos grupos de destino utilizados 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
<a name="deployment-steps-deploy-ecs"></a>

Ahora está listo para implementar el servicio de Amazon ECS actualizado especificado en su grupo de implementación. Puede usar la CodeDeploy consola o el comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). 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
<a name="deployment-steps-updating-your-app-ecs"></a>

Puede realizar actualizaciones en la aplicación y, a continuación, utilizar la CodeDeploy consola o ejecutar el comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) para realizar una revisión. 

## Implementaciones detenidas y que producen error
<a name="deployment-stop-fail-ecs"></a>

Puede usar la CodeDeploy consola o el comando [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) 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, consulta la [información sobre errores](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html) y la referencia sobre [errores comunes](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) en la AWS CodeDeploy API.

## Reimplementaciones y restauración de implementaciones
<a name="deployment-rollback-ecs"></a>

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 consola de CodeDeploy 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](deployments-rollback-and-redeploy.md).

## blue/green Implementaciones de Amazon ECS mediante AWS CloudFormation
<a name="deployment-steps-ecs-cf"></a>

Puede utilizarlo AWS CloudFormation para gestionar las blue/green implementaciones de Amazon ECS a través CodeDeploy de. Para obtener más información, consulte [Cree una blue/green implementación de Amazon ECS mediante CloudFormation](deployments-create-ecs-cfn.md).

**nota**  
La administración de blue/green las implementaciones de Amazon ECS con no CloudFormation está disponible en la región de Asia Pacífico (Osaka).

# Implementación azul/verde en una plataforma de informática de EC2/en las instalaciones
<a name="deployment-steps-server"></a>

En este tema se proporciona información sobre los componentes y el flujo de trabajo de las CodeDeploy implementaciones que utilizan la plataforma informática local de EC2. Para obtener información sobre las implementaciones, consulte blue/green . [Descripción general de una implementación blue/green](welcome.md#welcome-deployment-overview-blue-green)

**Topics**
+ [

## Componentes de una implementación en una plataforma de informática EC2/en las instalaciones
](#deployment-steps-components-server)
+ [

## Flujo de trabajo de implementación en una plataforma de informática de EC2/en las instalaciones
](#deployment-steps-workflow)
+ [

## Configuración de instancias
](#deployment-steps-setting-up-instances)
+ [

## Carga de la revisión de la aplicación
](#deployment-steps-uploading-your-app)
+ [

## Creación de la aplicación y los grupos de implementación
](#deployment-steps-registering-app-deployment-groups)
+ [

## Implementación de la revisión de la aplicación
](#deployment-steps-deploy)
+ [

## Actualización de la aplicación
](#deployment-steps-updating-your-app)
+ [

## Implementaciones detenidas y que producen error
](#deployment-stop-fail)
+ [

## Reimplementaciones y restauración de implementaciones
](#deployment-rollback)

## Componentes de una implementación en una plataforma de informática EC2/en las instalaciones
<a name="deployment-steps-components-server"></a>

En el siguiente diagrama se muestran los componentes de una CodeDeploy implementación en una plataforma informática local de EC2. 

![\[Los componentes de una CodeDeploy implementación en una plataforma informática local de EC2.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/deployment-components-workflow.png)


## Flujo de trabajo de implementación en una plataforma de informática de EC2/en las instalaciones
<a name="deployment-steps-workflow"></a>

En el diagrama siguiente se muestran los principales pasos en la implementación de revisiones de aplicaciones:

![\[Los principales pasos en la implementación de revisiones de aplicaciones.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/deployment-process.png)


Estos pasos incluyen:

1. Cree una aplicación y asígnele un nombre que identifique de forma exclusiva las revisiones de la aplicación que desea implementar y la plataforma informática de la aplicación. CodeDeploy usa este nombre durante una implementación para asegurarse de que hace referencia a los componentes de implementación correctos, como el grupo de implementación, la configuración de la implementación y la revisión de la aplicación. Para obtener más información, consulte [Cree una aplicación con CodeDeploy](applications-create.md).

1. Configure un grupo de implementaciones especificando un tipo de implementación y las instancias en las que desea implementar las revisiones de la aplicación. Una implementación in situ actualiza instancias con la última revisión de la aplicación. Una blue/green implementación registra un conjunto de instancias de reemplazo para el grupo de implementaciones con un balanceador de cargas y anula el registro de las instancias originales. 

   Puede especificar las etiquetas aplicadas a las instancias, los nombres de grupos de Amazon EC2 Auto Scaling o ambas cosas.

   Si especificas un grupo de etiquetas en un grupo de despliegues, se CodeDeploy despliega en instancias que tengan aplicada al menos una de las etiquetas especificadas. Si especificas dos o más grupos de etiquetas, se CodeDeploy despliega solo en las instancias que cumplen los criterios de cada uno de los grupos de etiquetas. Para obtener más información, consulte [Etiquetado de instancias para grupos de despliegue en CodeDeploy](instances-tagging.md).

   En todos los casos, las instancias deben configurarse para usarse en una implementación (es decir, deben estar etiquetadas o pertenecer a un grupo de Amazon EC2 Auto Scaling) y tener CodeDeploy el agente instalado y en ejecución. 

   Le proporcionamos una CloudFormation plantilla que puede utilizar para configurar rápidamente una instancia de Amazon EC2 basada en Amazon Linux o Windows Server. También le proporcionamos el CodeDeploy agente independiente para que pueda instalarlo en instancias de Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux (RHEL) o Windows Server. Para obtener más información, consulte [Cree un grupo de despliegue con CodeDeploy](deployment-groups-create.md).

   También puede especificar las siguientes opciones: 
   + **Notificaciones de Amazon SNS**. Cree activadores que envíen notificaciones a los suscriptores de un tema de Amazon SNS cuando ocurran eventos específicos, como eventos de éxito o error, en las implementaciones e instancias. Para obtener más información, consulte [Monitorización de implementaciones con notificaciones de eventos de Amazon SNS](monitoring-sns-event-notifications.md).
   + **Administración de implementaciones basadas en alarmas**. Implemente el monitoreo de CloudWatch alarmas de Amazon para detener las implementaciones cuando sus métricas superen o caigan por debajo de los umbrales establecidos. CloudWatch
   + **Restauraciones de implementaciones automáticas**. Configure una implementación para que se restaure automáticamente a la última revisión correcta conocida si se produce un error en una implementación o si se supera el umbral de la alarma.

1. Especifique una configuración de implementación para indicar en cuántas instancias se deben implementar simultáneamente las revisiones de la aplicación y describir las condiciones de éxito y fracaso de la implementación. Para obtener más información, consulte [Vea los detalles de la configuración de la implementación con CodeDeploy](deployment-configurations-view-details.md).

1. Cargue una revisión de la aplicación en Amazon S3 o GitHub. Además de los archivos que desee implementar y de los scripts que desee ejecutar durante la implementación, debe incluir un archivo de *especificaciones de la aplicación (AppSpec archivo*). Este archivo contiene las instrucciones de implementación, como, por ejemplo, dónde se deben copiar los archivos en cada instancia y cuándo se deben ejecutar los scripts de implementación. Para obtener más información, consulte [Trabajar con revisiones de aplicaciones para CodeDeploy](application-revisions.md).

1. Implemente la revisión de la aplicación en el grupo de implementaciones. El CodeDeploy agente de cada instancia del grupo de implementación copia la revisión de la aplicación de Amazon S3 o GitHub a la instancia. A continuación, el CodeDeploy agente separa la revisión y, utilizando el AppSpec archivo, copia los archivos en las ubicaciones especificadas y ejecuta los scripts de implementación. Para obtener más información, consulte [Cree una implementación con CodeDeploy](deployments-create.md).

1. Compruebe los resultados de la implementación. Para obtener más información, consulte [Supervisión de los despliegues en CodeDeploy](monitoring.md).

1. Vuelva a implementar una revisión. Se recomienda hacer esto si se necesita corregir un error en el contenido de origen o ejecutar los scripts de la implementación en un orden diferente o solucionar una implementación que dio error. Para ello, reagrupe el contenido fuente revisado, los scripts de despliegue y el AppSpec archivo en una nueva revisión y, a continuación, cargue la revisión en el GitHub depósito o repositorio de Amazon S3. Luego ejecute una nueva implementación en el mismo grupo de implementaciones con la nueva revisión. Para obtener más información, consulte [Cree una implementación con CodeDeploy](deployments-create.md).

## Configuración de instancias
<a name="deployment-steps-setting-up-instances"></a>

 Debe configurar instancias antes de implementar revisiones en la aplicación por primera vez. Si la revisión de una aplicación requiere tres servidores de producción y dos servidores de copia de seguridad, lanzará o utilizará cinco instancias. 

Para aprovisionar instancias manualmente:

1. Instale el CodeDeploy agente en las instancias. El CodeDeploy agente se puede instalar en instancias de Amazon Linux, Ubuntu Server, RHEL y Windows Server.

1. Habilite el etiquetado si utiliza etiquetas para identificar las instancias de un grupo de implementaciones. CodeDeploy se basa en etiquetas para identificar y agrupar las instancias en grupos CodeDeploy de implementación. Si bien los tutoriales de Introducción utilizaron ambos, puede usar una clave o un valor para definir una etiqueta para un grupo de implementaciones.

1. Inicie instancias de Amazon EC2 con un perfil de instancia de IAM adjunto. El perfil de la instancia de IAM debe adjuntarse a una instancia de Amazon EC2 a medida que se lanza para que CodeDeploy el agente verifique la identidad de la instancia.

1. Cree un rol de servicio. Proporcione acceso al servicio para CodeDeploy poder ampliar las etiquetas de su AWS cuenta.

Para una implementación inicial, la CloudFormation plantilla hace todo esto por ti. Crea y configura nuevas instancias únicas de Amazon EC2 basadas en Amazon Linux o Windows Server con CodeDeploy el agente ya instalado. Para obtener más información, consulte [Trabajar con instancias para CodeDeploy](instances.md). 

**nota**  
Para una blue/green implementación, puede elegir entre usar las instancias que ya tiene para el entorno de reemplazo o dejar que se le CodeDeploy aprovisionen nuevas instancias como parte del proceso de implementación. 

## Carga de la revisión de la aplicación
<a name="deployment-steps-uploading-your-app"></a>

Coloque un AppSpec archivo en la carpeta raíz de la estructura de carpetas de contenido fuente de la aplicación. Para obtener más información, consulte [CodeDeploy archivos de especificación de la aplicación (AppSpec)](application-specification-files.md).

Empaquete la estructura de carpetas del contenido de origen de la aplicación en un formato de archivo de almacenamiento como zip, tar o tar comprimido. Suba el archivo de almacenamiento (la *revisión*) a un depósito o GitHub repositorio de Amazon S3.

**nota**  
Los formatos de archivo tar y tar comprimido (.tar y .tar.gz) no son compatibles con las instancias de Windows Server.

## Creación de la aplicación y los grupos de implementación
<a name="deployment-steps-registering-app-deployment-groups"></a>

Un grupo de CodeDeploy implementación identifica un conjunto de instancias en función de sus etiquetas, los nombres de los grupos de Amazon EC2 Auto Scaling o ambos. Se pueden implementar varias revisiones de la aplicación en la misma instancia. Una revisión de la aplicación se puede implementar en múltiples instancias. 

Por ejemplo, podría agregar una etiqueta "Prod" a los tres servidores de producción y "Backup" a los dos servidores de backup. Estas dos etiquetas se pueden usar para crear dos grupos de implementación diferentes en la CodeDeploy aplicación, lo que le permite elegir qué conjunto de servidores (o ambos) debe participar en una implementación.

Puede utilizar varios grupos de etiquetas en un grupo de implementaciones para restringir las implementaciones con un conjunto más pequeño de instancias. Para obtener información, consulte [Etiquetado de instancias para grupos de despliegue en CodeDeploy](instances-tagging.md).

## Implementación de la revisión de la aplicación
<a name="deployment-steps-deploy"></a>

Ahora está listo para implementar la revisión de la aplicación desde Amazon S3 o GitHub en el grupo de implementación. Puede usar la CodeDeploy consola o el comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Hay parámetros que puede especificar para controlar la implementación, que incluyen la revisión, el grupo de implementaciones y la configuración de la implementación.

## Actualización de la aplicación
<a name="deployment-steps-updating-your-app"></a>

Puede realizar actualizaciones en la aplicación y, a continuación, utilizar la CodeDeploy consola o ejecutar el comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) para realizar una revisión. 

## Implementaciones detenidas y que producen error
<a name="deployment-stop-fail"></a>

Puede usar la CodeDeploy consola o el comando [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) 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. Es posible que algunos archivos se hayan copiado y que algunos scripts ya se hayan ejecutado en una o varias de las instancias del grupo de implementaciones.
+ 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. Es posible que algunos archivos se hayan copiado y que algunos scripts ya se hayan ejecutado en una o varias de las instancias del 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, consulta la [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)referencia sobre [errores comunes](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) en la AWS CodeDeploy API.

Al igual que las implementaciones detenidas, las que dan error pueden dar lugar a que algunos eventos del ciclo de vida de implementación ya se hayan ejecutado en una o varias de las instancias del grupo de implementaciones. Para averiguar por qué ha fallado una implementación, puede usar la CodeDeploy consola, [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html)ejecutar el comando o analizar los datos del archivo de registro de la implementación fallida. Para obtener más información, consulte [Limpieza de revisiones de aplicación y archivos de registro](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) y [Vea los datos de registro de las implementaciones locales CodeDeploy de EC2/](deployments-view-logs.md).

## Reimplementaciones y restauración de implementaciones
<a name="deployment-rollback"></a>

CodeDeploy implementa las reversiones al volver a implementar, como una nueva implementación, una revisión previamente implementada. 

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 lista de despliegues que puede ver en la CodeDeploy consola muestra cuáles son el resultado de un despliegue automático. 

Para obtener más información, consulte [Vuelva a implementar y revertir una implementación con CodeDeploy](deployments-rollback-and-redeploy.md).

# CodeDeploy archivos de especificación de la aplicación (AppSpec)
<a name="application-specification-files"></a>

[Un archivo de especificaciones de la aplicación (AppSpec archivo), que es exclusivo de CodeDeploy, es un archivo con formato [YAML](http://www.yaml.org) o con formato JSON.](http://www.json.org) El AppSpec archivo se usa para administrar cada implementación como una serie de enlaces de eventos del ciclo de vida, que se definen en el archivo.

Para obtener información sobre cómo crear un AppSpec archivo bien formado, consulte[CodeDeploy AppSpec referencia de archivo](reference-appspec-file.md).

**Topics**
+ [

## AppSpec archivos en una plataforma informática Amazon ECS
](#appspec-files-on-ecs-compute-platform)
+ [

## AppSpec archivos en una plataforma de AWS Lambda cómputo
](#appspec-files-on-lambda-compute-platform)
+ [

## AppSpec archivos en una plataforma informática local EC2/
](#appspec-files-on-server-compute-platform)
+ [

## Cómo usa el CodeDeploy agente el AppSpec archivo
](#application-specification-files-agent-usage)

## AppSpec archivos en una plataforma informática Amazon ECS
<a name="appspec-files-on-ecs-compute-platform"></a>

Si su aplicación utiliza la plataforma informática Amazon ECS, el AppSpec archivo se puede formatear con YAML o JSON. También se puede escribir directamente en un editor en la consola. El AppSpec archivo se utiliza para especificar:
+ El nombre del servicio de Amazon ECS y el nombre del contenedor y el puerto utilizado para dirigir el tráfico hacia el nuevo conjunto de tareas.
+ Las funciones que se van a usar como pruebas de validación.

Puede ejecutar funciones Lambda de validación después de los eventos del ciclo de vida de implementación. Para obtener más información, consulte [AppSpec sección «ganchos» para una implementación de Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), [AppSpec estructura de archivos para las implementaciones de Amazon ECS](reference-appspec-file-structure.md#ecs-appspec-structure) y [AppSpec Ejemplo de archivo para una implementación de Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs).

## AppSpec archivos en una plataforma de AWS Lambda cómputo
<a name="appspec-files-on-lambda-compute-platform"></a>

Si la aplicación utiliza la plataforma de procesamiento AWS Lambda, el AppSpec archivo se puede formatear con YAML o JSON. También se puede escribir directamente en un editor en la consola. El AppSpec archivo se utiliza para especificar:
+ La versión de la AWS Lambda función que se va a implementar.
+ Las funciones que se van a usar como pruebas de validación.

Puede ejecutar funciones Lambda de validación después de los eventos del ciclo de vida de implementación. Para obtener más información, consulte [AppSpec sección de «ganchos» para una implementación de AWS Lambda](reference-appspec-file-structure-hooks.md#appspec-hooks-lambda).

## AppSpec archivos en una plataforma informática local EC2/
<a name="appspec-files-on-server-compute-platform"></a>

Si su aplicación utiliza la plataforma informática local EC2, el archivo siempre tiene formato YAML. AppSpec El archivo se utiliza para: AppSpec 
+ Asignar los archivos de origen de la revisión de la aplicación a sus destinos en la instancia.
+ Especificar permisos personalizados para los archivos implementados.
+ Especificar los scripts que se van a ejecutar en cada instancia en las distintas fases del proceso de implementación.

Puede ejecutar scripts en una instancia después de muchos de los eventos individuales del ciclo de vida de la implementación. CodeDeploy ejecuta solo los scripts especificados en el archivo, pero esos scripts pueden llamar a otros scripts de la instancia. Puede ejecutar cualquier tipo de script, siempre y cuando sea compatible con el sistema operativo que se ejecuta en las instancias. Para obtener más información, consulte [AppSpec Sección de «enganches» para una implementación local de EC2/](reference-appspec-file-structure-hooks.md#appspec-hooks-server). 

## Cómo usa el CodeDeploy agente el AppSpec archivo
<a name="application-specification-files-agent-usage"></a>

Durante el despliegue, el CodeDeploy agente busca el nombre del evento actual en la **sección** de enlaces del AppSpec archivo. Si el evento no se encuentra, el agente de CodeDeploy va al siguiente paso. Si se encuentra el evento, el CodeDeploy agente recupera la lista de scripts que se van a ejecutar. Los scripts se ejecutan de forma secuencial, en el orden en que aparecen en el archivo. El estado de cada script se registra en el archivo de registro del CodeDeploy agente de la instancia. 

Si un script se ejecuta correctamente, devuelve un código de salida de 0 (cero).

**nota**  
 El CodeDeploy agente no se utiliza en una implementación de AWS Lambda o Amazon ECS. 

Durante el evento de **instalación**, el CodeDeploy agente utiliza las asignaciones definidas en la sección de **archivos** del AppSpec archivo para determinar qué carpetas o archivos copiar de la revisión a la instancia.

Si el CodeDeploy agente instalado en el sistema operativo no coincide con lo que aparece en el AppSpec archivo, se produce un error en la implementación.

Para obtener información sobre los archivos de registro del CodeDeploy agente, consulte[Trabajando con el CodeDeploy agente](codedeploy-agent.md).