

# Tareas independientes de Amazon ECS
<a name="standalone-tasks"></a>

Puede ejecutar la aplicación como una tarea si tiene una aplicación que hace algún trabajo y, después, se detiene (por ejemplo, un proceso por lotes). Si quiere ejecutar una tarea una vez, puede usar la consola, la AWS CLI, las API o los SDK.

Si necesita ejecutar su aplicación en un programa basado en tasa, cron o único, puede crear una programación con el Programador de EventBridge.

## Flujo de trabajo de tareas
<a name="task-workflow"></a>

Al lanzar tareas de Amazon ECS (tareas independientes o mediante los servicios de Amazon ECS), se crea una tarea e inicialmente se traslada al estado `PROVISIONING`. Cuando el estado de una tarea es `PROVISIONING`, ni la tarea ni los contenedores existen porque Amazon ECS tiene que encontrar la capacidad de computación para llevar a cabo la tarea.

Amazon ECS selecciona la capacidad de computación adecuada para su tarea en función del tipo de lanzamiento o de la configuración del proveedor de capacidad. Puede utilizar proveedores de capacidad y estrategias de proveedores de capacidad con Fargate y EC2. Con Fargate, no tiene que preocuparse por aprovisionar, configurar y escalar la capacidad de su clúster. Fargate se encarga de toda la gestión de la infraestructura para sus tareas. Para EC2, puede administrar la capacidad del clúster registrando instancias de Amazon EC2 en el clúster o puede usar el escalado automático del clúster para simplificar la administración de la capacidad de computación. El escalado automático del clúster se encarga de escalar dinámicamente la capacidad del clúster para que pueda concentrarse en ejecutar las tareas. Amazon ECS determina dónde colocar la tarea en función de los requisitos que especifique en la definición de tarea, como la CPU y la memoria, así como de sus restricciones y estrategias de ubicación. Para obtener más información, consulte , [Cómo coloca Amazon ECS las tareas en las instancias de contenedor](task-placement.md).

Si utiliza un proveedor de capacidad con el escalado administrado habilitado, las tareas que no se puedan iniciar por falta de capacidad de computación se trasladarán al estado `PROVISIONING` en lugar de generar un error de inmediato. Tras encontrar la capacidad para colocar la tarea, Amazon ECS aprovisiona los adjuntos necesarios (por ejemplo, interfaces de red elásticas [ENI] para las tareas en modo `awsvpc`). Utiliza el agente de contenedor de Amazon ECS para extraer las imágenes de los contenedores y, a continuación, iniciar los contenedores. Una vez finalizado el aprovisionamiento y lanzados los contenedores correspondientes, Amazon ECS pasa la tarea al estado `RUNNING`. Para obtener más información sobre los estados de las tareas, consulte [Ciclo de vida de las tareas de Amazon ECS](task-lifecycle-explanation.md).

# Ejecución de una aplicación como tarea de Amazon ECS
<a name="standalone-task-create"></a>

Puede crear una tarea para un proceso único mediante la Consola de administración de AWS.

**Para crear una tarea independiente (Consola de administración de AWS)**

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

1. La consola de Amazon ECS le permite crear una tarea independiente desde la página de detalles del clúster o desde la lista de revisiones de definiciones de tareas. Siga estos pasos para crear una tarea independiente según la página de recursos que elija.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/standalone-task-create.html)

1. En **Clúster existente**, elija el clúster.

   Elija **Crear clúster** para ejecutar la tarea en un clúster nuevo

1. Elija cómo distribuir las tareas en la infraestructura de clúster. En **Configuración de cómputos**, elija su opción. Para utilizar una estrategia de proveedor de capacidad, debe configurar sus proveedores de capacidad por clúster. 

   Si no ha configurado el clúster para usar un proveedor de capacidad, utilice un tipo de lanzamiento en su lugar.

   Si desea poner en marcha sus cargas de trabajo en instancias administradas de Amazon ECS, debe usar la opción de estrategia del proveedor de capacidad.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/standalone-task-create.html)

1. En **Configuración de implementación**, haga lo siguiente:

   1. En **Definición de tarea**, ingrese la definición de la tarea.
**importante**  
La consola valida la selección para asegurarse de que la familia y la revisión de definiciones de tareas seleccionadas sean compatibles con la configuración de cómputos definida.

   1. En **Desired tasks** (Tareas deseadas), ingrese el número de tareas que se lanzarán.

   1. En **Grupo de tareas**, ingrese el nombre del grupo de tareas.

1. Si la definición de su tarea utiliza el modo de red de `awsvpc`, expanda la opción de **Networking** (Red). Siga estos pasos para especificar una configuración personalizada.

   1. En **VPC**, seleccione la VPC que se va a usar.

   1. En **Subnets** (Subredes), seleccione una o varias subredes de la VPC que el programador de tareas considera al ubicar sus tareas.

   1. En **Grupos de seguridad**, puede seleccionar un grupo de seguridad existente o crear uno nuevo. Para utilizar un grupo de seguridad existente, seleccione el grupo de seguridad y continúe con el próximo paso. Para crear un grupo de seguridad, elija **Create a new security group (Crear un grupo de seguridad nuevo)**. Debe especificar un nombre de grupo de seguridad, una descripción y, a continuación, agregar una o varias reglas de entrada para el grupo de seguridad.

   1. En **Public IP** (IP pública), elija si desea asignar automáticamente una dirección IP pública a la interfaz de red elástica (ENI) de la tarea.

      Las tareas de AWS Fargate pueden recibir una dirección IP pública cuando se ejecuten mediante una subred pública para que tengan una ruta a Internet. A las tareas de EC2 no se les puede asignar una IP pública mediante este campo. Para obtener más información, consulte [Opciones de redes de tareas de Amazon ECS para Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html) y [Asignación de una interfaz de red para una tarea de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking-awsvpc.html).

1. Si su tarea usa un volumen de datos compatible con la configuración en el momento de la implementación, puede expandir **Volume** para configurar el volumen.

   El nombre y el tipo de volumen se configuran al crear una revisión de la definición de la tarea y no se pueden cambiar cuando se ejecuta una tarea independiente. Para actualizar el nombre y el tipo del volumen, debe crear una nueva revisión de la definición de tareas y ejecutar una tarea con la nueva revisión.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/standalone-task-create.html)

1. (Opcional) Para utilizar una estrategia de ubicación de tareas distinta a la predeterminada, expanda **Task Placement** (Ubicación de tareas) y, a continuación, elija una de las siguientes opciones.

    Para obtener más información, consulte [Cómo coloca Amazon ECS las tareas en las instancias de contenedor](task-placement.md).
   + **Reparto equilibrado en AZ**: distribuya las tareas en las zonas de disponibilidad y entre las instancias de contenedor dentro de cada zona de disponibilidad.
   + **BinPack equilibrado en AZ**: distribuya las tareas en las zonas de disponibilidad y entre las instancias de contenedor con la menor memoria disponible.
   + **BinPack**: distribuya las tareas en función de la cantidad mínima de CPU o memoria disponible.
   + **Una tarea por Host**: coloque como máximo una tarea del servicio en cada instancia de contenedor.
   + **Personalizado**: defina su propia estrategia de colocación de tareas. 

   Si elige **Custom** (Personalizado), defina el algoritmo de ubicación de tareas y las reglas que se tienen en cuenta durante la ubicación de tareas.
   + En **Strategy** (Estrategia), para **Type** (Tipo) y **Field** (Campo), elija el algoritmo y la entidad que quiere utilizar para el algoritmo.

     Puede ingresar un máximo de 5 estrategias.
   + En **Restricción**, para **Tipo** y **Expresión**, elija la regla y el atributo para la restricción.

     Por ejemplo, para establecer la restricción de colocar las tareas en las instancias T2, para la **Expresión**, ingrese **attribute:ecs.instance-type =\$1 t2.\$1**.

     Puede ingresar un máximo de 10 restricciones.

1. (Opcional) Para anular el rol de IAM de la tarea, o el rol de ejecución de la tarea que está definido en su definición de la tarea, expanda **Task overrides** (Anulaciones de tareas) y, a continuación, complete los siguientes pasos:

   1. En **Rol de tarea**, elija un rol de IAM para esta tarea. Para obtener más información, consulte [Rol de IAM de tarea de Amazon ECS](task-iam-roles.md).

      Solo se muestran os roles con la relación de confianza `ecs-tasks.amazonaws.com`. Para obtener instrucciones sobre cómo crear un rol de IAM para las tareas, consulte [Creación del rol de IAM de tareas](task-iam-roles.md#create_task_iam_policy_and_role).

   1. En **Rol de ejecución de tareas**, elija un rol de ejecución de tareas. Para obtener más información, consulte [Rol de IAM de ejecución de tareas de Amazon ECS](task_execution_IAM_role.md).

1. (Opcional) Para anular los comandos del contenedor y las variables de entorno, expanda **Container Overrides** (Anulaciones de contenedores) y, a continuación, expanda el contenedor.
   +  Para enviar un comando al contenedor que no sea el comando de definición de tareas, en **Anulación de comando**, ingrese el comando de Docker.
   + Para agregar una variable de entorno, elija **Add environment variable** (Agregar variable de entorno). En **Key** (Clave), ingrese el nombre de la variable de entorno. En **Value** (Valor), ingrese un valor de cadena el valor de entorno (sin las comillas dobles [`" "`]).

     AWS rodea las cadenas con comillas dobles (" ") y pasa la cadena al contenedor en el formato siguiente:

     ```
     MY_ENV_VAR="This variable contains a string."
     ```

1. (Opcional) Para ayudar a identificar la tarea, expanda la sección **Tags** (Etiquetas) y, a continuación, configure sus etiquetas.

   Para que Amazon ECS etiquete automáticamente todas las tareas recién lanzadas con el nombre del clúster y las etiquetas de definición de tareas, seleccione **Turn on Amazon ECS managed tags** (Activar las etiquetas gestionadas de Amazon ECS) y, a continuación, seleccione **Task definitions** (Definiciones de tareas).

   Añada o elimine una etiqueta.
   + [Agregar una etiqueta] Seleccione **Add tag** (Agregar etiqueta), y, a continuación, haga lo siguiente:
     + En **Clave**, escriba el nombre de la clave.
     + En **Valor**, escriba el valor de la clave.
   + [Eliminar una etiqueta] Junto a la etiqueta, elija **Remove tag (Quitar etiqueta)**.

1. Seleccione **Crear**.

# Uso de Programador de Amazon EventBridge para programar tareas de Amazon ECS
<a name="tasks-scheduled-eventbridge-scheduler"></a>

El Programador de Amazon EventBridge es un programador sin servidor que le permite crear, ejecutar y administrar tareas desde un servicio administrado y centralizado. Proporciona una funcionalidad de programación única y recurrente, independientemente de las reglas y los buses de eventos. El programador de EventBridge es altamente personalizable y ofrece una escalabilidad mejorada en comparación con las reglas programadas de EventBridge, con un conjunto más amplio de operaciones de API y servicios de AWS de destino. El programador de EventBridge proporciona los siguientes programas que puede configurar para sus tareas en la consola del programador de EventBridge:
+ Basada en frecuencia 
+ Basado en cron

  Puede configurar programas basados en cron en cualquier zona horaria.
+ Programas únicos

  Puede configurar programas únicos en cualquier zona horaria.

Puede programar su Amazon ECS mediante el Programador de Amazon EventBridge.

Aunque puede crear una tarea programada en la consola de Amazon ECS, actualmente la consola del programador de EventBridge proporciona más funcionalidad.

Lleve a cabo los pasos siguientes antes de programar una tarea:

1. Utilice la consola de VPC para obtener los ID de subred en los que se ejecutan las tareas y los ID de los grupos de seguridad de las subredes. Para obtener más información, consulte [Subredes para la VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) y [Controlar el tráfico hacia los recursos de AWS mediante grupos de seguridad](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) en la *Guía del usuario de Amazon VPC*.

1. Configure el rol de ejecución del programador de EventBridge. Para obtener más información, consulte [Configurar el rol de ejecución](https://docs.aws.amazon.com/scheduler/latest/UserGuide/setting-up.html#setting-up-execution-role) en la *Guía del usuario del programador de Amazon EventBridge*. 

1. Para utilizar una estrategia de proveedor de capacidad, el proveedor de capacidad debe estar asociado con el clúster.

**Para crear un programa nuevo con la consola**

1. Abra la consola del Programador de Amazon EventBridge en[https://console.aws.amazon.com/scheduler/home](https://console.aws.amazon.com/scheduler/home/).

1.  En la página **Programaciones**, elija **Crear programación**. 

1.  En la página **Especificar los detalles de la programación**, en la sección **Nombre y descripción de la programación**, proceda del modo siguiente: 

   1. En **Nombre de la programación**, escriba un nombre para la programación. Por ejemplo, **MyTestSchedule**. 

   1. (Opcional) En **Descripción**, escriba una descripción para su programación. Por ejemplo, **TestSchedule**.

   1. En **Grupo de programaciones**, elija un grupo de programaciones. Si no tiene un grupo, elija **predeterminado**. Para crear un grupo de programaciones, elija **crear mi propia programación**. 

      Los grupos de programaciones se utilizan para añadir etiquetas a grupos de programaciones. 

1. Elija sus opciones de programación.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/tasks-scheduled-eventbridge-scheduler.html)

1. (Opcional) Si elige **Programación recurrente** en el paso anterior, en la sección de **Periodo de tiempo**, realice lo siguiente: 

   1. En **Zona horaria**, elija una zona horaria. 

   1. En **Fecha y hora de inicio**, introduzca una fecha válida con el formato `YYYY/MM/DD` y, a continuación, especifique una marca de tiempo con el formato `hh:mm` de 24 horas. 

   1. En **Fecha y hora de finalización**, introduzca una fecha válida con el formato `YYYY/MM/DD` y, a continuación, especifique una marca de tiempo con el formato `hh:mm` de 24 horas. 

1. Elija **Siguiente**. 

1. En la página **Seleccionar destino**, haga lo siguiente: 

   1. Seleccione **Todas las API** y, a continuación, en el cuadro de búsqueda escriba **ECS**. 

   1. Seleccione **Amazon ECS**.

   1. En el cuadro de búsqueda, escriba **Ejecutar tarea** y, a continuación, seleccione **Ejecutar tarea**.

   1. En **Clúster de ECS**, elija el clúster.

   1. Para la **tarea de ECS**, elija la definición de tarea que se utilizará para la tarea.

   1. Elija cómo distribuir las tareas en la infraestructura de clúster. Expanda las **Opciones de computación** y, a continuación, elija una de las siguientes opciones:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/tasks-scheduled-eventbridge-scheduler.html)

   1. En el caso de las **Subredes**, introduzca los ID de subred en los que se ejecutará la tarea.

   1. En el caso los **Grupos de seguridad**, introduzca los ID de los grupos de seguridad de la subred.

   1. (Opcional) Para utilizar una estrategia de ubicación de tareas que no sea la predeterminada, expanda **Restricción de ubicación** y, a continuación, introduzca las restricciones.

       Para obtener más información, consulte [Cómo coloca Amazon ECS las tareas en las instancias de contenedor](task-placement.md).

   1. (Opcional) Para ayudar a identificar las tareas, en **Etiquetas**, configure las etiquetas.

      Para que Amazon ECS etiquete automáticamente todas las tareas recién lanzadas con las etiquetas de definición de tareas, seleccione **Activar las etiquetas administradas de Amazon ECS**.

1. Elija **Siguiente**. 

1. En la página **Configuración**, haga lo siguiente: 

   1. Para activar la programación, en **Estado de la programación**, cambie a **Habilitar programación**. 

   1. Para configurar una política de reintentos para su programación, en **Política de reintento y cola de mensajes fallidos (DLQ)**, realice lo siguiente:
      + Cambie a **Reintentar**.
      + En **Tiempo de retención máxima del evento**, ingrese el máximo de **horas** y **minutos** que el programador de EventBridge debe mantener un evento sin procesar.
      + El tiempo máximo es de 24 horas.
      + En **Cantidad máxima de reintentos**, introduzca el número máximo de veces que el Programador de EventBridge reintenta la programación si el destino devuelve un error. 

         El valor máximo es 185 reintentos. 

      Con las políticas de reintentos, si un programa no puede invocar su destino, el Programador de EventBridge vuelve a ejecutar el programa. Si se encuentra configurado, debe establecer el tiempo máximo de retención y los reintentos máximos para la programación.

   1. Elija dónde almacena los eventos no entregados el Programador de EventBridge.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/tasks-scheduled-eventbridge-scheduler.html)

   1. Para utilizar una clave administrada por el cliente a fin de cifrar la entrada de destino, en **Cifrado**, elija **Personalizar la configuración de cifrado (avanzado)**. 

      Si elige esta opción, ingrese un ARN de clave de KMS existente o elija **Crear una AWS KMS key** para navegar hasta la consola de AWS KMS. Para obtener más información sobre cómo el Programador de EventBridge cifra los datos en reposo, consulte [Encryption at rest](https://docs.aws.amazon.com/scheduler/latest/UserGuide/encryption-rest.html) en *Amazon EventBridge Scheduler User Guide*. 

   1. En **Permisos**, seleccione **Usar el rol existente** y, a continuación, seleccione el rol.

      Para que el Programador de EventBridge cree un rol de ejecución nuevo en su nombre, elija **Crear un nuevo rol para esta programación**. A continuación, ingrese un nombre para el **Nombre de rol**. Si elige esta opción, el Programador de EventBridge adjunta al rol los permisos necesarios para el destino creado con la plantilla. 

1. Elija **Siguiente**. 

1.  En la página de **Revisar y crear una programación**, revise los detalles de su programación. En cada sección, elija **Editar** para volver a ese paso y editar sus detalles. 

1. Elija **Crear programación**. 

   Puede ver una lista de sus programaciones nuevas y existentes en la página **Programaciones**. En la columna **Estado**, verifique que su programación nueva se encuentre **Habilitada**. 

## Siguientes pasos
<a name="eventbridge-scheduler-next-steps"></a>

Puede utilizar la consola del programador de EventBridge o la AWS CLI para administrar el programa. Para obtener más información, consulte [Administración de un programa](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-schedule.html) en la *Guía del usuario del programador de Amazon EventBridge*.

# Detención de una tarea de Amazon ECS
<a name="standalone-task-stop"></a>

Si ya no necesita mantener una tarea independiente en ejecución, puede detenerla. La consola de Amazon ECS facilita la detención de una o más tareas.

No puede reiniciar una tarea detenida individual.

Si necesita detener un servicio, consulte [Eliminación de un servicio de Amazon ECS mediante la consola](delete-service-v2.md).

**Para detener una tarea independiente (Consola de administración de AWS)**

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

1. En el panel de navegación, seleccione **Clusters (Clústeres)**.

1. En la página **Clústeres**, elija el clúster para ir a la página de detalles del clúster.

1. En la página de detalles del clúster, elija la pestaña **Tareas**. 

1. Puede filtrar las tareas por tipo de lanzamiento mediante la lista **Filtrar tipo de lanzamiento**.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/standalone-task-stop.html)