SUS02-BP01 Escalar la infraestructura de la carga de trabajo dinámicamente - AWS Well-Architected Framework

SUS02-BP01 Escalar 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 se escala la infraestructura con la carga de usuarios.

  • La infraestructura se escala manualmente todo el tiempo.

  • Deja la capacidad aumentada después de un evento de ajuste de escala en lugar de volver a desescalar verticalmente.

Ventajas de establecer esta práctica recomendada: la configuración y las pruebas de la elasticidad de la carga de trabajo contribuyen a ajustar de forma eficaz la oferta de recursos en la nube a la demanda y a evitar el exceso de capacidad aprovisionada. 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 su métrica de escalado y aumente o reduzca de forma automática la capacidad a medida que la necesite.

  • Escalamiento predictivo: desescale horizontalmente para prever las tendencias diarias y semanales.

  • Enfoque basado en la programación: configure su propia programación según los cambios de carga predecibles.

  • Escalamiento de servicios: elija servicios (como los que son sin servidor) que se escalan de forma nativa por diseño o proporcione el escalamiento automático como una característica.

Identifique los períodos de uso reducido o inexistente y escale los recursos en consonancia para eliminar el exceso de capacidad y mejorar la eficiencia.

Pasos para la aplicació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 escalamiento automático o como características del servicio. AWS proporciona una serie de mecanismos de escalamiento automático para garantizar que las cargas de trabajo puedan desescalarse 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 escalamiento automático:

    Auto scaling mechanism Where to use

    Amazon EC2 Auto Scaling

    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.

    Application Auto Scaling

    Se usa para escalar automáticamente los recursos de servicios de AWS individuales más allá de Amazon EC2, como funciones de Lambda o servicios de Amazon Elastic Container Service (Amazon ECS).

    Cluster Autoscaler de Kubernetes

    Se usa para escalar automáticamente clústeres de Kubernetes en AWS.

  • A menudo se habla de escalamiento en relación con servicios de computación como instancias de Amazon EC2 o funciones AWS Lambda. Considere la configuración de servicios no computacionales como unidades de capacidad de lectura y escritura de Amazon DynamoDB o particiones de Amazon Kinesis Data Streams para ajustarse a la demanda.

  • Verifique que las métricas para escalar o desescalar verticalmente se validan con respecto al tipo de 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. Puede usar una métrica personalizada (como la utilización de la memoria) para su política de escalamiento si es necesario. 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.

  • Utilice el escalamiento dinámico en lugar del manual para su grupo de Auto Scaling. También le recomendamos que use las políticas de escalamiento de seguimiento de destino en el escalamiento dinámico.

  • Verifique que los despliegues de la carga de trabajo puedan manejar los eventos de escalamiento y desescalamiento horizontales. Cree escenarios de prueba para los eventos de escalamiento 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 actividades para verificar una actividad de escalamiento correspondiente a 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 detalles, consulte Escalamiento predictivo con Amazon EC2 Auto Scaling.

Recursos

Documentos relacionados:

Vídeos relacionados:

Ejemplos relacionados: