REL 7: ¿Cómo diseña la carga de trabajo para que se adapte a los cambios en la demanda?
Una carga de trabajo escalable proporciona elasticidad para agregar o eliminar recursos de forma automática, de manera que coincidan estrechamente con la demanda actual en cualquier momento específico.
Recursos
 AWS Auto Scaling: How Scaling Plans Work
 What Is Amazon EC2 Auto Scaling?
 Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
 What is Amazon CloudFront?
 Distributed Load Testing on AWS: simulate thousands of connected users
 Telling Stories About Little's Law
 AWS Marketplace: products that can be used with auto scaling
 APN Partner: partners that can help you create automated compute solutions
Prácticas recomendadas:
- 
               Utilice la automatización cuando adquiera o escale recursos: Cuando reemplace los recursos dañados o escale su carga de trabajo, automatice el proceso mediante los servicios administrados de AWS, como Amazon S3 y AWS Auto Scaling. Además, puede utilizar herramientas de terceros y los SDK de AWS para automatizar el escalado. 
- 
               Obtenga recursos cuando detecte errores en una carga de trabajo: Si la disponibilidad se ve afectada, escale los recursos en forma reactiva cuando sea necesario a fin de restaurar la disponibilidad de la carga de trabajo. 
- 
               Adquiera recursos cuando detecte que una carga de trabajo necesita más recursos: Escale los recursos de manera proactiva a fin de satisfacer las demandas y evitar que la disponibilidad se vea afectada. 
- 
               Realice pruebas de carga a su carga de trabajo: Adopte una metodología de prueba de carga para medir si la actividad de escalado cumplirá con los requisitos de la carga de trabajo. 
Plan de mejora
Utilice la automatización cuando adquiera o escale recursos
What is AWS Auto Scaling?
- Configure Auto Scaling en sus instancias y flotas de spot de Amazon EC2, las tareas
                     de Amazon ECS, las tablas y los índices de Amazon DynamoDB, las réplicas de Amazon
                     Aurora y los dispositivos de AWS Marketplace que correspondan.
 Managing throughput capacity automatically with DynamoDB Auto Scaling- Utilice las operaciones de la API de servicio para especificar las alarmas, las políticas de escalado y los tiempos de calentamiento y enfriamiento.
 
What is Elastic Load Balancing?
- Los balanceadores de carga de aplicaciones pueden distribuir la carga por ruta.
 What is an Application Load Balancer?- Configure un balanceador de carga de aplicaciones para distribuir el tráfico hacia diferentes cargas de trabajo en función de la ruta con el nombre de dominio.
- Los balanceadores de carga de aplicaciones pueden utilizarse para distribuir cargas
                           de manera que se integren con AWS Auto Scaling para gestionar la demanda.
 Using a load balancer with an Auto Scaling group
 
- Los balanceadores de carga de red pueden distribuir la carga por conexión.
 What is a Network Load Balancer?- Configure un balanceador de carga de red para distribuir el tráfico hacia diferentes cargas de trabajo mediante TCP o a fin de tener un conjunto constante de direcciones IP para su carga de trabajo.
- Los balanceadores de carga de red pueden utilizarse para distribuir cargas de manera que se integren con AWS Auto Scaling para gestionar la demanda.
 
- Utilice Amazon Route 53 o un proveedor de DNS de confianza
 What is Amazon Route 53?
- Utilice Route 53 para gestionar sus distribuciones y balanceadores de carga de CloudFront.
                     - Determine los dominios y subdominios que va a gestionar.
- Cree conjuntos de registros adecuados mediante los registros ALIAS o CNAME.
 Working with records
 
- AWS Global Accelerator es un servicio que mejora la disponibilidad y el rendimiento
                     de su aplicación con usuarios locales o globales. Proporciona direcciones IP estáticas
                     que actúan como un punto de entrada fijo a los puntos de enlace de su aplicación en
                     una o varias regiones de AWS, como los balanceadores de carga de aplicaciones, de
                     red o instancias de Amazon EC2.
 What Is AWS Global Accelerator?
What is Amazon CloudFront?
- Configure las distribuciones de Amazon CloudFront para sus cargas de trabajo o utilice
                     una CDN de terceros.
                     - Puede limitar el acceso a sus cargas de trabajo para que solo sean accesibles desde CloudFront mediante el uso de los intervalos de IP para CloudFront en sus grupos de seguridad de punto de enlace o políticas de acceso.
 
Obtenga recursos cuando detecte errores en una carga de trabajo
- Utilice planes de escalado que son el componente central de AWS Auto Scaling. Es donde
                     configura un conjunto de instrucciones para escalar sus recursos. Si trabaja con AWS
                     CloudFormation o agrega etiquetas a los recursos de AWS, puede establecer planes de
                     escalado para diferentes conjuntos de recursos, por aplicación. AWS Auto Scaling proporciona
                     recomendaciones sobre estrategias de escalado personalizadas para cada recurso. Después
                     de crear su plan de escalado, AWS Auto Scaling combina métodos de escalado dinámico
                     y predictivo para respaldar su estrategia de escalado.
 AWS Auto Scaling: How Scaling Plans Work
- Amazon EC2 Auto Scaling lo ayuda a asegurarse de que tiene la cantidad adecuada de
                     instancias de Amazon EC2 disponibles para manejar la carga de su aplicación. Cree
                     colecciones de instancias de EC2, denominadas grupos de Auto Scaling. Puede especificar
                     la cantidad mínima de instancias en cada grupo de Auto Scaling y Amazon EC2 Auto Scaling
                     se asegura de que su grupo nunca disminuya de este tamaño. Puede especificar la cantidad
                     máxima de instancias en cada grupo de Auto Scaling y Amazon EC2 Auto Scaling se asegura
                     de que su grupo nunca supere este tamaño.
 What Is Amazon EC2 Auto Scaling?
- El escalado automático de Amazon DynamoDB utiliza el servicio de AWS Application Auto
                     Scaling para ajustar de forma dinámica la capacidad de rendimiento provisional en
                     su nombre, en respuesta a los patrones de tráfico reales. Esto permite que una tabla
                     o un índice secundario global aumente su capacidad de lectura y escritura provisional
                     para manejar aumentos repentinos de tráfico, sin necesidad de una limitación.
 Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
Adquiera recursos cuando detecte que una carga de trabajo necesita más recursos
- Calcule cuántos recursos informáticos necesitará (calcular la concurrencia) para manejar
                     una tasa de solicitud determinada
 Telling Stories About Little's Law
- Cuando tenga un patrón histórico de uso, establezca el escalado programado para Amazon
                     EC2 Auto Scaling
 Scheduled Scaling for Amazon EC2 Auto Scaling
- Utilice el escalado predictivo de AWS
 Predictive Scaling for EC2, Powered by Machine Learning
Realice pruebas de carga a su carga de trabajo
Distributed Load Testing on AWS: simulate thousands of connected users
- Identifique la combinación de solicitudes: Es posible que tenga combinaciones variadas de solicitudes, por lo que debe tener en cuenta los distintos plazos para identificar la combinación de tráfico.
- Implemente un controlador de carga: Puede usar un código personalizado, código abierto o software comercial para implementar un controlador de carga.
- Realice pruebas de carga mediante una capacidad reducida al principio: Observará algunos efectos inmediatos al controlar la carga hacia una capacidad menor, que puede llegar a ser tan reducida como una instancia o un contenedor.
- Realice pruebas de carga con una capacidad más grande: Los efectos serán diferentes en una carga distribuida, por lo que debe probarse con un entorno de producto lo más cercano posible.
