SUS02-BP01 Escalado de la infraestructura de la carga de trabajo dinámicamente
Utilice la elasticidad de la nube y escale su infraestructura de forma dinámica para adaptar la oferta de recursos en la nube a la demanda y evitar un exceso de capacidad en su carga de trabajo.
Patrones comunes de uso no recomendados:
No escalar la infraestructura con la carga de usuarios.
Escalar la infraestructura manualmente todo el tiempo.
Dejar la capacidad aumentada después de un evento de ajuste de escala en lugar de volver a desescalar verticalmente.
Beneficios de establecer esta práctica recomendada: configurar y probar la elasticidad de la carga de trabajo ayuda a adaptar de manera eficiente el suministro de recursos de la nube a la demanda y a evitar el exceso de aprovisionamiento de la capacidad. Puede aprovechar la elasticidad de la nube para escalar automáticamente la capacidad durante y después de los picos de demanda para asegurarse de que solo utiliza el número correcto de recursos necesarios para satisfacer los requisitos empresariales.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio
Guía para la implementación
La nube ofrece la flexibilidad de ampliar o reducir sus recursos de forma dinámica a través de diversos mecanismos para satisfacer los cambios en la demanda. La correspondencia óptima entre la oferta y la demanda ofrece el menor impacto medioambiental para una carga de trabajo.
La demanda puede ser fija o variable, lo que requiere métricas y automatización para garantizar que la administración no resulte difícil. Las aplicaciones pueden escalarse o desescalarse verticalmente mediante la modificación del tamaño de la instancia, escalarse o desescalarse horizontalmente mediante la modificación del número de instancias, o una combinación de ambas.
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 escalado y aumente o reduzca de forma automática la capacidad en función de sus necesidades.
-
Escalado predictivo: reduzca horizontalmente de antemano según las tendencias diarias y semanales previstas.
-
Enfoque basado en la programación: establezca su propia programación de escalado según los cambios de carga predecibles.
-
Escalado de servicios: elija servicios (como los servicios sin servidor) que se escalen de forma nativa por diseño o que incluyan el escalado automático como característica.
Identifique los periodos de uso reducido o inexistente y escale los recursos en consonancia para eliminar el exceso de capacidad y mejorar la eficiencia.
Pasos para la implementación
-
La elasticidad hace coincidir la oferta de los recursos que tiene con la demanda de esos recursos. Las instancias, los contenedores y las funciones proporcionan mecanismos de elasticidad, ya sea en combinación con el escalado automático o como características del servicio. AWS proporciona una serie de mecanismos de escalado automático para garantizar que las cargas de trabajo puedan reducirse verticalmente de forma rápida y sencilla durante los periodos con poca carga de usuarios. A continuación, se presentan algunos ejemplos de mecanismos de escalado automático:
Mecanismo de escalado automático Dónde se usa Se usa para verificar que tiene el número correcto de instancias de Amazon EC2 disponibles para gestionar la carga de usuarios de su aplicación.
Se usa para escalar automáticamente los recursos de servicios de AWS más allá de Amazon EC2, como las funciones de Lambda o los servicios de Amazon Elastic Container Service (Amazon ECS).
Se usa para escalar automáticamente clústeres de Kubernetes en AWS.
-
Normalmente, se habla del escalado en relación con los servicios de computación, como las instancias de Amazon EC2 o las funciones de AWS Lambda. Considere la posibilidad de configurar servicios no computacionales, como las unidades de capacidad de lectura y escritura de Amazon DynamoDB
o las particiones de Amazon Kinesis Data Streams , para satisfacer la demanda. -
Verifique que las métricas para escalar o reducir verticalmente se validan con respecto al tipo de carga de trabajo que se está implementando. Si está implementando una aplicación de transcodificación de vídeo, se espera un uso del 100 % de la CPU y no debería ser su métrica principal. Si es necesario, puede utilizar una métrica personalizada
(como el uso de la memoria) para su política de escalado. 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 escalado automático.
-
-
Utilice el escalado dinámico en lugar del escalado manual para su grupo de escalado automático. También le recomendamos que utilice políticas de escalado de seguimiento objetivo en su escalado dinámico.
-
Verifique que las implementaciones de la carga de trabajo puedan manejar los eventos de escalado y desescalado horizontales. Cree escenarios de prueba para los eventos de escalado con el fin de verificar que la carga de trabajo se comporta del modo previsto y no afecta a la experiencia del usuario (como la pérdida de sesiones persistentes). Puede utilizar el historial de actividad para verificar una actividad de escalado para un grupo de escalado automático.
-
Evalúe los patrones predecibles de su carga de trabajo y escale de forma proactiva para anticiparse a los cambios previstos y planeados en la demanda. Con el escalado predictivo, puede eliminar la necesidad de aprovisionar capacidad en exceso. Para más información, consulte Predictive Scaling with Amazon EC2 Auto Scaling
.
Recursos
Documentos relacionados:
-
Analyze user behavior using Amazon OpenSearch Service, Amazon Data Firehose and Kibana
-
Monitoreo de la carga de base de datos con Performance Insights en Amazon RDS
-
Introducing Native Support for Predictive Scaling with Amazon EC2 Auto Scaling
-
Introducing Karpenter - An Open-Source, High-Performance Kubernetes Cluster Autoscaler
Videos relacionados:
-
AWS re:Invent 2023 - Scaling on AWS for the first 10 million users
-
AWS re:Invent 2023 - Sustainable architecture: Past, present, and future
-
AWS re:Invent 2022 - Build a cost-, energy-, and resource-efficient compute environment
-
AWS re:Invent 2022 - Scaling containers from one user to millions
-
AWS re:Invent 2023 - Scaling FM inference to hundreds of models with Amazon SageMaker
-
AWS re:Invent 2023 - Harness the power of Karpenter to scale, optimize & upgrade Kubernetes
Ejemplos relacionados: