COST09-BP03 Aprovisionar recursos de forma dinámica - Pilar de optimización de costos

COST09-BP03 Aprovisionar recursos de forma dinámica

Los recursos se aprovisionan de manera planificada. Esto puede basarse en la demanda (por ejemplo, mediante el escalado automático) o en el tiempo, donde la demanda es predecible y los recursos se proporcionan en función del tiempo. Estos métodos conllevan la menor cantidad de aprovisionamiento excesivo o insuficiente.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: Bajo

Guía para la implementación

Puede usar AWS Auto Scalingo incorporar el escalado en su código con la API o los SDK de AWS. Esto reduce los costes generales de la carga de trabajo al eliminar el coste operativo de realizar los cambios manualmente en su entorno. Además es mucho más rápido. De este modo, la carga de trabajo se aprovisionará mejor en función de la demanda en todo momento.

Aprovisionamiento basado en la demanda: saque provecho de la elasticidad de la nube para aprovisionar recursos que satisfagan el cambio en la demanda. Con las API o las funciones del servicio, puede variar de forma dinámica mediante programación la cantidad de recursos de la nube en su arquitectura. Así puede escalar componentes en su arquitectura y aumentar automáticamente la cantidad de recursos durante los picos de demanda a fin de mantener el rendimiento, así como disminuir la capacidad cuando la demanda disminuya para reducir los costos.

AWS Auto Scaling le ayuda a ajustar la capacidad para mantener un rendimiento predecible y estable al menor coste posible. Es un servicio totalmente administrado y gratis que se integra con las instancias de Amazon Elastic Compute Cloud (Amazon EC2) y las flotas de spot, Amazon Elastic Container Service (Amazon ECS), Amazon DynamoDB y Amazon Aurora.

Auto Scaling detecta los recursos automáticamente, lo que le ayuda a buscar recursos en su carga de trabajo que se pueden configurar. Además, tiene estrategias de escalado integradas para optimizar el rendimiento y los costes, o un equilibrio entre ambos, y proporciona escalado predictivo para ayudar en los picos que se producen regularmente.

Auto Scaling puede implementar escalado basado en la demanda, programado o manual. También puede usar las métricas y las alarmas de Amazon CloudWatch para desencadenar eventos de escalado para la carga de trabajo. Las métricas habituales pueden ser métricas de Amazon EC2 estándares, como el uso de la CPU, el rendimiento de la red y la solicitud observada de Elastic Load Balancing (ELB) o la latencia de respuesta. Si es posible, debe usar una métrica indicativa de la experiencia del cliente. Suele ser una métrica personalizada que se puede originar en el código de aplicaciones dentro de la carga de trabajo.

Al diseñar con un enfoque basado en la demanda, tenga en cuenta dos consideraciones clave. La primera: debe conocer la rapidez con la que necesita aprovisionar recursos nuevos. La segunda: tenga en cuenta que el tamaño del margen entre la oferta y la demanda cambiará. Debe estar preparado para poder hacer frente a la velocidad del cambio en la demanda y también a los errores de recursos.

ELB le ayuda a escalar al distribuir la demanda entre múltiples recursos. A medida que implementa más recursos, los añade al equilibrador de carga para asumir la demanda. Elastic Load Balancing admite las instancias de Amazon EC2, los contenedores, las direcciones IP y las funciones de AWS Lambda.

Aprovisionamiento basado en tiempo: el enfoque basado en tiempo adapta la capacidad de los recursos según la demanda que sea predecible o que esté bien definida por el tiempo. Normalmente, este enfoque no depende de los niveles de utilización de los recursos. El enfoque basado en tiempo garantiza que los recursos estén disponibles en el momento específico en que se necesiten y que se puedan proporcionar sin demoras por los procedimientos de inicio y comprobaciones del sistema o de consistencia. Con el enfoque basado en tiempo, puede brindar recursos adicionales o aumentar la capacidad durante los periodos de mayor actividad.

Puede usar el Auto Scaling programado para implementar un enfoque basado en el tiempo. Las cargas de trabajo se pueden programar para ampliar o reducir la capacidad en momentos definidos (como el inicio del horario laboral). De este modo, se garantiza que los recursos estén disponibles cuando aparezcan los usuarios o la demanda.

También puede aprovechar las API y los SDK de AWS y AWS CloudFormation para aprovisionar y retirar entornos completos de manera automática según los necesite. Este enfoque es ideal para los entornos de desarrollo o pruebas que se ejecutan únicamente en horarios laborales o periodos definidos.

Puede usar API para escalar el tamaño de los recursos dentro de un entorno (escalado vertical). Por ejemplo, puede escalar verticalmente una carga de trabajo de producción cambiando el tamaño o la clase de instancia. Para ello, hay que detener o iniciar la instancia y seleccionar el tamaño o la clase de instancia diferente. Esta técnica también se puede aplicar a otros recursos tales como los volúmenes elásticos de Amazon Elastic Block Store (Amazon EBS), los cuales se pueden modificar para aumentar el tamaño, ajustar el rendimiento (IOPS) o cambiar el tipo de volumen mientras están en uso.

Al diseñar con un enfoque basado en tiempo, tenga en cuenta dos consideraciones clave. La primera: ¿qué grado de consistencia presenta el patrón? La segunda: ¿en qué afectaría el patrón si cambiara? Puede aumentar la precisión de las predicciones mediante la supervisión de sus cargas de trabajo y el uso de la inteligencia empresarial. Si observa cambios considerables en el patrón de uso, puede ajustar los tiempos para asegurarse de que se brinde cobertura.

Pasos para la aplicación

  • Configurar una programación basada en el tiempo: en caso de cambios predecibles en la demanda, el escalado basado en el tiempo puede proporcionar el número correcto de recursos de manera oportuna. También es útil si la creación y configuración de recursos no es suficientemente rápida a la hora de responder a los cambios en la demanda. Use el análisis de las cargas de trabajo para configurar el escalado programado con AWS Auto Scaling.

  • Configurar Auto Scaling: use Amazon Auto Scaling para configurar el escalado según las métricas de carga de trabajo activas. Use los análisis y configure el escalado automático para iniciar en los niveles de recursos correctos y garantizar que la carga de trabajo se escale en el tiempo requerido.

Recursos

Documentos relacionados: