PERF02-BP05 Escalar los recursos computacionales de forma dinámica
Utilice la elasticidad de la nube para aumentar o reducir sus recursos computacionales de forma dinámica de forma que se ajusten a sus necesidades, lo que evitará un aprovisionamiento de capacidad excesivo o insuficiente para su carga de trabajo.
Antipatrones usuales:
-
Reacciona a las alarmas aumentando manualmente la capacidad.
-
Utiliza las mismas directrices de dimensionamiento (por lo general, una infraestructura estática) que en el entorno local.
-
Deja la capacidad aumentada después de un evento de ajuste de escala en lugar de volver a desescalar verticalmente.
Ventajas de aplicar esta práctica recomendada: configurar y probar la elasticidad de los recursos computaciones le ayudará a ahorrar dinero, a mantener los estándares de rendimiento y a mejorar la fiabilidad cuando se produzcan cambios en el tráfico.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio
Guía para la implementación
AWS le ofrece la flexibilidad necesaria para aumentar o reducir los recursos de forma dinámica a través de una gran variedad de mecanismos de escalamiento que se ajustan a los cambios de demanda. Junto con las métricas relacionadas con la computación, el escalamiento dinámico permite que las cargas de trabajo respondan automáticamente a los cambios y utilicen el conjunto óptimo de recursos informáticos para lograr su objetivo.
Puede usar distintos enfoques para hacer que el suministro de recursos coincida con la demanda.
-
Enfoque de seguimiento de objetivos: supervise la métrica de escalamiento y aumente o reduzca de forma automática la capacidad en función de sus necesidades.
-
Escalamiento predictivo: desescale horizontalmente con arreglo a las tendencias diarias y semanales previstas.
-
Enfoque basado en programación: elabore su propia programación según los cambios de carga previstos.
-
Escalamiento de servicios: elija servicios (como los servicios sin servidor) diseñados para escalar automáticamente.
Debe asegurarse de que los despliegues de la carga de trabajo puedan manejar eventos de escalamiento y desescalamiento verticales.
Pasos para la implementación
-
Las instancias de computación, los contenedores y las funciones proporcionan mecanismos que favorecen la elasticidad, ya sea en combinación con funciones de escalamiento automático o como características del servicio. Estos son algunos ejemplos de mecanismos de escalamiento automático:
Autoscaling Mechanism Where to use Amazon EC2 Auto Scaling To ensure you have the correct number of Amazon EC2 instances available to handle the user load for your application. Application Auto Scaling To automatically scale the resources for individual AWS services beyond Amazon EC2 such as AWS Lambda functions or Amazon Elastic Container Service (Amazon ECS) services. Kubernetes Cluster Autoscaler/Karpenter To automatically scale Kubernetes clusters. -
Normalmente, se habla del escalamiento en relación con los servicios de computación, como las instancias de Amazon EC2 o las funciones de AWS Lambda. No olvide que también debe tener en cuenta la configuración de otros servicios no computacionales, como AWS Glue, para satisfacer la demanda.
-
Asegúrese de que las métricas de escalamiento se ajustan a las características de la carga de trabajo que se está desplegando. 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. En su lugar, utilice la profundidad de la cola de trabajos de transcodificación. Si es necesario, puede usar una métrica personalizada
para la política de escalamiento. Para elegir las métricas adecuadas, tenga en cuenta las siguientes directrices para Amazon EC2: -
La métrica debe ser una métrica de utilización válida y describir el grado de ocupación de una instancia.
-
El valor de la métrica debe aumentar o disminuir proporcionalmente al número de instancias del grupo de Auto Scaling.
-
-
No olvide utilizar el escalamiento dinámico en lugar del manual para el grupo de Auto Scaling. También le recomendamos que use las políticas de escalamiento de seguimiento de destino en el escalamiento dinámico.
-
Compruebe que los despliegues de la carga de trabajo puedan gestionar ambos eventos de escalamiento (escalamiento y desescalamiento verticales). Por ejemplo, puede utilizar el historial de actividades para comprobar la actividad de escalamiento de un grupo de Auto Scaling.
-
Evalúe los patrones predecibles de su carga de trabajo y escale de forma proactiva al anticiparse a los cambios previstos y planeados en la demanda. Con el escalamiento predictivo, puede eliminar la necesidad de aprovisionar capacidad en exceso. Para obtener más información, consulte Predictive Scaling with Amazon EC2 Auto Scaling
.
Recursos
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)
-
Deep Dive on Amazon ECS Cluster Auto Scaling
(Profundización en Auto Scaling de clúster de Amazon ECS) -
Introducing Karpenter – An Open-Source High-Performance Kubernetes Cluster Autoscaler
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: