

# COST 9. ¿Cómo administra la demanda y aprovisiona los recursos?
<a name="cost-09"></a>

Para que la carga de trabajo tenga un gasto y un rendimiento equilibrados, compruebe que se utiliza todo aquello en lo que invierte y evite desaprovechar significativamente las instancias. Una métrica de uso sesgada en cualquier dirección tiene un efecto adverso en su organización, ya sea en los costos operativos (rendimiento degradado debido al sobreúso) o en los gastos de AWS desperdiciados (debido al sobreaprovisionamiento).

**Topics**
+ [COST09-BP01 Análisis de la demanda de la carga de trabajo](cost_manage_demand_resources_cost_analysis.md)
+ [COST09-BP02 Implementación de un búfer o una limitación para administrar la demanda](cost_manage_demand_resources_buffer_throttle.md)
+ [COST09-BP03 Suministro dinámico de recursos](cost_manage_demand_resources_dynamic.md)

# COST09-BP01 Análisis de la demanda de la carga de trabajo
<a name="cost_manage_demand_resources_cost_analysis"></a>

 Analice la demanda de la carga de trabajo a lo largo del tiempo. Compruebe que el análisis cubra las tendencias estacionales y represente con precisión las condiciones de servicio durante toda la vida útil de la carga de trabajo. El análisis debe reflejar los posibles beneficios; por ejemplo, el tiempo empleado es proporcional al costo de la carga de trabajo. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>

 El análisis de la demanda de la carga de trabajo para la computación en la nube implica comprender los patrones y las características de las tareas de computación que se inician en el entorno de la nube. Este análisis ayuda a los usuarios a optimizar la asignación de recursos, administrar los costos y verificar que el rendimiento cumpla con los niveles requeridos. 

 Debe conocer los requisitos de la carga de trabajo. Los requisitos de su organización deben indicar los tiempos de respuesta de la carga de trabajo frente a las solicitudes. El tiempo de respuesta se puede usar para determinar si la demanda está administrada o si el suministro de recursos debe cambiar para adaptarse a la demanda. 

 El análisis debe incluir la previsibilidad y la repetibilidad de la demanda, el ritmo y la cantidad de cambio en la demanda. Haga el análisis a lo largo de un periodo suficiente de tiempo para que incorpore variantes estacionales, como un procesamiento de final de mes o los picos de las vacaciones. 

 La actividad de análisis debe reflejar los posibles beneficios de la implementación del escalado. Consulte el costo total previsto del componente y cualquier incremento o descenso del uso, así como el costo durante el periodo de vida de la carga de trabajo. 

 Estos son algunos aspectos clave que se deben tener en cuenta al hacer un análisis de la demanda de la carga de trabajo para la computación en la nube: 

1.  **Métricas de uso y rendimiento de los recursos**: analice cómo se utilizan los recursos de AWS a lo largo del tiempo. Determine los patrones de uso en las horas punta y fuera de las horas punta para optimizar la asignación de recursos y las estrategias de escalado. Supervise las métricas de rendimiento, como los tiempos de respuesta, la latencia, el rendimiento y las tasas de error. Estas métricas ayudan a evaluar el estado general y la eficiencia de la infraestructura de la nube. 

1.  **Comportamiento del escalado de usuarios y aplicaciones**: comprenda el comportamiento de los usuarios y cómo afecta a la demanda de carga de trabajo. El análisis de los patrones del tráfico de usuarios ayuda a mejorar la entrega de contenido y la capacidad de respuesta de las aplicaciones. Analice cómo se escalan las cargas de trabajo a medida que aumenta la demanda. Determine si los parámetros de escalado automático están configurados de forma correcta y eficaz para gestionar las fluctuaciones de carga. 

1.  **Tipos de cargas de trabajo**: identifique los diferentes tipos de cargas de trabajo que se ejecutan en la nube, como el procesamiento por lotes, el procesamiento de datos en tiempo real, las aplicaciones web, las bases de datos o el machine learning. Cada tipo de carga de trabajo puede tener requisitos de recursos y perfiles de rendimiento diferentes. 

1.  **Acuerdos de nivel de servicio (SLA)**: compare el rendimiento real con los SLA para garantizar el cumplimiento e identificar las áreas que necesitan mejoras. 

 Puede utilizar [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) para recopilar métricas y hacer un seguimiento de ellas, supervisar archivos de registros, establecer alarmas y reaccionar automáticamente a los cambios en sus recursos AWS. También puede utilizar Amazon CloudWatch para obtener visibilidad de todo el sistema sobre la utilización de recursos, el rendimiento de las aplicaciones y el estado de funcionamiento. 

 Con [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/), puede aprovisionar sus recursos conforme a las prácticas recomendadas para mejorar el rendimiento y la fiabilidad del sistema, aumentar la seguridad y buscar oportunidades para ahorrar dinero. También puede desactivar las instancias que no son de producción y utilizar Amazon CloudWatch y Auto Scaling para adaptarlas a los aumentos o reducciones de la demanda. 

 Por último, puede utilizar [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) o [Quick](https://aws.amazon.com/quicksight/) con el archivo de AWS Cost and Usage Report (CUR) o los registros de la aplicación para hacer un análisis avanzado de la demanda de la carga de trabajo. 

 En general, un análisis integral de la demanda de la carga de trabajo permite a las organizaciones tomar decisiones informadas sobre el aprovisionamiento, el escalado y la optimización de los recursos, lo que se traduce en un mejor rendimiento, rentabilidad y satisfacción de los usuarios. 

### Pasos para la implementación
<a name="implementation-steps"></a>
+  **Análisis de los datos de la carga de trabajo existente:** analice los datos de la carga de trabajo existente, las versiones anteriores de la carga de trabajo o los patrones de uso previstos. Utilice Amazon CloudWatch, los archivos de registro y los datos de supervisión para obtener información sobre cómo se utilizó la carga de trabajo. Analice un ciclo completo de la carga de trabajo y recopile datos de los cambios estacionales, como los eventos de final de mes o de final de año. El esfuerzo reflejado en este análisis debe mostrar las características de la carga de trabajo. Debe ponerse mayor empeño en las cargas de trabajo de mayor valor con mayores cambios en la demanda. Debe ponerse menor empeño en las cargas de trabajo de menor valor con menores cambios en la demanda. 
+  **Previsión de los factores externos:** reúnase con miembros de equipos de toda la organización que puedan influir en la demanda de la carga de trabajo o cambiarla. Estos equipos suelen ser los de Ventas, Marketing o Desarrollo empresarial. Colabore con ellos para conocer los ciclos en los que operan y si hay eventos especiales que puedan cambiar la demanda de la carga de trabajo. Haga una previsión de la demanda de la carga de trabajo con estos datos. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 
+  [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/) 
+  [AWS X-Ray](https://aws.amazon.com/xray/) 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Instance Scheduler](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Getting started with Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) 
+  [Quick](https://aws.amazon.com/quicksight/) 

 **Ejemplos relacionados:** 
+  [Monitor, Track and Analyze for cost optimization](https://aws.amazon.com/aws-cost-management/aws-cost-optimization/monitor-track-and-analyze/) 
+  [Searching and analyzing logs in CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/cloudwatch-search-analysis.html) 

# COST09-BP02 Implementación de un búfer o una limitación para administrar la demanda
<a name="cost_manage_demand_resources_buffer_throttle"></a>

 El almacenamiento en búfer y la limitación modifican la demanda de la carga de trabajo y suavizan los picos. Implemente limitaciones cuando sus clientes lleven a cabo reintentos. Implemente el almacenamiento en búfer para almacenar la solicitud y aplazar el procesamiento para más adelante. Verifique que las limitaciones y los búferes se hayan diseñado de tal manera que los clientes reciban una respuesta en el tiempo requerido. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>

 La implementación de un búfer o limitación es crucial en la computación en la nube para administrar la demanda y reducir la capacidad aprovisionada necesaria para la carga de trabajo. Para conseguir un rendimiento óptimo, es esencial evaluar la demanda total, incluidos los picos, el ritmo de cambio en las solicitudes y el tiempo de respuesta necesario. Cuando los clientes tienen la posibilidad de reenviar sus solicitudes, es práctico aplicar la limitación. Por el contrario, para los clientes que carecen de funcionalidades de reintento, lo ideal es implementar una solución de búfer. Estos búferes agilizan la afluencia de solicitudes y optimizan la interacción de las aplicaciones con diferentes velocidades operativas. 

![\[Curva de demanda con dos picos distintos que requieren una elevada capacidad aprovisionada\]](http://docs.aws.amazon.com/es_es/wellarchitected/latest/framework/images/provisioned-capacity-1.png)


 Supongamos que tenemos una carga de trabajo con la curva de demanda que se muestra en la imagen anterior. Esta carga de trabajo tiene dos picos y, para gestionarlos, se aprovisiona la capacidad de recursos que muestra la línea naranja. Los recursos y la energía utilizados para esta carga de trabajo no están indicados en el área situada debajo de la curva de demanda, sino en el área situada debajo de la línea de capacidad aprovisionada, ya que esta capacidad es la que se necesita para gestionar esos dos picos. El aplanamiento de la curva de demanda de la carga de trabajo puede ayudarle a reducir la capacidad aprovisionada para una carga de trabajo y a reducir su impacto medioambiental. Para suavizar el pico, considere la posibilidad de implementar una solución de limitación o almacenamiento en búfer. 

 Vamos a profundizar en las limitaciones y el almacenamiento en búfer para entenderlos mejor. 

 **Limitación:** si la fuente de la demanda tiene capacidad de reintento, puede implementar la limitación. La limitación le dice al origen que, si no puede atender la solicitud en ese momento, debe intentarlo más tarde. El origen espera un tiempo y vuelve a intentar la solicitud. Implementar una limitación tiene la ventaja de que se limita la cantidad máxima de recursos y costos de la carga de trabajo. En AWS, puede utilizar [Amazon API Gateway](https://aws.amazon.com/api-gateway/) para implementar la limitación. 

 **Basado en búfer:** un enfoque basado en búfer utiliza *productores* (componentes que envían mensajes a la cola), *consumidores* (componentes que reciben los mensajes de la cola) y una *cola* (que contiene los mensajes) para almacenar los mensajes. De este modo, los consumidores pueden leer y procesar los mensajes, lo que permite que dichos mensajes se ejecuten a la velocidad que cumpla con los requisitos empresariales de los consumidores. Al utilizar una metodología centrada en los búferes, los mensajes de los productores se alojan en colas o secuencias, listos para que los consumidores accedan a ellos a un ritmo que se ajuste a sus demandas operativas. 

En AWS, puede elegir entre varios servicios para implementar un enfoque basado en almacenamiento en búfer. [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/) es un servicio administrado que incorpora colas que permiten a un solo consumidor leer mensajes individuales. [Amazon Kinesis](https://aws.amazon.com/kinesis/) ofrece una secuencia que permite que muchos consumidores lean los mismos mensajes.

 El almacenamiento en búfer y las limitaciones pueden suavizar cualquier pico al modificar la demanda de la carga de trabajo. Utilice limitaciones cuando los clientes vuelvan a intentar efectuar acciones y utilice el almacenamiento en búfer para retener la solicitud y procesarla más adelante. Al trabajar con un enfoque basado en búfer, diseñe su carga de trabajo para atender la solicitud en el tiempo requerido y verifique que pueda gestionar las solicitudes duplicadas. Analice la demanda general, la tasa de cambio y el tiempo de respuesta requerido para dimensionar correctamente la limitación o el búfer requeridos. 

### Pasos para la implementación
<a name="implementation-steps"></a>
+ **Analice los requisitos del cliente:** analice las solicitudes del cliente para determinar si puede llevar a cabo reintentos. Para los clientes que no puedan llevarlos a cabo, deberán implementarse búferes. Analice la demanda general, el ritmo de cambio y el tiempo de respuesta requerido para determinar el tamaño de la limitación o del búfer requeridos.
+ **Implemente un búfer o una limitación:** implemente un búfer o una limitación en la carga de trabajo. Una cola, como Amazon Simple Queue Service (Amazon SQS), puede proporcionar un búfer a los componentes de la carga de trabajo. Amazon API Gateway puede proporcionar limitación a los componentes de la carga de trabajo. 

## Recursos
<a name="resources"></a>

 **Prácticas recomendadas relacionadas:** 
+ [SUS02-BP06 Implementación del almacenamiento en búfer o la limitación para aplanar la curva de demanda](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sus_sus_user_a7.html)
+ [REL05-BP02 Limitación de las solicitudes ](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_mitigate_interaction_failure_throttle_requests.html)

 **Documentos relacionados:** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Instance Scheduler](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Amazon API Gateway](https://aws.amazon.com/api-gateway/) 
+  [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) 
+  [Getting started with Amazon SQS](https://aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [Amazon Kinesis](https://aws.amazon.com/kinesis/) 

 **Videos relacionados:** 
+ [Choosing the Right Messaging Service for Your Distributed App](https://www.youtube.com/watch?v=4-JmX6MIDDI)

 **Ejemplos relacionados:** 
+ [Managing and monitoring API throttling in your workloads](https://aws.amazon.com/blogs/mt/managing-monitoring-api-throttling-in-workloads/)
+ [ Throttling a tiered, multi-tenant REST API at scale using API Gateway ](https://aws.amazon.com/blogs/architecture/throttling-a-tiered-multi-tenant-rest-api-at-scale-using-api-gateway-part-1/)
+ [Enabling Tiering and Throttling in a Multi-Tenant Amazon EKS SaaS Solution Using Amazon API Gateway](https://aws.amazon.com/blogs/apn/enabling-tiering-and-throttling-in-a-multi-tenant-amazon-eks-saas-solution-using-amazon-api-gateway/)
+ [ Application integration Using Queues and Messages ](https://aws.amazon.com/blogs/architecture/application-integration-using-queues-and-messages/)

# COST09-BP03 Suministro dinámico de recursos
<a name="cost_manage_demand_resources_dynamic"></a>

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
<a name="implementation-guidance"></a>

 Hay varias formas en que los clientes de AWS pueden aumentar los recursos disponibles para sus aplicaciones y suministrar recursos para satisfacer la demanda. Una de estas opciones consiste en utilizar AWS Instance Scheduler, que automatiza el inicio y la detención de instancias de Amazon Elastic Compute Cloud (Amazon EC2) y de Amazon Relational Database Service (Amazon RDS). La otra opción es usar AWS Auto Scaling, que le permite escalar automáticamente los recursos de computación en función de la demanda de la aplicación o servicio. Suministrar recursos en función de la demanda le permitirá pagar únicamente por los recursos que utilice y reducir los costos, ya que solo lanza los recursos cuando se necesitan y los cancela cuando no. 

 [AWS Instance Scheduler](https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/) le permite configurar la detención y el inicio de sus instancias de Amazon EC2 y Amazon RDS en momentos definidos para que pueda satisfacer la demanda de los mismos recursos según un patrón temporal coherente; por ejemplo, que todos los días los usuarios accedan a las ocho de la mañana a instancias de Amazon EC2 que no se necesitan después de las seis de la tarde. Esta solución contribuye a reducir los costos operativos, ya que se detienen los recursos que no están en uso y se ponen en marcha cuando se necesitan. 

![\[Diagrama en el que se muestra la optimización de costos mediante AWS Instance Scheduler.\]](http://docs.aws.amazon.com/es_es/wellarchitected/latest/framework/images/instance-scheduler-diagram.png)


 

También puede configurar fácilmente los horarios de sus instancias de Amazon EC2 en todas sus cuentas y regiones con una interfaz de usuario (IU) sencilla mediante la configuración rápida de AWS Systems Manager. Puede programar instancias de Amazon EC2 o Amazon RDS con AWS Instance Scheduler y detener e iniciar las instancias existentes. Sin embargo, no puede detener ni iniciar instancias que formen parte de su grupo de escalado automático (ASG) ni que administren servicios como Amazon Redshift o Amazon OpenSearch Service. Los grupos de escalado automático tienen su propia programación para las instancias del grupo y estas instancias se crean. 

[AWS Auto Scaling](https://aws.amazon.com/autoscaling/) lo ayuda a ajustar la capacidad para mantener un rendimiento predecible y estable al menor costo posible para satisfacer los cambios en la demanda. Se trata de un servicio gratuito y totalmente administrado para escalar la capacidad de su aplicación que se integra con las instancias de Amazon EC2 y flotas de spot, Amazon ECS, Amazon DynamoDB y Amazon Aurora. El escalado automático detecta los recursos automáticamente, lo que lo 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 costos, o un equilibrio entre ambos, y proporciona escalado predictivo para ayudar en los picos que se producen periódicamente. 

 Hay varias opciones de escalado disponibles para escalar su grupo de escalado automático: 
+  Mantener los niveles de instancia actuales en todo momento 
+  Escalar manualmente 
+  Escalado según una programación 
+  Escalado basado en la demanda 
+  Usar el escalado predictivo 

 Existen diferentes políticas de escalado automático. Se pueden clasificar en políticas de escalado dinámicas y programadas. Las políticas dinámicas son escalados manuales o dinámicos, que pueden ser programados o predictivos. Puede utilizar políticas de escalado para un escalado dinámico, programado y predictivo. También puede usar métricas y alarmas de [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) para activar eventos de escalado de su carga de trabajo. Le recomendamos que utilice [plantillas de lanzamiento](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html) que le permiten acceder a las últimas características y mejoras. No todas las funciones de escalado automático están disponibles cuando se utilizan configuraciones de lanzamiento. Por ejemplo, no puede crear un grupo de Auto Scaling que lance instancias de spot y bajo demanda o que especifique varios tipos de instancia. Debe utilizar una plantilla de lanzamiento para configurar estas características. Cuando utilice plantillas de lanzamiento, le recomendamos que haga un control de versiones en cada una de ellas. Con el control de versiones de plantillas de lanzamiento, puede crear un subconjunto del conjunto completo de parámetros. A continuación, puede reutilizarlo para crear otras versiones de la misma plantilla de lanzamiento. 

 Puede usar AWS Auto Scaling o incorporar el escalado en su código con las [API o SDK de AWS](https://aws.amazon.com/developer/tools/). Esto reduce los costos generales de la carga de trabajo al eliminar el costo operativo de aplicar los cambios manualmente en su entorno. Además, los cambios se pueden aplicar mucho más rápido. De este modo, también se adapta la dotación de recursos de la carga de trabajo a su demanda en cualquier momento. Para seguir esta práctica recomendada y suministrar recursos de forma dinámica a su organización, debe comprender el escalado horizontal y vertical en la Nube de AWS, así como la naturaleza de las aplicaciones que se ejecutan en las instancias de Amazon EC2. Es mejor que su equipo de administración financiera en la nube colabore con los equipos técnicos para seguir esta práctica recomendada. 

 [Elastic Load Balancing (Elastic Load Balancing)](https://aws.amazon.com/elasticloadbalancing/) lo ayuda a escalar mediante la distribución de la demanda entre varios recursos. Mediante ASG y Elastic Load Balancing, puede administrar las solicitudes entrantes mediante el enrutamiento óptimo del tráfico para que ninguna instancia se sobrecargue en un grupo de escalado automático. Las solicitudes se distribuirían entre todos los destinatarios de un grupo objetivo por turnos, sin tener en cuenta la capacidad ni la utilización. 

 Las métricas habituales pueden ser métricas de Amazon EC2 estándar, como el uso de la CPU, el rendimiento de la red y la latencia de solicitud y respuesta observada de Elastic Load Balancing. 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 la aplicación en la carga de trabajo. Para explicar cómo satisfacer la demanda de forma dinámica, vamos a agrupar el escalado automático en dos categorías (modelos de suministro basados en la demanda y modelos de suministro basados en el tiempo) y analizaremos en profundidad cada una de ellas. 

**Suministro basado en la demanda:** aproveche la elasticidad de la nube para suministrar recursos que satisfagan los cambios en la demanda utilizando el estado de la demanda casi en tiempo real. Para el suministro basado en la demanda, utilice las API o las características del servicio para cambiar mediante programación la cantidad de recursos en la nube de su arquitectura. De esta forma, puede escalar componentes en su arquitectura y aumentar la cantidad de recursos durante los picos de demanda para mantener el rendimiento, así como disminuir la capacidad cuando la demanda disminuya para reducir los costos. 

![\[Diagrama en el que se describen las políticas de escalado basadas en la demanda, como el escalado simple o por pasos y el seguimiento de objetivos.\]](http://docs.aws.amazon.com/es_es/wellarchitected/latest/framework/images/demand-based-supply.png)


 
+  **Escalado sencillo o por pasos:** supervisa las métricas y agrega o elimina instancias de acuerdo con los pasos definidos manualmente por los clientes. 
+  **Seguimiento de objetivos:** mecanismo de control similar a un termostato que agrega o elimina instancias automáticamente para mantener las métricas en un objetivo definido por el cliente. 

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.

**Suministro basado en el tiempo:** el enfoque basado en el tiempo adapta la capacidad de los recursos a una demanda que es 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 el tiempo garantiza que los recursos estén disponibles en el momento específico en que se necesiten y que se puedan proporcionar sin retrasos debidos a los procedimientos de inicio y comprobaciones del sistema o de coherencia. Con el enfoque basado en el tiempo, puede brindar recursos adicionales o aumentar la capacidad durante los periodos de mayor actividad.

![\[Diagrama en el que se describen las políticas de escalado basadas en el tiempo, como el escalado programado y predictivo.\]](http://docs.aws.amazon.com/es_es/wellarchitected/latest/framework/images/time-based-supply.png)


 

Puede utilizar el escalado automático programado o predictivo para implementar un enfoque basado en el tiempo. Las cargas de trabajo se pueden programar para escalarse o reducirse horizontalmente en momentos definidos (como el inicio del horario laboral). De este modo, los recursos están disponibles cuando lleguen los usuarios o aumente la demanda. El escalado predictivo utiliza patrones para escalar horizontalmente, mientras que el escalado programado utiliza tiempos predefinidos para escalar horizontalmente. También puede utilizar una [estrategia de selección de tipo de instancia basada en atributos (ABS)](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) en los grupos de escalado automático (ASG), lo que le permite expresar sus requisitos de instancia como un conjunto de atributos, por ejemplo, vCPU, memoria y almacenamiento. De este modo, también puede utilizar automáticamente los tipos de instancia de nueva generación cuando se lancen y acceder a una gama más amplia de capacidad con las instancias de spot de Amazon EC2. Flota de Amazon EC2 y Amazon EC2 Auto Scaling seleccionan y lanzan instancias que se ajusten a los atributos especificados, por lo que no es necesario elegir manualmente los tipos de instancia. 

También puede utilizar [las API y los SDK de AWS](https://aws.amazon.com/developer/tools/) y [AWS CloudFormation](https://aws.amazon.com/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 las 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 mediante el cambio del 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 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 el 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 proporcione cobertura.

## Pasos para la implementación
<a name="implementation-steps"></a>
+ **Configuración del escalado programado:** 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 son suficientemente rápidas 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. Para configurar la programación en función del tiempo, puede utilizar el escalado predictivo del escalado programado para aumentar por adelantado el número de instancias de Amazon EC2 de sus grupos de escalado automático en función de los cambios de carga previstos o predecibles.
+  **Configuración del escalado predictivo:** el escalado predictivo le permite aumentar el número de instancias de Amazon EC2 en su grupo de escalado automático antes de los patrones diarios y semanales de flujos de tráfico. Si tiene picos de tráfico regulares y aplicaciones que tardan mucho en iniciarse, debería plantearse el uso del escalado predictivo. El escalado predictivo puede ayudarlo a escalar más rápidamente mediante la inicialización de la capacidad antes de la carga prevista si se compara con el escalado dinámico únicamente, que es de naturaleza reactiva. Por ejemplo, si los usuarios empiezan a utilizar su carga de trabajo con el inicio del horario laboral y no la utilizan fuera de dicho horario, el escalado predictivo puede agregar capacidad antes del horario laboral, lo que elimina el retraso del escalado dinámico para reaccionar ante los cambios en el tráfico. 
+ **Configuración del escalado automático dinámico:** use el escalado automático 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 que se lance en los niveles de recursos correctos y verifique que la carga de trabajo se escala en el tiempo requerido. Puede lanzar y escalar automáticamente una flota de instancias en diferido e instancias de spot en un solo grupo de Auto Scaling. Además de los descuentos relacionados con las instancias de spot, puede utilizar instancias reservadas o un Savings Plan para conseguir mejores precios de los habituales en las instancias en diferido. La combinación de todos estos factores le permite optimizar el ahorro de costos en las instancias de Amazon EC2, a la vez que se asegura de obtener la escala y el rendimiento deseados para su aplicación.

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Instance Scheduler](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  Escalar el tamaño de un grupo de escalado automático 
+  [Getting Started with Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html) 
+  [Getting started with Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [Scheduled Scaling for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html) 
+ [Predictive scaling for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html)

 **Videos relacionados:** 
+ [Target Tracking Scaling Policies for Auto Scaling](https://www.youtube.com/watch?v=-RumeaoPB2M)
+ [AWS Instance Scheduler](https://www.youtube.com/watch?v=nTLEyo2NzUs)

 **Ejemplos relacionados:** 
+ [Attribute based Instance Type Selection for Auto Scaling for Amazon EC2 Fleet ](https://aws.amazon.com/blogs/aws/new-attribute-based-instance-type-selection-for-ec2-auto-scaling-and-ec2-fleet/)
+ [ Optimizing Amazon Elastic Container Service for cost using scheduled scaling ](https://aws.amazon.com/blogs/containers/optimizing-amazon-elastic-container-service-for-cost-using-scheduled-scaling/)
+ [ Predictive Scaling with Amazon EC2 Auto Scaling ](https://aws.amazon.com/blogs/compute/introducing-native-support-for-predictive-scaling-with-amazon-ec2-auto-scaling/)
+ [¿Cómo utilizo Instance Scheduler con CloudFormation para programar instancias de Amazon EC2?](https://aws.amazon.com/premiumsupport/knowledge-center/stop-start-instance-scheduler/)