REL01-BP03 Adaptación de las cuotas de servicio fijas y las restricciones a través de la arquitectura
Conozca las cuotas de servicio inalterables, las restricciones de servicio y los límites de recursos físicos. Diseñe arquitecturas para aplicaciones y servicios que eviten que estos límites afecten a la fiabilidad.
Algunos ejemplos son el ancho de banda de la red, el tamaño de la carga útil de la invocación de funciones sin servidor, la tasa de ráfagas de aceleración para una puerta de enlace de API y las conexiones simultáneas de usuarios a una base de datos.
Resultado deseado: la aplicación o el servicio funciona según lo esperado en condiciones de tráfico normal y alto. Se han diseñado para funcionar dentro de las limitaciones fijadas para ese recurso o cuotas de servicio.
Patrones comunes de uso no recomendados:
-
Elegir un diseño que utilice el recurso de un servicio, sin saber que existen restricciones que provocarán que este diseño produzca un error en el escalado.
-
Efectuar una evaluación comparativa que no es realista y que alcanzará las cuotas fijas del servicio durante la evaluación. Por ejemplo, ejecutar pruebas con un límite de ráfagas, pero durante un periodo prolongado.
-
Elegir un diseño que no pueda escalarse ni modificarse si se van a superar las cuotas de servicio fijas. Por ejemplo, un tamaño de carga útil de SQS de 256 KB.
-
No se diseña ni se implementa la observabilidad para supervisar y avisar sobre umbrales de cuotas de servicio que podrían estar en riesgo durante eventos de alto tráfico.
Beneficios de establecer esta práctica recomendada: comprobar que la aplicación se ejecute en todos los niveles de carga de servicios proyectados sin interrupciones ni deterioro.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio
Guía para la implementación
A diferencia de las cuotas de servicio o recursos flexibles que pueden sustituirse por unidades de mayor capacidad, las cuotas fijas de los servicios de AWS no pueden modificarse. Esto significa que todos estos tipos de servicios de AWS deben evaluarse para detectar posibles límites estrictos de capacidad cuando se utilizan en el diseño de una aplicación.
Los límites estrictos se muestran en la consola de Service Quotas. Si las columnas muestran ADJUSTABLE = No
, el servicio tiene un límite estricto. Los límites estrictos también se muestran en algunas páginas de configuración de recursos. Por ejemplo, Lambda tiene límites estrictos específicos que no se pueden ajustar.
Por ejemplo, cuando se diseña una aplicación python para que se ejecute en una función de Lambda, es necesario evaluar la aplicación para determinar si existe alguna posibilidad de que Lambda se ejecute durante más de 15 minutos. Si el código puede ejecutarse durante más tiempo de este límite de cuota de servicio, deben considerarse tecnologías o diseños alternativos. Si se alcanza el límite después de la implementación en producción, la aplicación sufrirá degradación e interrupciones hasta que pueda remediarse. A diferencia de las cuotas flexibles, no existe ningún método para cambiar estos límites, ni siquiera en caso de eventos de emergencia de gravedad 1.
Una vez que la aplicación se ha implementado en un entorno de pruebas, se deben utilizar estrategias para averiguar si se puede alcanzar algún límite estricto. Las pruebas de estrés, las pruebas de carga y las pruebas de caos deben formar parte del plan de pruebas de introducción.
Pasos para la implementación
-
Revise la lista completa de servicios de AWS que podrían utilizarse en la fase de diseño de la aplicación.
-
Revise los límites de cuotas flexibles y estrictos para todos estos servicios. No todos los límites se muestran en la consola de Service Quotas. Algunos servicios describen estos límites en ubicaciones alternativas.
-
Al diseñar su aplicación, revise los impulsores empresariales y tecnológicos de la carga de trabajo, como los resultados empresariales, el caso de uso, los sistemas dependientes, los objetivos de disponibilidad y los objetos de recuperación de desastres. Permita que sus impulsores empresariales y tecnológicos guíen el proceso para identificar el sistema distribuido adecuado para su carga de trabajo.
-
Analice la carga de servicio en todas las regiones y cuentas. Muchos límites estrictos se basan en la región para los servicios. Sin embargo, algunos límites se basan en las cuentas.
-
Analice el uso de recursos de las arquitecturas de resistencia durante un error zonal y un error regional. En la progresión de los diseños multirregionales que utilizan enfoques activo/activo, activo/pasivo: en caliente, activo/pasivo: en frío y activo/pasivo: luz piloto, estos casos de error provocarán un mayor uso. Esto crea un caso de uso potencial para alcanzar límites estrictos.
Recursos
Prácticas recomendadas relacionadas:
-
REL01-BP01 Conocimiento de las cuotas y restricciones del servicio
-
REL01-BP02 Administración de cuotas de servicio en cuentas y regiones
-
REL10-BP01 Implementación de la carga de trabajo en varias ubicaciones
-
REL11-BP01 Supervisión de todos los componentes de la carga de trabajo para detectar errores
-
REL11-BP03 Automatización de la reparación en todas las capas
-
REL12-BP05 Pruebas de resiliencia mediante ingeniería del caos
Documentos relacionados:
-
AWS Well-Architected Framework’s Reliability Pillar: Availability
-
AWS Service Quotas (conocido anteriormente como límites del servicio)
-
AWS Trusted Advisor Best Practice Checks (consulte la sección Service Limits)
-
Socio de APN: socios que pueden ayudar con la administración de la configuración
-
Managing the account lifecycle in account-per-tenant SaaS environments on AWS
-
View AWS Trusted Advisor recommendations at scale with AWS Organizations
-
Automating Service Limit Increases and Enterprise Support with AWS Control Tower
Videos relacionados:
Herramientas relacionadas: