View a markdown version of this page

Limitação de solicitações de API do Amazon Route 53 - Amazon Route 53

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Limitação de solicitações de API do Amazon Route 53

Importante

O Amazon Route 53 atualizou seu comportamento de limitação de APIs. A atualização inclui o aumento do limite de solicitações por segundo e a introdução da limitação baseada em alterações. Esta página descreve detalhadamente os limites atualizados.

O Amazon Route 53 limita as solicitações de API por conta para manter a estabilidade do serviço e garantir o uso justo para todos os clientes. O Route 53 aplica dois limites independentes:

  • Taxa de solicitação: o número de solicitações de API por segundo.

  • Taxa de transferência de alterações: o número de alterações de registros DNS individuais por segundo, agregadas às ações da API que modificam os dados de DNS.

Uma solicitação pode ser limitada por qualquer limite. Quando uma solicitação é limitada, o Amazon Route 53 retorna um erro HTTP 400 ()Bad request. O cabeçalho de resposta também inclui um elemento Code com um valor de Throttling e um elemento Message com um valor de Rate exceeded.

Como o controle de utilização é aplicado

O Amazon Route 53 usa um algoritmo de token bucket. Cada limite tem um bucket que contém um número máximo de tokens. Cada solicitação (para o limite da taxa de solicitação) ou cada alteração (para o limite de taxa de transferência de alterações) remove os tokens do bucket aplicável. O balde é reabastecido a uma taxa fixa a cada segundo, até sua capacidade máxima. Se os tokens de recarga chegarem quando o balde já estiver cheio, o Route 53 os descartará.

Dois valores descrevem cada bucket:

  • A capacidade máxima do bucket é sua intermitência: o número de solicitações ou alterações que o Route 53 pode absorver de uma só vez quando o bucket está cheio.

  • A taxa de recarga do bucket é sua taxa sustentada: o número de solicitações ou alterações por segundo que você pode manter indefinidamente.

Você pode usar fichas de recarga à medida que elas são adicionadas; você não precisa esperar que o balde seja reabastecido completamente.

Taxa de solicitação: tamanhos de baldes de tokens e taxas de recarga

O Route 53 aplica a limitação da taxa de solicitação em dois níveis:

  • Nível da conta: todas as solicitações de API do Amazon Route 53 da sua conta são extraídas de um único bucket.

  • Nível de conta e operação: cada ação da API também tem seu próprio bucket.

Uma solicitação consome um token de ambos os intervalos e é limitada se um dos intervalos estiver vazio. As ações a seguir têm limites de taxa de solicitação padrão diferentes.

Limites de taxa de solicitação por ação de API
Ação da API Capacidade máxima do bucket Taxa de recarga do bucket
Todas as ações da API Amazon Route 53 combinadas (nível da conta) 50 10
Qualquer ação de API única não listada abaixo (padrão por ação) 50 10
AssociateVPCWithHostedZone 20 5
ChangeCidrCollection 40 5
CreateCidrCollection 40 5
CreateHealthCheck 50 0,5
CreateHostedZone 40 2
CreateReusableDelegationSet 40 2
CreateTrafficPolicyInstance 1 1
DeleteCidrCollection 40 5
DeleteHealthCheck 15 3
DeleteHostedZone 40 5
DeleteReusableDelegationSet 40 5
DeleteTrafficPolicyInstance 1 1
DisassociateVPCFromHostedZone 10 5
GetHealthCheckLastFailureReason 4 1
GetHealthCheckStatus 4 1
UpdateHealthCheck 50 5
UpdateTrafficPolicyInstance 1 1

Para ver a lista completa das ações da API do Amazon Route 53, consulte Ações na referência da API do Amazon Route 53.

Solicitações CreateHealthCheck

Você pode enviar uma solicitação de CreateHealthCheck a cada 2 segundos por Conta da AWS. Isso corresponde à taxa de recarga de 0,5 solicitações por segundo mostrada na tabela anterior.

Limitação de taxa de transferência de alterações

Além do limite da taxa de solicitação, as ações da API que modificam os dados de DNS estão sujeitas a um limite de taxa de transferência de alterações. Esse limite usa um bucket de tokens separado que se esgota com base no número de alterações no registro DNS que uma solicitação faz, não no número de solicitações. A taxa de transferência de alterações é limitada por ação de API Conta da AWS, não por ação. Todas as ações a seguir se baseiam em um balde, que tem capacidade máxima de 1.500 trocas (estouro) e é reabastecido a 100 trocas por segundo (sustentadas).

As alterações são contadas da seguinte forma:

Tokens consumidos por operação
Operation Tokens consumidos
ChangeResourceRecordSets 1 porCREATE, 1 porDELETE, 2 por UPSERT
AssociateVPCWithHostedZone 2
DisassociateVPCFromHostedZone 2
CreateHostedZone 2
DeleteHostedZone 2

Todas as outras ações da API do Amazon Route 53 não consomem tokens de taxa de transferência de alterações e são limitadas somente pela taxa de solicitação.

Exemplo: Você pode enviar uma única solicitação contendo 1.000 alterações (uma explosão), que consome 1.000 tokens. Após a explosão, o balde é reabastecido a 100 fichas por segundo. Se você continuar enviando 100 alterações por segundo, poderá manter essa taxa indefinidamente. Se você tentar manter 500 alterações por segundo, o bucket se esgota e as solicitações subsequentes são limitadas até serem reabastecidas.

Monitore o controle de utilização da API

Você pode monitorar o uso da API Amazon Route 53 observando as respostas HTTP 400 nos registros do seu aplicativo ou rastreando o uso da API por meio de CloudWatch métricas. Quando você recebe erros de limitação, suas solicitações estão excedendo um dos limites descritos nas seções anteriores.

Notas tentativas e recuo exponencial

Ao pesquisar ou tentar novamente uma solicitação de API, recomendamos usar um algoritmo de recuo exponencial para calcular o intervalo de espera entre as solicitações. O recuo exponencial usa esperas progressivamente mais longas entre as novas tentativas para respostas de erro consecutivas. Implemente um intervalo máximo de atraso e um número máximo de novas tentativas e considere adicionar instabilidade (atraso aleatório) para evitar colisões sucessivas. Para obter mais informações, consulte Tempos limite, novas tentativas e recuo com instabilidade na Builders' Library. AWS

Cada AWS SDK implementa a lógica de repetição automática, incluindo um modo de nova tentativa adaptável que ajusta a taxa de solicitação do lado do cliente em resposta à limitação. Para cargas de trabalho que se aproximam regularmente desses limites, considere ativar novas tentativas adaptativas. Para obter mais informações, consulte Retry behavior no Guia de referência de ferramentas e SDKs da AWS .

Como solicitar um aumento de limite

Você pode solicitar um aumento na taxa de solicitação da API ou no limite de taxa de transferência de alterações por meio do AWS Support. Para solicitar um aumento:

  • Abra o Centro de AWS Suporte.

  • Crie um caso e escolha Aumento do limite de serviço.

  • Em Tipo de limite, escolha Route 53.

  • Forneça seu uso atual e o limite necessário.

Práticas recomendadas para limitação de APIs

  • Equilibre a taxa de solicitação em relação ao tamanho do lote: se você estiver limitado pelo limite da taxa de solicitações, envie mais alterações por solicitação. Se você estiver limitado pelo limite de taxa de transferência de alterações, reduza sua taxa total de alteração. Nem lotes muito pequenos nem muito grandes são ideais sozinhos.

  • Use lotes para atomicidade: todas as alterações em uma única ChangeResourceRecordSets solicitação são aplicadas atomicamente, para que tenham sucesso ou falhem juntas.

  • Distribua as alterações ao longo do tempo: distribua as alterações uniformemente em segundos, em vez de enviar grandes lotes simultaneamente.

  • Confie na intermitência para picos ocasionais, não para uma taxa de transferência sustentada: a capacidade de intermitência acomoda picos de tráfego legítimos; não é um teto operacional sustentado.

  • Tente novamente com recuo exponencial: ao receber respostas HTTP 400, tente novamente após um atraso que aumenta a cada tentativa (consulte). Notas tentativas e recuo exponencial

  • O limite de solicitações aumenta proativamente: se você prevê o crescimento da carga de trabalho, solicite um aumento antes de atingir o limite (consulte). Como solicitar um aumento de limite

Para obter uma orientação mais ampla do Amazon Route 53, consultePráticas recomendadas do Amazon Route 53.