

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

# Tutorial: Implementación de una aplicación en Amazon ECS
<a name="tutorial-ecs-deployment"></a>

 En este tutorial, aprenderá a implementar una aplicación en Amazon ECS mediante CodeDeploy. Comience con una aplicación que ya creó e implementó en Amazon ECS. El primer paso consiste en actualizar la aplicación modificando su archivo de definición de tareas con una nueva etiqueta. A continuación, debe CodeDeploy implementar la actualización. Durante la implementación, CodeDeploy instala la actualización en un nuevo conjunto de tareas de reemplazo. A continuación, desvía el tráfico de producción de la versión original del servicio de Amazon ECS, que se encuentra en su conjunto de tareas original, a la versión actualizada en el conjunto de tareas de sustitución.

 Durante una implementación de Amazon ECS, CodeDeploy utiliza un balanceador de carga que está configurado con dos grupos de destino y un detector de tráfico de producción. En el siguiente diagrama se muestra cómo están relacionados el equilibrador de carga, el oyente de producción, los grupos de destino y la aplicación de Amazon ECS antes de que comience la implementación. En este tutorial, se utiliza un equilibrador de carga de aplicación. También puede usar un equilibrador de carga de red. 

![\[El Equilibrador de carga de aplicación o el Equilibrador de carga de red, un oyente de producción, dos grupos de destino, un conjunto de tareas y un servicio de Amazon ECS.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-1.png)


 Después de una implementación correcta, el oyente de tráfico de producción ofrece el tráfico al nuevo conjunto de tareas de sustitución y se termina el conjunto de tareas original. En el siguiente diagrama se muestra cómo están relacionados los recursos después de una implementación correcta. Para obtener más información, consulte [¿Qué sucede durante una implementación de Amazon ECS?](deployment-steps-ecs.md#deployment-steps-what-happens). 

![\[El Equilibrador de carga de aplicación o el Equilibrador de carga de red, un oyente de producción, dos grupos de destino y un conjunto de tareas de sustitución.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-5.png)


Para obtener información sobre cómo utilizarla AWS CLI para implementar una aplicación en Amazon ECS, consulte el [Tutorial: Creación de un servicio mediante una blue/green implementación](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html). Para obtener información sobre cómo detectar e implementar automáticamente los cambios en un servicio de Amazon ECS CodeDeploy, consulte el [tutorial: Crear una canalización con una fuente e ECS-to-CodeDeploy implementación de Amazon ECR](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html). CodePipeline 

Tras completar este tutorial, puede utilizar el grupo de CodeDeploy aplicaciones y despliegues que creó para añadir una prueba de validación de despliegues. [Tutorial: Implementación de un servicio de Amazon ECS con una prueba de validación](tutorial-ecs-deployment-with-hooks.md) 

**Topics**
+ [Requisitos previos](tutorial-ecs-prereqs.md)
+ [Paso 2: Actualizar la aplicación de Amazon ECS](tutorial-ecs-update-the-ecs-application.md)
+ [Paso 2: Crea el AppSpec archivo](tutorial-ecs-create-appspec-file.md)
+ [Paso 3: Utilice la CodeDeploy consola para implementar la aplicación](tutorial-ecs-deployment-deploy.md)
+ [Paso 4: Limpiar](tutorial-ecs-clean-up.md)

# Requisitos previos
<a name="tutorial-ecs-prereqs"></a>

Para completar este tutorial, primero debe:
+  Completar los pasos 2 y 3 de [Empezar con CodeDeploy](getting-started-codedeploy.md). 
+  Crear un equilibrador de carga de aplicación configurado con dos grupos de destino y un oyente. Para obtener información sobre la creación un balanceador de carga mediante la consola, 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). Para obtener información sobre cómo crear un balanceador de carga mediante el AWS CLI, consulte el [paso 1: Crear un balanceador de carga de aplicaciones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html#create-blue-green-loadbalancer) en la Guía del usuario de *Amazon Elastic Container Service*. Cuando cree el equilibrador de carga, anote lo siguiente para este tutorial: 
  +  Nombre del balanceador de carga. 
  +  Los nombres de los grupos de destino. 
  +  El puerto utilizado por el agente de escucha del balanceador de carga. 
+  Cree un clúster y servicio de Amazon ECS. Para obtener más información, consulte los pasos 2, 3 y 4 del [tutorial: Creación de un servicio mediante una blue/green implementación](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html) en la *Guía del usuario de Amazon Elastic Container Service*. Anote lo siguiente para este tutorial: 
  +  El nombre de su clúster de Amazon ECS. 
  +  El ARN de la definición de tarea utilizada por el servicio de Amazon ECS. 
  +  El nombre del contenedor utilizado por el servicio de Amazon ECS. 
+  Cree un bucket de Amazon S3 para su AppSpec archivo. 

# Paso 2: Actualizar la aplicación de Amazon ECS
<a name="tutorial-ecs-update-the-ecs-application"></a>

 En esta sección, actualizará la aplicación de Amazon ECS con una nueva revisión de su definición de tarea. La revisión actualizada añade un nuevo par de claves y etiquetas. En [Paso 3: Utilice la CodeDeploy consola para implementar la aplicación](tutorial-ecs-deployment-deploy.md), implemente la versión actualizada de la aplicación de Amazon ECS. 

**Para actualizar la definición de tarea, realice el siguiente procedimiento:**

1. Abra la consola en la [https://console.aws.amazon.com/ecs/versión 2](https://console.aws.amazon.com/ecs/v2).

1.  En el panel de navegación, elija **Task Definitions**. 

1. Elija la definición de tarea utilizada por el servicio de Amazon ECS.

1. Seleccione la revisión de la definición de tarea y, a continuación, elija **Crear nueva revisión** y **Crear nueva revisión**.

1.  En este tutorial, realice una pequeña actualización de la definición de la tarea añadiendo una etiqueta. En la parte inferior de la página, en **Etiquetas**, cree una nueva etiqueta escribiendo un nuevo par de clave y valor. 

1.  Seleccione **Crear**. 

   Debería ver que el número de revisión de la definición de la tarea se ha incrementado en uno. 

1.  Seleccione la pestaña **JSON**. Anote lo siguiente, ya que necesitará esa información en el siguiente paso. 
   +  El valor de `taskDefinitionArn`. Su formato es el siguiente: `arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision`. Este es el ARN de la definición de tarea actualizada. 
   +  En el elemento `containerDefinitions`, el valor de `name`. Este es el nombre del contenedor. 
   +  En el elemento `portMappings`, el valor de `containerPort`. Este es el puerto del contenedor. 

# Paso 2: Crea el AppSpec archivo
<a name="tutorial-ecs-create-appspec-file"></a>

 En esta sección, crea el AppSpec archivo y lo carga en el bucket de Amazon S3 que creó en la [Requisitos previos](tutorial-ecs-prereqs.md) sección. El AppSpec archivo de una implementación de Amazon ECS especifica la definición de la tarea, el nombre del contenedor y el puerto del contenedor. Para obtener más información, consulte [AppSpec Ejemplo de archivo para una implementación de Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs) y [AppSpec sección de «recursos» para las implementaciones de Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Para crear su AppSpec archivo**

1.  Si quieres crear tu AppSpec archivo con YAML, crea un archivo con el nombre`appspec.yml`. Si quieres crear tu AppSpec archivo con JSON, crea un archivo con el nombre`appspec.json`. 

1.  Elige la pestaña adecuada, dependiendo de si usas YAML o JSON para tu AppSpec archivo, y copia su contenido en el AppSpec archivo que acabas de crear. Para la propiedad `TaskDefinition`, utilice el ARN de definición de tarea que anotó en la sección [Paso 2: Actualizar la aplicación de Amazon ECS](tutorial-ecs-update-the-ecs-application.md). 

------
#### [ JSON AppSpec ]

   ```
   {
     "version": 0.0,
     "Resources": [
       {
         "TargetService": {
           "Type": "AWS::ECS::Service",
           "Properties": {
             "TaskDefinition": "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number",
             "LoadBalancerInfo": {
               "ContainerName": "your-container-name",
               "ContainerPort": your-container-port
             }
           }
         }
       }
     ]
   }
   ```

------
#### [ YAML AppSpec ]

   ```
   version: 0.0
   Resources:
     - TargetService:
         Type: AWS::ECS::Service
         Properties:
           TaskDefinition: "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number"
           LoadBalancerInfo:
             ContainerName: "your-container-name"
             ContainerPort: your-container-port
   ```

------
**nota**  
 El conjunto de tareas de sustitución hereda la subred, el grupo de seguridad, la versión de la plataforma y los valores de IP públicas asignados del conjunto de tareas original. Puedes anular estos valores para tu conjunto de tareas de reemplazo configurando sus propiedades opcionales en el archivo. AppSpec 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) y [AppSpec Ejemplo de archivo para una implementación de Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs). 

1.  Cargue el AppSpec archivo en el depósito de S3 que creó como requisito previo para este tutorial. 

# Paso 3: Utilice la CodeDeploy consola para implementar la aplicación
<a name="tutorial-ecs-deployment-deploy"></a>

 En esta sección, creará un grupo de CodeDeploy aplicaciones y despliegues para implementar la aplicación actualizada en Amazon ECS. Durante la implementación, CodeDeploy traslada el tráfico de producción de la aplicación a su nueva versión en un nuevo conjunto de tareas de reemplazo. Para completar este paso, necesita lo siguiente: 
+  El nombre de su clúster de Amazon ECS. 
+  El nombre de servicio de Amazon ECS. 
+  El nombre del equilibrador de carga de aplicación 
+  El puerto del agente de escucha de producción. 
+  Los nombres de grupo de destino. 
+  El nombre del bucket de S3 que creó. 

**Para crear una CodeDeploy aplicación**

1. Inicie sesión en Consola de administración de AWS y abra la CodeDeploy consola en [https://console.aws.amazon.com/codedeploy/](https://console.aws.amazon.com/codedeploy/).

1. Elija **Creación de aplicación**.

1. En **Application name (Nombre de aplicación)**, escriba **ecs-demo-codedeploy-app**.

1. En **Compute platform (Plataforma de computación)**, elija **Amazon ECS**.

1. Elija **Creación de aplicación**.

**Para crear un grupo CodeDeploy de implementación**

1. En la pestaña **Grupos de implementación** de la página de la aplicación, elija **Crear grupo de implementación**.

1. En **Nombre de grupo de implementación**, escriba **ecs-demo-dg**.

1. En **Función de servicio**, elija una función de servicio que conceda CodeDeploy acceso a Amazon ECS. Para obtener más información, consulte [Gestión de identidad y acceso para AWS CodeDeploy](security-iam.md).

1. En **Configuración de entorno**, elija el nombre del clúster y el nombre del servicio de Amazon ECS.

1. En **Equilibradores de carga**, seleccione el nombre del equilibrador de carga que envía tráfico a su servicio de Amazon ECS.

1. En **Puerto del oyente de producción**, elija el puerto y el protocolo del oyente que envía tráfico de producción a su servicio de Amazon ECS (por ejemplo, **HTTP: 80**). Este tutorial no incluye un oyente de prueba opcional, por lo que no elija un puerto en **Puerto de oyente de prueba**. 

1. En **Target group 1 name** (Nombre de grupo de destino 1) y **Target group 2 name** (Nombre de grupo de destino 2), elija dos grupos de destino diferentes para dirigir el tráfico durante su implementación. Asegúrese de que se trata de los grupos de destino que ha creado para el equilibrador de carga. No importa el que se utilice para el grupo de destino 1 y el que se utilice para el grupo de destino 2.

1. Elija **Reroute traffic immediately** (Redirigir el tráfico de forma inmediata).

1. En **Original revision termination** (Terminación de revisión original), elija 0 days (0 días), 0 hours (0 horas) y 5 minutes (5 minutos). Esto le permite ver que la implementación se completa más rápido que si utiliza el valor predeterminado (1 hora).  
![\[La sección de configuración del entorno de la CodeDeploy consola.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/ecs-demo-create-acd-dg.png)

1. Elija **Crear grupo de implementación**.

**Para implementar la aplicación de Amazon ECS**

1. En la página de la consola del grupo de implementaciones, elija **Create deployment** (Crear implementación).

1.  En **Grupo de implementación**, elija **ecs-demo-dg**. 

1.  En **Tipo de revisión**, elija **Mi aplicación está almacenada en Amazon S3**. En **Revision location** (Ubicación de la revisión), escriba el nombre de su bucket de S3. 

1.  En **Revision file type** (Tipo de archivo de revisión), elija **.json** o **.yaml**, según corresponda. 

1.  En el cuadro **Deployment description** (Descripción de la implementación), especifique una descripción para la implementación (opcional). 

1. Elija **Crear implementación**.

1.  En **Deployment status** (Estado de implementación), puede monitorizar la implementación. Después de que el 100 % del tráfico de producción se dirija al conjunto de tareas de sustitución y antes de que transcurra el tiempo de espera de cinco minutos, puede elegir **Terminar conjunto de tareas original** para terminar inmediatamente el conjunto de tareas original. Si no elige **Terminate original task set** (Terminar conjunto de tareas original), el conjunto de tareas original termina después de que transcurra el tiempo de espera de cinco minutos especificado.  
![\[La sección de estado de despliegue de la CodeDeploy consola.\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/images/ecs-tutorial-deployment-status-without-test-listener.png)

# Paso 4: Limpiar
<a name="tutorial-ecs-clean-up"></a>

 El siguiente tutorial, [Tutorial: Implementación de un servicio de Amazon ECS con una prueba de validación](tutorial-ecs-deployment-with-hooks.md), se basa en este tutorial y utiliza la aplicación de CodeDeploy y el grupo de implementaciones que ha creado. Si desea seguir los pasos de ese tutorial, omita este paso y no elimine los recursos que ha creado. 

**nota**  
 Su AWS cuenta no incurre en cargos por los CodeDeploy recursos que creó. 

Los nombres de los recursos en estos pasos son los nombres sugeridos en este tutorial (por ejemplo, **ecs-demo-codedeploy-app** para el nombre de la CodeDeploy aplicación). Si utilizó nombres diferentes, asegúrese de usarlos en el borrado. 

1. Use el [delete-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-deployment-group.html)comando para eliminar el grupo CodeDeploy de implementación.

   ```
   aws deploy delete-deployment-group --application-name ecs-demo-codedeploy-app --deployment-group-name ecs-demo-dg --region aws-region-id
   ```

1. Utilice el comando [delete-application](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) para eliminar la CodeDeploy aplicación.

   ```
   aws deploy delete-application --application-name ecs-demo-codedeploy-app --region aws-region-id
   ```