Escalado automático y ubicación de tareas de instancias administradas de Amazon ECS
Instancias administradas de Amazon ECS utiliza algoritmos inteligentes para escalar automáticamente la capacidad del clúster y colocar las tareas de manera eficiente en toda la infraestructura. Entender cómo funcionan estos algoritmos lo ayuda a optimizar las configuraciones de los servicios y a solucionar problemas de comportamiento de ubicación.
Algoritmo de ubicación de tareas
Instancias administradas de Amazon ECS utiliza un algoritmo de ubicación sofisticado que equilibra la disponibilidad, la utilización de los recursos y los requisitos de la red al programar tareas.
Distribución por zonas de disponibilidad
De forma predeterminada, instancias administradas de Amazon ECS prioriza la disponibilidad al distribuir las tareas entre varias zonas de disponibilidad:
-
En el caso de los servicios con varias tareas, instancias administradas de Amazon ECS garantiza la distribución en al menos tres instancias en diferentes zonas de disponibilidad siempre que sea posible
-
Este comportamiento proporciona tolerancia a errores, pero puede provocar una menor utilización de los recursos por instancia
-
La distribución por zonas de disponibilidad tiene prioridad sobre la optimización del empaquetado de contenedores
Comportamiento del empaquetado de contenedores
Si bien instancias administradas de Amazon ECS puede empaquetar en contenedores para maximizar el uso de los recursos, este comportamiento depende de la configuración de la red:
-
Para realizar el empaquetado de contenedores, configure el servicio para que utilice una única subred
-
Las configuraciones de varias subredes priorizan la distribución de las zonas de disponibilidad por encima de la densidad de los recursos
-
Es más probable que se empaqueten contenedores durante la inicialización inicial del servicio que durante los eventos de escalado
Consideraciones sobre la densidad de ENI
En el caso de los servicios que utilizan el modo de red awsvpc, instancias administradas de Amazon ECS tiene en cuenta la densidad de la interfaz de red elástica (ENI) al tomar decisiones sobre la ubicación:
-
Cada tarea del modo
awsvpcrequiere una ENI específica -
Los tipos de instancias tienen diferentes límites de ENI que afectan a la densidad de tareas
-
Instancias administradas de Amazon ECS tiene en cuenta la disponibilidad de ENI al seleccionar las instancias de destino
nota
Continuamente se realizan mejoras en los cálculos de densidad de ENI para optimizar las decisiones de ubicación.
Lógica de decisiones del proveedor de capacidad
Los proveedores de capacidad de instancias administradas de Amazon ECS toman decisiones sobre el escalado y la ubicación en función de varios factores:
- Requisitos de recursos
-
Requisitos de CPU, memoria y red de las tareas pendientes
- Disponibilidad de instancias
-
Capacidad y utilización actuales en las instancias existentes
- Restricciones de red
-
Configuración de subred y disponibilidad de ENI
- Distribución de zonas de disponibilidad
-
Mantenimiento de la tolerancia a errores en varias zonas de disponibilidad
Opciones de configuración
Estrategia de selección de subredes
La configuración de subred afecta significativamente al comportamiento de ubicación de tareas:
- Varias subredes (predeterminado)
-
Prioriza la distribución por zonas de disponibilidad para lograr una alta disponibilidad
Puede resultar en una menor utilización de los recursos por instancia
Se recomienda para las cargas de trabajo de producción que necesitan tolerancia a errores
- Subred única
-
Permite el empaquetado de contenedores para una mayor utilización de los recursos
Reduce la tolerancia a errores al concentrar las tareas en una zona de disponibilidad
Adecuado para las cargas de trabajo de desarrollo o con optimización de costos
Consideraciones sobre el modo de red
El modo de red que elija afecta a las decisiones de ubicación:
-
Modo
awsvpc: cada tarea requiere una ENI específica, lo que limita la densidad de tareas por instancia -
Modo
host: las tareas utilizan la red del host directamente, y su ubicación depende principalmente de la disponibilidad de los recursos
Consideraciones sobre la arquitectura de CPU
El valor de cpuArchitecture que especifique en la definición de la tarea se utiliza para colocar las tareas en una arquitectura específica. Si no especifica un valor para cpuArchitecture, Amazon ECS intentará colocar las tareas en cualquier arquitectura de CPU disponible en función de la configuración del proveedor de capacidad. Puede especificar X86_64 o ARM64.
Resolución de problemas relacionados con la ubicación de tareas
Patrones de ubicación comunes
Comprender los patrones de ubicación esperados ayuda a distinguir el comportamiento normal de los posibles problemas:
- Distribución repartida
-
Tareas distribuidas en varias instancias con un uso parcial
Comportamiento normal cuando se utilizan varias subredes
Indica que se prioriza la disponibilidad por encima de la eficiencia de los recursos
- Ubicación concentrada
-
Varias tareas asignadas a un menor número de instancias con una mayor utilización
Se espera cuando se utiliza una configuración de subred única
Puede producirse durante el lanzamiento inicial del servicio
- Distribución desigual
-
Algunas instancias se utilizan mucho, mientras que otras permanecen infrautilizadas
Puede indicar límites de ENI o restricciones de recursos
Considere la posibilidad de revisar los tipos de instancias y la configuración de la red
Optimización del comportamiento de ubicación
Para optimizar la ubicación de las tareas en función de los requisitos específicos:
-
Evalúe los requisitos de disponibilidad según las necesidades de optimización de costos
-
Elija la configuración de subred adecuada según sus prioridades
-
Seleccione los tipos de instancias con la capacidad de ENI adecuada para su modo de red
-
Supervise los patrones de ubicación y ajuste la configuración según sea necesario
Prácticas recomendadas
-
Para las cargas de trabajo de producción: utilice varias subredes en diferentes zonas de disponibilidad para garantizar una alta disponibilidad y acepte la compensación en la utilización de los recursos
-
Para el desarrollo o las pruebas: considere la posibilidad de configurar una sola subred para maximizar la utilización de los recursos y reducir los costos
-
Para el modo
awsvpc: elija tipos de instancias que tengan suficiente capacidad de ENI para evitar restricciones de ubicación -
Para la optimización de costos: supervise los patrones de utilización y ajuste la configuración del servicio para equilibrar la disponibilidad y la eficiencia
-
Para la solución de problemas: revise la configuración de la subred y el modo de red cuando investigue patrones de ubicación inesperados