

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.

# Optimice los costos de AWS Fargate las tareas en Amazon ECS
<a name="optimizer-ecs-fargate"></a>

## Descripción general de
<a name="optimizer-ecs-fargate-overview"></a>

El dimensionamiento correcto de AWS Fargate las tareas es un paso importante para la optimización de costos. Con demasiada frecuencia, las aplicaciones se crean asignando tamaños arbitrarios a las tareas de Fargate y nunca se revisan. Esto puede provocar un aprovisionamiento excesivo de las tareas de Fargate y gastos innecesarios. En esta sección, se explica cómo usar [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) a fin de obtener recomendaciones prácticas para optimizar la CPU y la memoria de las tareas para los servicios de Amazon Elastic Container Service (Amazon ECS) que se ponen en marcha en Fargate. Compute Optimizer también cuantifica el impacto en los costos derivados de la adopción de estas recomendaciones. Esto le permite priorizar sus esfuerzos de optimización en función del tamaño de la oportunidad de ahorro. Las recomendaciones de Compute Optimizer proporcionan configuraciones de CPU y memoria por contenedor para reducir el tamaño de las tareas.

## Beneficios en términos de costos
<a name="optimizer-ecs-fargate-cost-benefits"></a>

El dimensionamiento correcto de las tareas de Amazon ECS en Fargate puede reducir los costos entre un 30 % y un 70 % en el caso de las tareas de larga duración. Si no revisa las métricas de rendimiento de las aplicaciones para dimensionar correctamente el tamaño de las tareas, puede acabar aplicando la misma lógica utilizada en las instancias de computación de EC2 en el dimensionamiento de contenedores Esto da lugar a tareas de Fargate sobredimensionadas que aumentan los costos por recursos inactivos. Puede usar Compute Optimizer para detectar las oportunidades de dimensionamiento adecuadas de forma reactiva. Lo ideal es que el propietario de la aplicación revise las métricas de rendimiento específicas de dicha aplicación y elimine la sobrecarga del sistema operativo para garantizar que el tamaño de la tarea sea el adecuado. Para obtener más información, consulte la sección [Transferencia de aplicaciones de Windows a contenedores](windows-containers-main.md) de esta guía.

## Recomendaciones de optimización de costos
<a name="optimizer-ecs-fargate-rec"></a>

En esta sección, se ofrecen recomendaciones para usar Compute Optimizer para dimensionar correctamente las tareas de Amazon ECS en Fargate.

Como parte del proceso de optimización de costos, le recomendamos que haga lo siguiente:
+ Activación de Compute Optimizer
+ Consumo de resultados de Compute Optimizer
+ Etiquetar las tareas para que tengan el tamaño correcto
+ Habilite la etiqueta de asignación de costos para que funcione con las herramientas AWS de facturación
+ Implementar recomendaciones para asignar el tamaño correcto
+ Revisión del antes y el después de los costos en Explorador de costos

### Activación de Compute Optimizer
<a name="optimizer-ecs-fargate-rec-compute"></a>

Puede activar [AWS Compute Optimizer](https://docs.aws.amazon.com/compute-optimizer/latest/ug/getting-started.html#account-opt-in) por organización o cuenta única en AWS Organizations. La configuración de toda la organización proporciona informes continuos para las instancias nuevas y existentes de toda la flota y para todas las cuentas de miembros. Esto permite que el dimensionamiento correcto sea una actividad recurrente en lugar de una point-in-time actividad.

#### Nivel de organización
<a name="optimizer-ecs-fargate-rec-compute-org"></a>

Para la mayoría de las organizaciones, la forma más eficiente de usar Compute Optimizer es hacerlo a un nivel organizacional. Esto ofrece información de varias cuentas y regiones de la organización y centraliza los datos en un único origen para su revisión. Para activar Compute Optimizer por organización, haga lo siguiente:

1. Inicie sesión en su [cuenta de administración de AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) con un rol que tenga los [permisos necesarios](https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html) y seleccione la opción de inclusión para todas las cuentas de esta organización. Su organización debe tener [habilitadas todas las características](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html).

1. Después de activar la cuenta de administración, puede iniciar sesión en ella, ver todas las otras cuentas de miembros y consultar sus recomendaciones.

**nota**  
Se recomienda configurar una [cuenta de administración delegada](https://docs.aws.amazon.com/compute-optimizer/latest/ug/delegate-administrator-account.html) para Compute Optimizer. Esto le permite aplicar el principio de privilegio mínimo, lo que minimiza el acceso a la cuenta de administración de AWS Organizations y, al mismo tiempo, proporciona acceso al servicio de toda la organización.

#### Nivel de cuenta única
<a name="optimizer-ecs-fargate-rec-compute-account"></a>

Si quiere trabajar con una cuenta con costos elevados, pero no tiene acceso a AWS Organizations, puede activar Compute Optimizer para esa cuenta y región. Para obtener más información sobre el proceso de suscripción, consulta [Cómo empezar](https://docs.aws.amazon.com/compute-optimizer/latest/ug/getting-started.html) con. AWS Compute Optimizer

**nota**  
Las recomendaciones se actualizan a diario y pueden tardar hasta 12 horas en generarse. Tenga en cuenta que Compute Optimizer requiere 24 horas de métricas en los últimos 14 días para generar recomendaciones para Amazon ECS en Fargate. Para obtener más información, consulte [Requirements for Amazon ECS services on Fargate](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html#requirements-ecs-fargate) en la documentación de Compute Optimizer.

Compute Optimizer analiza automáticamente las siguientes métricas de uso de CloudWatch Amazon y Amazon ECS para sus servicios de Amazon ECS en Fargate:
+ `CPUUtilization`: el porcentaje de capacidad de la CPU que se utiliza en el servicio.
+ `MemoryUtilization`: el porcentaje de memoria que se utiliza en el servicio.

### Consumo de resultados de Compute Optimizer
<a name="optimizer-ecs-fargate-rec-results"></a>

Supongamos que nos centramos en realizar los cambios de tamaño en una sola cuenta y una sola región. En este ejemplo, Compute Optimizer se activa en un nivel organizativo para todas las cuentas. Tenga en cuenta que el dimensionamiento es un proceso disruptivo que, en la mayoría de los casos, los propietarios de las aplicaciones llevan a cabo con precisión durante un periodo de mantenimiento programado que dura varias semanas.

Si accede a Compute Optimizer desde la cuenta de administración de una organización (como se muestra en los pasos siguientes), puede elegir la cuenta que desea investigar. En este ejemplo, una tarea se pone en marcha en una sola cuenta que está sobreaprovisionada en `us-east-1`. El objetivo es centrarse en cambiar el tamaño al tamaño recomendado para el servicio de Amazon ECS.

1. Abra la [consola de Compute Optimizer.](https://console.aws.amazon.com/compute-optimizer/)

1. En la página **Panel**, filtre por **Resultados=Sobreprovisionados** para ver todos los servicios de Amazon ECS en Fargate.

1. Para revisar las recomendaciones detalladas sobre **Servicios de ECS sobreaprovisionados en Fargate**,** **desplácese hacia abajo y seleccione **Ver recomendaciones**.

1. Elija **Exportar** y guarde el archivo para usarlo en el futuro. 
**nota**  
Para guardar las recomendaciones y poder revisarlas en el futuro, debe tener un bucket de S3 disponible para que Compute Optimizer escriba en cada región. Para obtener más información, consulte [Amazon S3 bucket policy for AWS Compute Optimizer](https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html) en la documentación de Compute Optimizer.

Para ver las recomendaciones de Compute Optimizer, haga lo siguiente:

1. En la [consola de Compute Optimizer](https://console.aws.amazon.com/compute-optimizer/), vaya a la página **Exportar recomendaciones**.

1. En **Destino del bucket de S3**, elija el bucket de S3.

1. En la sección **Exportar filtros**, en **Tipo de recurso**, elija **Servicios de ECS en Fargate**.

1. En la página **Recomendaciones para los servicios de ECS en Fargate**, elija uno de los servicios de ECS en Fargate y consulte las recomendaciones de CPU y memoria de Compute Optimizer. Por ejemplo, consulte las recomendaciones de las secciones **Comparar la configuración actual con el tamaño recomendado para la tarea** y **Comparar la configuración actual con el tamaño recomendado para el contenedor**.

Para obtener la lista de servicios de ECS para Fargate que tienen que dimensionarse correctamente, haga lo siguiente:

1. Abra la [consola de Amazon S3](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Buckets** y, a continuación, seleccione el bucket en el que exportó los resultados.

1. En la pestaña **Objetos**, seleccione su objeto y elija **Descargar**.

1. En los resultados descargados, filtre la columna de búsqueda para ver solo los servicios **OVER\$1PROVISIONED** de Amazon ECS en Fargate. Ahora verá los servicios de Amazon ECS que tiene que dimensionar correctamente.

1. Guarde las definiciones de las tareas en un editor de texto para usarlas más adelante.

### Dimensionamiento correcto de tareas con etiquetas
<a name="optimizer-ecs-fargate-rightsizing"></a>

Etiquetar las cargas de trabajo es una herramienta poderosa para organizar sus recursos en AWS. Puede usar etiquetas para obtener una visibilidad detallada de los costos y redistribuir los gastos. Existen muchos métodos y estrategias para agregar etiquetas a los recursos de AWS con el objetivo de gestionar la redistribución de gastos la automatización. Para obtener más información, consulte el AWS documento técnico [Mejores prácticas](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html) para etiquetar los recursos. AWS En el siguiente ejemplo se utiliza [AWS CloudShell](https://console.aws.amazon.com/cloudshell/home) para etiquetar todas las tareas que forman parte de cualquier servicio de Amazon ECS dentro de la cuenta de destino y Región de AWS.

```
#!/bin/bash
# Set variables
TAG_KEY="rightsizing"
TAG_VALUE="enabled"
# Get a list of ECS Clusters
ClustersArns=$( aws ecs list-clusters –query 'clusterArns' –output text)
for ClustersArn in $ClustersArns; do
 ServiceArns=$( aws ecs list-services –cluster $ClustersArn –query 'serviceArns' –output text)
 for ServiceArn in $ServiceArns; do
  TasksArns=$( aws ecs list-tasks –cluster $ClustersArn –service-name $ServiceArn –query 'taskArns' –output text)
  for TasksArn in $TasksArns; do
    aws ecs tag-resource –resource-arn $TasksArn –tags key=$TAG_KEY,value=$TAG_VALUE
  done
 done
done
```

El siguiente ejemplo de código muestra cómo activar la [propagación de etiquetas](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html#ECS-UpdateService-request-propagateTags) a todos los servicios de Amazon ECS.

```
#!/bin/bash
# Set variables
TAG_KEY="rightsizing"
TAG_VALUE="enabled"
# Get a list of ECS Clusters
ClustersArns=$(aws ecs list-clusters --query 'clusterArns' --output text)
for ClustersArn in $ClustersArns; do
 ServiceArns=$(aws ecs list-services --cluster $ClustersArn --query 'serviceArns' --output text)
 for ServiceArn in $ServiceArns; do
  aws ecs update-service --cluster $ClustersArn --service $ServiceArn --propagate-tags SERVICE &>/dev/null
  aws ecs tag-resource --resource-arn $ServiceArn --tags key=$TAG_KEY,value=$TAG_VALUE
 done
done
```

### Habilite la etiqueta de asignación de costos para que funcione con las herramientas de facturación AWS
<a name="optimizer-ecs-fargate-rec-billing-tools"></a>

Recomendamos activar la etiqueta de asignación de costos definida por el usuario. Esto permite reconocer y filtrar la etiqueta **Rightsizing** en las herramientas de AWS facturación (por ejemplo, y). AWS Cost Explorer AWS Cost and Usage Report Si no activa esta opción, la opción de filtrado de etiquetas y los datos no estarán disponibles. Para obtener más información sobre el uso de etiquetas de asignación de costos, consulte [Activating user-defined cost allocation tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html) en la documentación de Administración de facturación y costos de AWS .

Tras esperar 24 horas, podrá ver la etiqueta en Explorador de costos antes de implementar las recomendaciones de dimensionamiento correcto en la siguiente sección. Para ello, busque la etiqueta **Dimensionamiento correcto** en Explorador de costos.

### Implementar recomendaciones para asignar el tamaño correcto
<a name="optimizer-ecs-fargate-rec-rightsizing-rec"></a>

Compute Optimizer proporcionará recomendaciones de tamaño para las tareas o el contenedor. Para implementar recomendaciones de dimensionamiento correcto, haga lo siguiente.

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

1. En la barra de navegación, seleccione la Región que contiene la definición de tarea.

1. En el panel de navegación, elija **Task Definitions** (Definiciones de tareas).

1. En la página **Task definitions** (Definiciones de tareas), elija la tarea y, a continuación, elija **Create new revision** (Crear nueva revisión).

1. En la página **Create new task definition revision** (Crear nueva revisión de definición de tarea), realice cambios. Para actualizar la recomendación de tamaño del contenedor, actualice `cpu` y `memory` en el bloque **containerDefinitions** de la definición de la [tarea de ECS.](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size) Por ejemplo:

   ```
   "containerDefinitions": [
   	{
   		"name": "your-container-name",
   		"image": "your-image",
   		"cpu": 1024,
   		"memory": 2048,
   	}
   ],
   ```

1. Verifique la información y, luego, seleccione **Create** (Crear).

Para actualizar el servicio de Amazon ECS, haga lo siguiente:

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

1. En la página **Clusters** (Clústeres), seleccione el clúster.

1. En la página **Cluster overview** (Información general del clúster), seleccione el servicio y, a continuación, elija **Update** (Actualizar).

1. En **Task definition** (Definición de tareas), elija la familia y la revisión de definiciones de tareas que se va a utilizar.

Para los operadores avanzados, puede utilizar CloudShell para actualizar el servicio Amazon ECS. Por ejemplo:

```
bash
#!/bin/bash
# Set variables
ClustersName="workshop-cluster"
ServiceName="lab7-fargate-service"
TaskDefinition="lab7-fargate-demo:3"
# update the service
aws ecs update-service --cluster $ClustersName --service $ServiceName --task-definition $TaskDefinition
```

### Revisión del antes y el después de los costos
<a name="optimizer-ecs-fargate-rec-before-after"></a>

Una vez que haya dimensionado correctamente sus recursos, puede usar Explorador de costos para ver los costos anteriores y posteriores usando la etiqueta **Dimensionamiento correcto**. Recuerde que puede usar [etiquetas de recursos](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html) para hacer un seguimiento de los costos. Al usar varias capas de etiquetas, puede lograr una visibilidad detallada de sus costos. En el ejemplo que se describe en esta guía, la etiqueta **Dimensionamiento correcto** se utiliza para aplicar una etiqueta genérica a todas las instancias objetivo. A continuación, se utiliza la etiqueta **equipo** para organizar aún más los recursos. El siguiente paso consiste en ingresar etiquetas de aplicación para ver mejor el impacto en los costos derivados del funcionamiento de una aplicación específica.

Piense en la reducción de costos que se puede lograr al usar la etiqueta **Dimensionamiento correcto** en una única cuenta. En este ejemplo, los costos operativos pasan de 30,26 USD al día a 7,56 USD al día Suponiendo que un mes tiene 744 horas, el costo anual antes del dimensionamiento correcto es de 11 044,9 USD. Tras redimensionar, el costo anual se reduce a 2759,4 USD. Esto se traduce en una disminución del 75 % en los costos de computación de esta cuenta. Imagine el impacto que puede tener esto en una organización grande.

Antes de empezar con el proceso de dimensionamiento correcto, tenga en cuenta lo siguiente:
+ AWS ofrece muchas opciones para reducir los costos. Esto incluye [AWS OLA](https://aws.amazon.com/optimization-and-licensing-assessment/), en el que se AWS revisan las instancias locales antes de mudarlas a AWS ellas. El AWS OLA también le proporciona recomendaciones sobre el tamaño correcto y orientación sobre licencias.
+ Complete todos los procesos de dimensionamiento antes de adquirir [Savings Plans](https://aws.amazon.com/savingsplans/). Esto puede ser de ayuda para evitar compra en exceso cuando se contrate Savings Plans.

## Siguientes pasos
<a name="optimizer-ecs-fargate-next-steps"></a>

A continuación, recomendamos los pasos próximos:

1. Revise la situación actual y considere la posibilidad de convertir los volúmenes gp2 de Amazon EBS en volúmenes gp3.

1. Revise [Savings Plans](https://aws.amazon.com/savingsplans/)

## Recursos adicionales
<a name="optimizer-ecs-fargate-resources"></a>
+ [Introducción a Compute Optimizer (documentación](https://aws.amazon.com/compute-optimizer/getting-started/))AWS 
+ [Prácticas recomendadas para etiquetar AWS recursos (documentos técnicos](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html))AWS 
+ [Windows Containers está activado AWS](https://catalog.us-east-1.prod.workshops.aws/workshops/1de8014a-d598-4cb5-a119-801576492564/en-US) (AWS Workshop Studio)