REL01-BP03 Acomodar as restrições e as cotas fixas de serviço por meio da arquitetura
Esteja ciente das cotas de serviço, das restrições do serviço e dos limites de recursos físicos que não podem ser alterados. Projete arquiteturas para aplicações e serviços visando evitar que esses limites afetem a confiabilidade.
Os exemplos incluem largura de banda da rede, tamanho da carga útil da invocação da função sem servidor, taxa de intermitência de aceleração para um gateway da API e conexões simultâneas de usuários com um banco de dados.
Resultado desejado: a aplicação ou o serviço tem o desempenho esperado em condições de tráfego normal e alto. Elas foram projetadas para funcionar com as limitações referentes às restrições ficas ou cotas de serviço do recurso.
Antipadrões comuns:
-
Escolher um design que usa um recurso de um serviço sem saber que há restrições de design que causarão falha à medida que você escala.
-
Usar parâmetros de comparação irrealistas e que atingirão as cotas fixas do serviço durante os testes. Por exemplo, executar testes em um limite de intermitência mas por um período estendido.
-
Escolher um design que não possa ser escalado nem modificado caso seja necessário ultrapassar as cotas fixas do serviço. Por exemplo, um tamanho de carga útil do SQS de 256 KB.
-
A capacidade de observação não foi projetada nem implementada para monitorar e alertar sobre os limites das cotas de serviço que podem estar em risco durante eventos com tráfego alto.
Benefícios do estabelecimento dessa prática recomendada: verificar se a aplicação será executada em todos os níveis de carga de serviços projetados sem interrupção ou dano.
Nível de risco exposto se esta prática recomendada não é estabelecida: médio
Orientações para a implementação
Ao contrário das cotas de serviço flexíveis ou de recursos que são substituídos com unidades de capacidade mais altas, as cotas fixas dos serviços da AWS não podem ser alteradas. Isso significa que todos esses tipos de serviços da AWS devem ser avaliados com relação a possíveis limites de capacidade rígidos quando usados em um design da aplicação.
Os limites rígidos são mostrados no console do Service Quotas. Se a coluna mostrar ADJUSTABLE = No
, o serviço tem um limite rígido. Os limites rígidos também são mostrados em algumas páginas de configuração de recursos. Por exemplo, o Lambda tem limites rígidos específicos que não podem ser ajustados.
Como exemplo, ao projetar uma aplicação Python para ser executada em uma função do Lambda, a aplicação deve ser avaliada para determinar se há alguma chance de o Lambda ser executado por mais de 15 minutos. Se código puder ser executado mais do que esse limite de cota de serviço, tecnologias ou designs alterativos devem ser considerados. Se esse limite for atingido depois da implantação na produção, a aplicação sofrerá uma degradação e interrupção até que isso possa ser corrigido. Ao contrário das cotas flexíveis, não há um método para alterar esses limites mesmo sob eventos de emergência de gravidade 1.
Depois que a aplicação for implantada em um ambiente de teste, devem ser usadas estratégias para descobrir se algum limite rígido pode ser atingido. Testes de estresse, testes de carga e testes de caos devem fazer parte do plano de teste de introdução.
Etapas da implementação
-
Revise a lista completa de serviços da AWS que poderiam ser usados na fase de design da aplicação.
-
Revise os limites da cota flexível e os da cota rígida para todos esses serviços. Nem todos os limites são mostrados no console do Service Quotas. Alguns serviços descrevem esses limites em locais alternativos.
-
À medida que você planeja a aplicação, revise os fatores que impulsionam a tecnologia e os negócios da workload, como resultados empresariais, casos de uso, sistemas dependentes, destinos de disponibilidade e objetos de recuperação de desastres. Permita que os fatores que impulsionam a tecnologia e os negócios orientem o processo para identificar o sistema distribuído certo para sua workload.
-
Analise a carga do serviço nas regiões e contas. Muitos limites rígidos são regionais para os serviços. No entanto, alguns limites são por conta.
-
Analise arquiteturas de resiliência quanto ao uso de recursos durante uma falha de zona e de região. Na progressão de designs de várias regiões usando as abordagens ativo/ativo, ativo/passivo – quente, ativo/passivo – frio e ativo/passivo – luz-piloto, esses casos de falha resultarão em maior uso. Isso cria um possível caso de uso para atingir limites rígidos.
Recursos
Práticas recomendadas relacionadas:
Documentos relacionados:
-
AWS Pilar Confiabilidade da Well-Architected Framework: Disponibilidade
-
AWS Service Quotas (anteriormente chamado de limites de serviço)
-
AWS limit monitor on AWS answers
(Monitor de limites da AWS em respostas da AWS) -
Amazon EC2 Service Limits (Limites de serviço do Amazon EC2)
-
What is Service Quotas? (O que é o Service Quotas?)
-
How to Request Quota Increase (Como solicitar aumento de cota)
-
Service endpoints and quotas (Endpoints e cotas de serviço)
-
Quota Monitor for AWS
(Monitor de cotas da AWS) -
AWS Fault Isolation Boundaries (Limites de isolamento de falhas da AWS)
-
Availability with redundancy (Disponibilidade com redundância)
-
Parceiro do APN: parceiros que podem ajudar no gerenciamento de configuração
-
Managing the account lifecycle in account-per-tenant SaaS environments on AWS
(Gerenciar o ciclo devida da conta em ambientes de SaaS de conta por locatário na AWS) -
Managing and monitoring API throttling in your workloads
(Gerenciar e monitorar o controle de utilização de API em workloads) -
View AWS Trusted Advisor recommendations at scale with AWS Organizations
(Exibir recomendações do AWS Trusted Advisor em grande escala com AWS Organizations) -
Automating Service Limit Increases and Enterprise Support with AWS Control Tower
(Automatizar aumentos de limite de serviço e suporte empresarial com AWS Control Tower)
Vídeos relacionados:
-
View and Manage Quotas for AWS Services Using Service Quotas
(Exibir e gerenciar cotas para serviços da AWS usando o Service Quotas) -
AWS IAM Quotas Demo
(Demonstração de cotas do AWS IAM) -
AWS re:Invent 2018: Close Loops and Opening Minds: How to Take Control of Systems, Big and Small
(AWS re:Invent 2018: fechar ciclos e abrir mentes: como controlar sistemas, sejam grandes ou pequenos)
Ferramentas relacionadas: