Por qué existen las cuotas de servicio de AWS - Diseño multitenant que protege la infraestructura compartida

Explicamos que las cuotas de servicio de AWS (antes límites de servicio) no son simples restricciones sino un diseño para proteger a otros clientes en un entorno multitenant, desde el problema del vecino ruidoso, la diferencia entre límites soft y hard, y el trasfondo de las solicitudes de aumento.

La esencia de las cuotas de servicio - Un mecanismo para proteger a otros clientes

Las cuotas de servicio de AWS (antes llamadas límites de servicio) son los límites superiores de recursos que cada cuenta puede utilizar. Se establecen cuotas para prácticamente todos los recursos: número de instancias EC2 que se pueden lanzar, ejecuciones simultáneas de Lambda, número de buckets S3, número de VPCs, etc. Estas cuotas no existen para incomodar a los usuarios. La infraestructura de AWS es multitenant. Los servidores físicos, redes y almacenamiento se comparten entre múltiples clientes. Si un cliente consume recursos sin límite, otros clientes en la misma infraestructura física se ven afectados. Esto se conoce como el problema del "vecino ruidoso" (noisy neighbor). Las cuotas de servicio son un mecanismo para prevenir que un solo cliente monopolice los recursos compartidos.

Límites soft y límites hard

Hay 2 tipos de cuotas. Los límites soft (cuotas ajustables) pueden aumentarse mediante solicitud en la consola de Service Quotas o al soporte de AWS. El número de vCPUs de instancias bajo demanda de EC2 (por defecto: varía por familia de instancias por región), ejecuciones simultáneas de Lambda (por defecto: 1,000), número de buckets S3 (por defecto: 100) son ejemplos de límites soft. Los límites hard (cuotas no ajustables) no pueden aumentarse independientemente de la solicitud. El tamaño máximo de objeto de S3 (5 TB), el tamaño máximo de ítem de DynamoDB (400 KB), el tamaño máximo de política IAM (6,144 caracteres) son ejemplos de límites hard. Estos están determinados por restricciones de diseño del servicio y no pueden cambiarse.

El trasfondo de las solicitudes de aumento de cuota

¿Qué sucede cuando se envía una solicitud de aumento desde la consola de Service Quotas? Algunas cuotas se aprueban automáticamente. Aumentos como el número de buckets S3 (100 a 1,000) se aprueban automáticamente en minutos después de la solicitud. Estas cuotas están automatizadas porque el aumento tiene poco impacto en otros clientes. Por otro lado, aumentos significativos de cuota de vCPU de EC2 (por ejemplo, 1,000 a 10,000) son revisados por el equipo de AWS. Esto se debe a que se necesita verificar si hay capacidad física suficiente en la región y AZ solicitadas. Si la capacidad es insuficiente, puede sugerirse una región o tipo de instancia alternativo, o puede tomar tiempo hasta que se agregue capacidad.

Por qué las cuotas por defecto son bajas

Las cuotas por defecto de cuentas nuevas se establecen intencionalmente bajas. Las vCPU bajo demanda de EC2 son de 5 a 32 vCPU por familia de instancias para cuentas nuevas. Estos valores por defecto bajos tienen 3 razones. Primera, prevención de uso fraudulento. El uso fraudulento donde cuentas creadas con tarjetas de crédito robadas lanzan grandes cantidades de instancias EC2 para minar criptomonedas es un problema real para AWS. Las cuotas bajas por defecto limitan el daño de tales abusos. Segunda, protección contra errores. Los nuevos usuarios pueden lanzar accidentalmente grandes cantidades de instancias por errores de script, generando facturas enormes. Las cuotas bajas funcionan como red de seguridad. Tercera, planificación de capacidad. Si todas las cuentas nuevas pudieran usar recursos ilimitados desde el principio, la planificación de capacidad de AWS se volvería extremadamente difícil.

Monitoreo y automatización de cuotas

Service Quotas está integrado con CloudWatch, permitiendo obtener la tasa de uso de cuotas como métricas. Por ejemplo, se puede configurar una alarma de CloudWatch que se active cuando la tasa de uso de cuota de vCPU de EC2 supere el 80%, notificando vía SNS. Es importante monitorear proactivamente y solicitar aumentos con anticipación, ya que es demasiado tarde una vez que se alcanza la cuota. Trusted Advisor también verifica cuotas y alerta cuando el uso se acerca al límite. Para la automatización, se puede usar la API de Service Quotas para solicitar aumentos programáticamente, y AWS Config puede detectar recursos que se acercan a las cuotas. Para profundizar en la gestión de cuotas y operaciones de AWS, los libros especializados (Amazon) son una buena referencia.