Gestión de las cuotas de servicio de Amazon ECS y los límites de las API
Amazon ECS está integrado con varios Servicios de AWS, como Elastic Load Balancing, AWS Cloud Map y Amazon EC2. Con esta estrecha integración, Amazon ECS incluye varias características, como el equilibrio de carga de servicios, Service Connect, la creación de redes de tareas y el escalado automático de clústeres. Amazon ECS y los demás Servicios de AWS con los que se integra mantienen las cuotas de servicio y los límites de velocidad de las API para garantizar un rendimiento y una utilización uniformes. Estas cuotas de servicio también evitan el aprovisionamiento accidental de más recursos de los necesarios y protegen contra acciones malintencionadas que podrían aumentar su factura.
Si se familiariza con las cuotas de servicio y los límites de velocidad de las API de AWS, podrá planificar el escalado de sus cargas de trabajo sin preocuparse por una degradación inesperada del rendimiento. Para obtener más información, consulte Request throttling for the Amazon ECS API.
Al escalar sus cargas de trabajo en Amazon ECS, le recomendamos que tenga en cuenta la siguiente cuota de servicio.
-
AWS Fargate tiene cuotas que limitan el número de tareas que se ejecutan simultáneamente en cada Región de AWS. Existen cuotas para las tareas de spot de Fargate y bajo demanda en Amazon ECS. Cada cuota de servicio también incluye todos los pods de Amazon EKS que ejecute en Fargate.
-
Para las tareas que se ejecutan en instancias de Amazon EC2, el número máximo de instancias de Amazon EC2 que puede registrar para cada clúster es de 5000. Si utiliza el escalado automático de clústeres de Amazon ECS con un proveedor de capacidad del grupo de escalado automático o si administra las instancias de Amazon EC2 para su clúster por su cuenta, esta cuota podría convertirse en un obstáculo para la implementación. Si necesita más capacidad, puede crear más clústeres o solicitar un aumento de la cuota de servicio.
-
Si utiliza el escalado automático de clústeres de Amazon ECS con un proveedor de capacidad del grupo de escalado automático, al escalar sus servicios tenga en cuenta la cuota de
Tasks in the PROVISIONING state per cluster
. Esta cuota es la cantidad máxima de tareas en el estadoPROVISIONING
para cada clúster para las que los proveedores de capacidad pueden aumentar la capacidad. Si lanza un gran número de tareas al mismo tiempo, puede cumplir fácilmente con esta cuota. Un ejemplo es si implementa simultáneamente decenas de servicios, cada uno con cientos de tareas. Cuando esto sucede, el proveedor de capacidad debe lanzar nuevas instancias de contenedor para colocar las tareas cuando el clúster no tiene suficiente capacidad. Mientras el proveedor de capacidad lanza instancias de Amazon EC2 adicionales, es probable que el programador de servicios de Amazon ECS continúe lanzando tareas en paralelo. Sin embargo, esta actividad podría verse limitada debido a la capacidad insuficiente del clúster. El programador de servicios de Amazon ECS implementa una estrategia de limitación exponencial y de retroceso para volver a intentar la ubicación de las tareas a medida que se lanzan nuevas instancias de contenedores. Como resultado, es posible que los tiempos de implementación o escalado horizontal sean más lentos. Para evitar esta situación, puede planificar las implementaciones de sus servicios en una de las siguientes opciones. Implemente una gran cantidad de tareas que no requieran aumentar la capacidad del clúster o mantenga la capacidad sobrante del clúster para el lanzamiento de nuevas tareas.
Además de tener en cuenta la cuota de servicio de Amazon ECS al escalar sus cargas de trabajo, considere también la cuota de servicio para los demás Servicios de AWS que estén integrados con Amazon ECS.
Elastic Load Balancing
Puede configurar los servicios de Amazon ECS para que utilicen Elastic Load Balancing a fin de distribuir el tráfico de manera uniforme entre las tareas. Para obtener más información y las prácticas recomendadas sobre cómo seleccionar un equilibrador de carga, consulte Uso del equilibrador de carga para distribuir el tráfico de servicio de Amazon ECS.
Cuotas de servicio de Elastic Load Balancing
Cuando escale sus cargas de trabajo, tenga en cuenta las siguientes cuotas de servicio de Elastic Load Balancing. La mayoría de las cuotas de servicio de Elastic Load Balancing son ajustables y se puede solicitar un aumento en la consola de Service Quotas.
Equilibrador de carga de aplicación
Cuando utilice un equilibrador de carga de aplicación, en función de su caso de uso, es posible que tenga que solicitar un aumento de cuota para:
-
La cuota de
Targets per Application Load Balancer
, que es el número de destinos detrás de su equilibrador de carga de aplicación. -
La cuota de
Targets per Target Group per Region
, que es el número de destinos detrás de sus grupos de destino.
Para obtener más información, consulte Quotas for your Application Load Balancers en la Guía del usuario de los equilibradores de carga de aplicaciones.
Network Load Balancer
Existen limitaciones más estrictas en cuanto a la cantidad de destinos que puede registrar con un equilibrador de carga de red. Cuando utilice un equilibrador de carga de red, a menudo querrá habilitar la compatibilidad entre zonas, lo que conlleva limitaciones de escalado adicionales en Targets per Availability Zone Per
Network Load Balancer
el número máximo de destinos por zona de disponibilidad para cada equilibrador de carga de red. Para obtener más información, consulte Quotas for your Network Load Balancers en la Guía del usuario para equilibradores de carga de red.
Limitación de la API de Elastic Load Balancing
Al configurar un servicio de Amazon ECS para usar un equilibrador de carga, se deben aprobar las comprobaciones de estado del grupo de destino antes de que se considere que el servicio está en buen estado. Para llevar a cabo estas comprobaciones de estado, Amazon ECS invoca las operaciones de la API de Elastic Load Balancing en su nombre. Si tiene una gran cantidad de servicios configurados con equilibradores de carga en su cuenta, podría ralentizar las implementaciones de servicios debido a una posible limitación específica de las operaciones de las API RegisterTarget
, DeregisterTarget
y DescribeTargetHealth
de Elastic Load Balancing. Cuando se produce una limitación, se producen errores de limitación en los mensajes de eventos del servicio de Amazon ECS.
Si experimenta una limitación de la API de AWS Cloud Map, puede contactar con AWS Support para obtener orientación sobre cómo aumentar sus límites de limitación de la API de AWS Cloud Map. Para obtener más información acerca de la supervisión y la solución de problemas tales como errores de limitación, consulte Gestión de los problemas de limitación de Amazon ECS.
Interfaces de red elásticas
Cuando sus tareas utilizan el modo de red awsvpc
, Amazon ECS proporciona una interfaz de red elástica (ENI) única para cada tarea. Cuando sus servicios de Amazon ECS utilizan un equilibrador de carga de Elastic Load Balancing, estas interfaces de red también se registran como destinos para el grupo de destino correspondiente definido en el servicio.
Cuotas de servicio de la interfaz de red elástica
Cuando ejecuta tareas que utilizan el modo de red awsvpc
, se adjunta una interfaz de red elástica única a cada tarea. Si es necesario acceder a esas tareas a través de Internet, asigne una dirección IP pública a la interfaz de red elástica de esas tareas. Cuando escale sus cargas de trabajo de Amazon ECS, tenga en cuenta estas dos cuotas importantes:
-
La cuota de
Network interfaces per Region
, que es el número máximo de interfaces de red en una Región de AWS para su cuenta. -
La cuota de
Elastic IP addresses per Region
, que es el número máximo de direcciones IP elásticas en una Región de AWS.
Estas dos cuotas de servicio son ajustables y puede solicitar un aumento de estas desde la consola de Service Quotas. Para obtener más información, consulte Amazon VPC service quotas en la Guía del usuario de Amazon Virtual Private Cloud.
En cuanto a las cargas de trabajo de Amazon ECS que se alojan en instancias de Amazon EC2, al ejecutar tareas que utilizan el modo de red awsvpc
, tenga en cuenta la cuota de servicio Maximum network
interfaces
(el número máximo de instancias de red para cada instancia de Amazon EC2). Esta cuota limita la cantidad de tareas que puede colocar en una instancia. No puede ajustar la cuota y no está disponible en la consola de Service Quotas. Para obtener más información, consulte Direcciones IP por interfaz de red por tipo de instancia en la Guía del usuario de Amazon EC2.
Aunque no se puede cambiar el número de interfaces de red que pueden adjuntarse a una instancia de Amazon EC2, se puede utilizar la característica de enlace troncal de interfaz de red elástica para aumentar el número de interfaces de red disponibles. Por ejemplo, de forma predeterminada, una instancia c5.large
puede tener hasta tres interfaces de red. La interfaz de red principal de la instancia cuenta como una. Por lo tanto, puede adjuntar dos interfaces de red adicionales a la instancia. Dado que cada tarea que utiliza el modo de red awsvpc
requiere una interfaz de red, normalmente solo puede ejecutar dos de esas tareas en este tipo de instancia. Esto puede provocar una infrautilización de la capacidad del clúster. Si habilita el enlace troncal de la interfaz de red elástica, puede aumentar la densidad de la interfaz de red para colocar un mayor número de tareas en cada instancia. Con el enlace troncal activado, una instancia c5.large
puede tener hasta 12 interfaces de red. La instancia tiene la interfaz de red principal y Amazon ECS crea y asocia una interfaz de red “troncal” a la instancia. Como resultado, con esta configuración, puede ejecutar 10 tareas en la instancia en lugar de las dos tareas predeterminadas. Para obtener más información, consulte Aumento de las interfaces de red de instancias de contenedor de Linux de Amazon ECS.
Limitación de la API de interfaz de red elástica
Cuando ejecuta tareas que utilizan el modo de red awsvpc
, Amazon ECS se basa en las siguientes API de Amazon EC2. Cada una de estas API tiene diferentes limitadores de API. Para obtener información, consulte Request throttling for the Amazon EC2 API en la Referencia de la API de Amazon EC2.
-
CreateNetworkInterface
-
AttachNetworkInterface
-
DetachNetworkInterface
-
DeleteNetworkInterface
-
DescribeNetworkInterfaces
-
DescribeVpcs
-
DescribeSubnets
-
DescribeSecurityGroups
-
DescribeInstances
Si las llamadas a la API de Amazon EC2 se limitan durante los flujos de trabajo de aprovisionamiento de la interfaz de red elástica, el programador de servicios de Amazon ECS lo volverá a intentar automáticamente con retrasos exponenciales. En ocasiones, estas retiradas automáticas pueden provocar un retraso en el lanzamiento de las tareas, lo que se traduce en velocidades de implementación más lentas. Cuando se produzca una limitación de la API, verá el mensaje Operations are being
throttled. Will try again later.
en los mensajes de eventos del servicio. Si experimenta limitaciones constantes de la API de Amazon EC2, puede ponerse en contacto con AWS Support para obtener orientación sobre cómo aumentar sus límites de limitación de la API. Para obtener más información acerca de la supervisión y la solución de problemas tales como errores de limitación, consulte Handling throttling issues.
AWS Cloud Map
La detección de servicios de Amazon ECS y Service Connect utilizan las API de AWS Cloud Map para administrar los espacios de nombres de sus servicios de Amazon ECS. Si sus servicios tienen un gran número de tareas, tenga en cuenta las siguientes recomendaciones.
Service Quotas de AWS Cloud Map
Cuando los servicios de Amazon ECS están configurados para usar la detección de servicios o Service Connect, la cuota Tasks per service
, que es el número máximo de tareas para el servicio, se ve afectada por la cuota de servicio Instances per service
de AWS Cloud Map, que es el número máximo de instancias para ese servicio. En concreto, la cuota de servicio AWS Cloud Map reduce la cantidad de tareas que puede ejecutar hasta un máximo de 10 000 tareas de servicio. No se puede cambiar la cuota AWS Cloud Map. Para más información, consulte Service Quotas de AWS Cloud Map.
Limitación de API de AWS Cloud Map
Amazon ECS llama a las API ListInstances
, GetInstancesHealthStatus
, RegisterInstance
y DeregisterInstance
de AWS Cloud Map en su nombre. Ayudan en la detección de servicios y en la ejecución de comprobaciones de estado al lanzar una tarea. Cuando se implementan varios servicios que utilizan la detección de servicios con una gran cantidad de tareas al mismo tiempo, esto puede provocar que se superen los límites de limitación de las API de AWS Cloud Map. Cuando esto suceda, es probable que vea el siguiente mensaje: Operations are being throttled. Will try again later
en los mensajes de eventos del servicio de Amazon ECS y una velocidad de implementación y lanzamiento de tareas más lenta. AWS Cloud Map no documenta los límites de limitación de estas API. Si experimenta limitaciones, puede ponerse en contacto con AWS Support para obtener orientación sobre cómo aumentar sus límites de limitación de las API. Para obtener más recomendaciones acerca de la supervisión y la solución de problemas tales como errores de limitación, consulte Gestión de los problemas de limitación de Amazon ECS.