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.