Optimice los costos de AWS Fargate las tareas en Amazon ECS - AWS Guía prescriptiva

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

Descripción general de

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

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. Sin revisar las métricas de rendimiento de las aplicaciones para dimensionar correctamente el tamaño de la tarea, puede aplicar la misma mentalidad que se utiliza en las instancias de EC2 procesamiento al dimensionar los 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 de esta guía.

Recomendaciones de optimización de costos

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

Puede activar AWS Compute Optimizer 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

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 con un rol que tenga los permisos necesarios 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.

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

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

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.

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

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

  4. 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 en la documentación de Compute Optimizer.

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

  1. En la consola de Compute Optimizer, vaya a la página Exportar recomendaciones.

  2. En Destino del bucket de S3, elija el bucket de S3.

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

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

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

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

  4. En los resultados descargados, filtre la columna de búsqueda para ver solo los servicios OVER_PROVISIONED de Amazon ECS en Fargate. Ahora verá los servicios de Amazon ECS que tiene que dimensionar correctamente.

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

Dimensionamiento correcto de tareas con etiquetas

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 para etiquetar recursos. AWS En el siguiente ejemplo se utiliza AWS CloudShell 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 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

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

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.

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

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

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

  5. 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. Por ejemplo:

    "containerDefinitions": [ { "name": "your-container-name", "image": "your-image", "cpu": 1024, "memory": 2048, } ],
  6. 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.

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

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

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

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 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, 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. Esto puede ser de ayuda para evitar compra en exceso cuando se contrate Savings Plans.

Siguientes pasos

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.

  2. Revise Savings Plans

Recursos adicionales