PERF02-BP05 Usar la elasticidad de recursos disponible
La nube ofrece la flexibilidad de ampliar y reducir sus recursos de forma dinámica a través de diversos mecanismos para satisfacer los cambios en la demanda. Al combinar esta elasticidad con métricas relacionadas con la computación, una carga de trabajo puede responder automáticamente a los cambios para utilizar los recursos que necesita y solo los que necesita.
Antipatrones usuales:
-
Se sobreaprovisiona para cubrir posibles picos.
-
Reacciona a las alarmas aumentando manualmente la capacidad.
-
Aumenta la capacidad sin tener en cuenta el tiempo de aprovisionamiento.
-
Deja la capacidad aumentada después de un evento de ajuste de escala en lugar de volver a desescalar verticalmente.
-
Supervisa parámetros que no reflejan directamente los verdaderos requisitos de sus cargas de trabajo.
Beneficios de establecer esta práctica recomendada: la demanda puede ser fija, variable, seguir un patrón o ser irregular. Adaptar la oferta a la demanda ofrece el coste más bajo para una carga de trabajo. Supervisar, probar y configurar la elasticidad de la carga de trabajo optimizará el rendimiento, ahorrará dinero y mejorará la fiabilidad a medida que cambien las demandas de uso. Aunque es posible adoptar un enfoque manual, resulta poco práctico a gran escala. Un enfoque automatizado y basado en métricas garantiza que los recursos satisfagan las demandas en cualquier momento.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio
Guía para la implementación
La automatización basada en métricas debe utilizarse para aprovechar la elasticidad con el objetivo de que la oferta de recursos con la que dispone coincida con la demanda de los recursos que requiere su carga de trabajo. Por ejemplo, puede utilizar las métricas de Amazon CloudWatch para supervisar sus recursos
En combinación con las métricas relacionadas con la computación, una carga de trabajo puede responder automáticamente a los cambios y usar el conjunto óptimo de recursos para alcanzar su objetivo. También debe planificar el tiempo de aprovisionamiento y los posibles errores de los recursos.
Las instancias, los contenedores y las funciones proporcionan mecanismos de elasticidad, ya sea como una característica del servicio, en la forma de Application Auto Scaling
Valide las métricas para escalar o desescalar verticalmente los recursos elásticos con respecto al tipo de carga de trabajo que se está desplegando. Por ejemplo, si está desplegando una aplicación de transcodificación de vídeo, se espera una utilización del 100 % de la CPU y no debería ser su métrica principal. Como alternativa, puede medir la profundidad de la cola de trabajos de transcodificación en espera de escalar sus tipos de instancia.
Los despliegues de la carga de trabajo tienen que manejar los eventos de escalado y desescalado verticales. Desescalar verticalmente los componentes de la carga de trabajo de forma segura es tan importante como escalar verticalmente los recursos cuando la demanda lo requiere.
Cree escenarios de prueba para eventos de escalado vertical para comprobar que la carga de trabajo se comporta como se espera.
Pasos para la implementación
-
Aproveche los datos históricos para analizar las demandas de recursos de su carga de trabajo a lo largo del tiempo. Haga preguntas concretas como:
-
¿Su carga de trabajo es constante y aumenta con el tiempo a un ritmo conocido?
-
¿Su carga de trabajo aumenta y disminuye según patrones estacionales y repetibles?
-
¿Tiene picos su carga de trabajo? ¿Se pueden anticipar o predecir los picos?
-
-
Aproveche al máximo los servicios de supervisión y los datos históricos.
-
Etiquetar los recursos puede ayudar a la supervisión. Al utilizar etiquetas, consulte las prácticas recomendadas de etiquetado. Además, las etiquetas pueden ayudarle a administrar, identificar y organizar recursos.
-
Con AWS, puede usar varios enfoques diferentes para hacer que la oferta coincida con la demanda. Las prácticas recomendadas del Pilar de optimización de costes (COST09-BP01 a COST09-03) describen cómo utilizar los siguientes enfoques de costes:
-
Cree escenarios de prueba para eventos de desescalado vertical para verificar que la carga de trabajo se comporte como se espera.
-
La mayoría de las instancias que no son de producción deben detenerse cuando no se utilizan.
-
Para las necesidades de almacenamiento al utilizar Amazon Elastic Block Store (Amazon EBS), aproveche la elasticidad basada en el volumen.
-
Para Amazon Elastic Compute Cloud (Amazon EC2)
, considere utilizar grupos de Auto Scaling, que le permiten optimizar el rendimiento y el coste al aumentar automáticamente el número de instancias de computación durante los picos de demanda y reducir la capacidad cuando la demanda disminuye.
Recursos
Prácticas recomendadas relacionadas:
Documentos relacionados:
-
Cloud Compute with AWS
(Computación en la nube con AWS) -
Amazon EC2 Instance Types (Tipos de instancias Amazon EC2)
-
Amazon ECS Containers: Amazon ECS Container Instances (Contenedores: instancias de contenedor de Amazon ECS)
-
Amazon EKS Containers: Amazon EKS Worker Nodes (Contenedores: nodos de trabajo de Amazon EKS)
-
Functions: Lambda Function Configuration (Funciones: configuración de funciones de Lambda)
Vídeos relacionados:
-
Amazon EC2 foundations (CMP211-R2)
(Fundamentos de Amazon EC2) -
Better, faster, cheaper compute: Cost-optimizing Amazon EC2
(Computación mejor, más rápida y más barata: Optimización de costes de Amazon EC2) (CMP202-R1) -
Deliver high performance ML inference with AWS Inferentia (CMP324-R1)
(Realice inferencias ML de alto rendimiento con AWS) -
Optimize performance and cost for your AWS compute (CMP323-R1)
(Optimice el rendimiento y coste de su computación con AWS) -
Powering next-gen Amazon EC2: Deep dive into the Nitro system
(Impulso de Amazon EC2 de nueva generación: profundización en el sistema Nitro)
Ejemplos relacionados: