Controle de utilização das solicitações das APIs REST para ter um melhor throughput no API Gateway
Você pode configurar o controle de utilização e cotas para as suas APIs para ajudar a protegê-las da sobrecarga de numerosas solicitações. Os controles de utilização e as cotas são aplicados de acordo com o melhor esforço e devem ser considerados alvos, e não limites máximos garantidos de solicitações.
O API Gateway controla a utilização das solicitações para a sua API usando o algoritmo do bucket de token, em que um token equivale a uma solicitação. Especificamente, o API Gateway analisa a taxa e uma intermitência de envios de solicitações de todas as APIs na sua conta, por região. No algoritmo do bucket de token, uma intermitência pode permitir a saturação predefinida desses limites, mas há alguns casos em que outros fatores também podem exceder tais limites.
Quando os envios de solicitações excederem a taxa de solicitação de estado fixo e os limites de intermitência, o API Gateway iniciará o controle de utilização de solicitações. Neste momento, pode ser que os clientes recebam respostas de erro 429 Too Many Requests
. Ao capturar essas exceções, o cliente poderá reenviar as solicitações com falha de uma forma que restrinja as taxas.
Como desenvolvedor de APIs, você pode definir os limites alvo para estágios ou métodos de API particulares para melhorar a performance geral em todas as APIs na sua conta. Como alternativa, você pode habilitar planos de uso para configurar controles de utilização aos envios de solicitações do cliente com base nas cotas e taxas de solicitação especificadas.
Tópicos
- Como as configurações de controle de utilização são aplicadas no API Gateway
- Controle de utilização no nível da conta por região
- Configuração de alvos de controle de utilização no nível da API e no nível do estágio em um plano de uso
- Configurar destinos de controle de utilização no nível do estágio
- Configuração de alvos de controle de utilização no nível do método em um plano de uso
Como as configurações de controle de utilização são aplicadas no API Gateway
Antes de definir as configurações de controle de utilização e cotas para a API, é útil entender os tipos de configurações relacionadas ao controle de utilização para a API e como o API Gateway as aplica.
O Amazon API Gateway fornece quatro tipos básicos de configurações relacionadas ao controle de utilização:
-
Os limites de controle de utilização da AWS são aplicados em todas as contas e clientes de uma região. Essas configurações de limite existem para impedir que sua API e sua conta sejam sobrecarregadas com muitas solicitações. Tais limites são definidos pela AWS e não poderão ser alterados por um cliente.
-
Os limites por conta são aplicados a todas as APIs em uma conta em uma região especificada. O limite de taxas no nível da conta pode ser aumentado por meio de uma solicitação; é possível obter limites mais altos com APIs com tempos limite mais curtos e cargas úteis menores. Para solicitar um aumento nos limites de controle de utilização no nível da conta por região, entre em contato com a Central de Suporte da AWS
. Para obter mais informações, consulte Cotas do Amazon API Gateway e notas importantes. Observe que tais limites não podem ser superiores aos limites de controle de utilização da AWS. -
Os limites de controle de utilização por API e por estágio são aplicados no nível do método da API para um estágio. Você pode definir as mesmas configurações para todos os métodos ou configurações de controle de utilização distintas para cada método. Observe que tais limites não podem ser superiores aos limites de controle de utilização da AWS.
-
Os limites de controle de utilização por cliente são aplicados aos clientes que usam chaves de API associadas ao seu plano de uso como identificador de cliente. Observe que tais limites não podem ser superiores aos limites por conta.
O API Gateway aplica as configurações relacionadas ao controle de utilização na seguinte ordem:
-
Limites de controle de utilização por cliente ou por método que você define para um estágio de API em um plano de uso
-
Os limites de controle de utilização por método que você define para um estágio da API
-
Controle de utilização regional da AWS
Controle de utilização no nível da conta por região
Por padrão, o API Gateway controla a utilização das solicitações de estado fixo por segundo (RPS) em todas as APIs de uma conta da AWS, por região. Ele também limita a intermitência (ou seja, o tamanho máximo do bucket) em todas as APIs de uma conta da AWS, por região. No API Gateway, o limite de intermitência representa o número máximo alvo de envios simultâneos de solicitações que ele fará antes de retornar respostas de erro 429 Too Many Requests
. Para obter mais informações sobre cotas de controle de utilização, consulte Cotas do Amazon API Gateway e notas importantes.
Configuração de alvos de controle de utilização no nível da API e no nível do estágio em um plano de uso
Em um plano de uso, é possível definir um destino de controle de utilização por método para todos os métodos em nível de API ou de estágio. É possível especificar uma taxa de controle de utilização, que é a taxa, em solicitações por segundo, em que os tokens são adicionados ao bucket do token. Você também pode especificar uma expansão do controle de utilização, que é a capacidade do bucket do token.
Você pode usar a AWS CLI, SDKs e o AWS Management Console para criar um plano de uso. Para saber mais sobre como criar um plano de uso, consulte Usar planos e chaves de API para APIs REST no APIs Gateway .
Configurar destinos de controle de utilização no nível do estágio
É possível usar a AWS CLI, os SDKs e o AWS Management Console para criar destinos de controle de utilização no nível de estágio.
Para saber mais sobre como usar o AWS Management Console para criar destinos de controle de utilização no nível de estágio, consulte Modifique as configurações de armazenamento.. Para saber mais sobre como usar a AWS CLI para criar destinos de controle de utilização no nível de estágio, consulte create-stage.
Configuração de alvos de controle de utilização no nível do método em um plano de uso
É possível definir alvos de controle de utilização adicionais no nível do método em Usage Plans (Planos de uso), conforme exibido em Criar um plano de uso. No console do API Gateway, isso é definido especificando Resource=
, <resource>
Method=
na configuração Configure Method Throttling (Configurar limitação de método). Por exemplo, no caso de PetStore, você pode especificar <method>
Resource=/pets
, Method=GET
.