Como faço para resolver erros de limitação de API ou de “Taxa excedida” no Elastic Beanstalk?

5 minuto de leitura
0

Como faço para resolver erros de limitação de API ou de “Taxa excedida” ao usar o AWS Elastic Beanstalk?

Breve descrição

As chamadas de API para qualquer serviço da AWS não podem exceder a taxa máxima de solicitação de API permitida por segundo. O limite é compartilhado entre todos os recursos por conta e por região da AWS.

Não importa se as chamadas vêm de uma aplicação, da AWS Command Line Interface (AWS CLI) ou do Console de Gerenciamento da AWS. Se as solicitações de API excederem a taxa máxima por segundo, você receberá um erro de “Taxa excedida” e as chamadas de API serão, então, limitadas. Algumas chamadas de API podem ser feitas dezenas de vezes por segundo, enquanto outras são limitadas a algumas chamadas permitidas por segundo.

Observação: se você receber erros ao executar comandos da CLI da AWS, verifique se está utilizando a versão mais recente da CLI da AWS.

Você pode receber erros de chamadas de API feitas diretamente para o Elastic Beanstalk, bem como de outros serviços da AWS gerenciados por ele, como AWS CloudFormation, Amazon Elastic Compute Cloud (Amazon EC2), ajuste de escala automático e Load Balancing. O risco de restrições aumenta à medida que o uso na conta aumenta ou à medida que você adiciona mais recursos à mesma conta.

Observação: o limite de chamadas pode variar de acordo com a hora do dia, pois nossos serviços se ajustam em resposta à carga. A melhor prática é configurar dinamicamente a taxa em que você usa a API para ajustar ao comportamento do limite dinâmico.

Resolução

Para evitar ou resolver erros e limitação de “Taxa excedida”, experimente estas soluções:

Encontrar a origem do alto número de chamadas de API

1.    Em seu stream de eventos do Elastic Beanstalk, identifique o erro de limitação. Anote o período em que você recebeu o erro. Ou, se as chamadas de API vierem de uma aplicação ou script, procure o período de tempo nos logs da aplicação.

2.    Para solicitações encontradas no período com erros RequestLimitExceeded, use o AWS CloudTrail para visualizar eventos e validar eventName, eventSource (o serviço) e userAgent. Compare a data e hora do erro nos eventos do Elastic Beanstalk ou em seus logs aos os erros encontrados no CloudTrail. Isso ajudará a saber qual fonte de sua conta está consumindo mais chamadas de API.

Observação: pode ser difícil realizar a contagem manual dos logs do CloudTrail. Você também pode usar as consultas do Athena no CloudTrail.

As métricas de uso do Amazon CloudWatch podem ajudar a monitorar o uso da API ao longo do tempo. Observe que nem todos os serviços e chamadas de API são compatíveis com métricas de uso no momento.

Aplicações de terceiros podem fazer chamadas contínuas para o Elastic Beanstalk ou outros serviços da AWS gerenciados pelo Elastic Beanstalk. Se você conceder a uma aplicação de terceiros o direito de fazer chamadas de API em sua conta, certifique-se de monitorá-las também.

Usar práticas recomendadas para reduzir o uso da API

Use novas tentativas de erro, recuos exponenciais e instabilidade para ajudar a limitar a taxa de chamadas de API. Embora cada SDK da AWS implemente lógica de repetição automática e algoritmos de recuo exponencial, talvez seja necessário ajustar as configurações do SDK para atender às suas necessidades se a lógica de repetição padrão não for suficiente.

Observação: as configurações do SDK são apenas uma parte a ser considerada. Seu próprio código também deve usar lógica de recuo, repetição e instabilidade ao chamar o SDK.

Se você tiver um script personalizado que faz chamadas de API a cada segundo, verifique se isso é necessário. Para casos de uso avançados, convém criar uma camada de cache para reduzir o consumo da API. Você também pode levar em conta uma estratégia de várias contas. A melhor prática é evitar que uma única conta da AWS cresça demais. Separar os recursos de desenvolvimento ou teste dos recursos de produção pode impedir que os recursos de desenvolvimento retirem o uso da API dos recursos de produção.

Solicitar o aumento de seu limite de taxa de chamadas de API

Se necessário, você pode solicitar um aumento do limite da taxa de chamadas da API. Esses limites são mais difíceis de aumentar do que os limites típicos baseados em recursos e exigem uma forte justificativa do caso de uso. Nossas equipes analisarão suas APIs e garantirão que as melhores práticas sejam seguidas. As solicitações devem ser feitas com bastante antecedência em relação a qualquer necessidade.

Ao solicitar um aumento, inclua as seguintes informações:

  • Sua região da AWS e o prazo relacionado aos problemas de limitação
  • A chamada de API que você usa e a taxa de chamadas de que você precisa
  • Uma justificativa detalhada do caso de uso, como necessidade comercial e necessidade técnica de aumento

Certifique-se de tentar usar retiradas por erro, recuos exponenciais e instabilidade antes de enviar a solicitação. Inclua os resultados dessas tentativas na solicitação e todas as informações relacionadas às tentativas.


Informações relacionadas

Tentativas de erro e recuo exponencial na AWS

Recuo exponencial e instabilidade

Log de chamadas de API do Elastic Beanstalk com o AWS CloudTrail

Métricas de uso do CloudWatch

Benefícios de usar várias contas da AWS

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos