Como soluciono um erro HTTP 500 ou 503 do Amazon S3?

5 minuto de leitura
0

Quando faço uma solicitação ao Amazon Simple Storage Service (Amazon S3), o Amazon S3 retorna um erro de status 5xx. Como soluciono esses erros?

Descrição resumida

O Amazon S3 pode retornar um dos seguintes erros de status 5xx:

  • AmazonS3Exception: Erro interno (Serviço: Amazon S3; Código de status: 500; Código de erro: 500 Erro interno; ID da solicitação: A4DBBEXAMPLE2C4D)
  • AmazonS3Exception: Diminuir velocidade (Serviço: Amazon S3; Código de status: 503; Código de erro: 503 Diminuir velocidade; ID da solicitação: A4DBBEXAMPLE2C4D)

O código de erro 500 Erro interno indica que o Amazon S3 não pode lidar com a solicitação no momento. O código de erro 503 Diminuir velocidade normalmente indica que o número de solicitações para seu bucket do S3 é muito alto. Por exemplo, você pode enviar 3.500 solicitações PUT/COPY/POST/DELETE ou 5.500 solicitações GET/HEAD por segundo por prefixo em um bucket do S3. No entanto, em alguns casos, o Amazon S3 poderá retornar uma resposta 503 Diminuir velocidade se suas solicitações excederem a quantidade de largura de banda disponível para cópia entre regiões.

Como o Amazon S3 é um serviço distribuído, espera-se uma porcentagem muito pequena de erros 5xx durante o uso normal do serviço. Todas as solicitações que retornam erros 5xx do Amazon S3 podem ser repetidas. Isso significa que é uma prática recomendada ter um mecanismo de tolerância a falhas ou implementar a lógica de nova tentativa para qualquer aplicação que faça solicitações ao Amazon S3. Ao fazer isso, o S3 pode se recuperar desses erros.

Para resolver ou evitar erros de status 5xx, considere as seguintes abordagens:

  • Use um mecanismo de nova tentativa na aplicação fazendo solicitações.
  • Configure sua aplicação para aumentar gradualmente as taxas de solicitação.
  • Distribua objetos em vários prefixos.
  • Monitore o número de respostas de erro 5xx.

Observação: o Amazon S3 não atribui recursos adicionais para cada novo prefixo. Ele escala automaticamente com base nos padrões de chamadas. À medida que a taxa de solicitação aumenta, o Amazon S3 otimiza dinamicamente para a nova taxa de solicitação.

Resolução

Use um mecanismo de nova tentativa na aplicação fazendo solicitações

Devido à distribuída natural do Amazon S3, as solicitações que retornam erros 500 ou 503 podem ser repetidas. É uma prática recomendada criar uma lógica de nova tentativa em aplicações que fazem solicitações ao Amazon S3.

Todos os SDKs da AWS têm um mecanismo de nova tentativa integrado com um algoritmo que usa recuo exponencial. Esse algoritmo implementa tempos de espera cada vez maiores entre novas tentativas para respostas de erro consecutivas. A maioria dos algoritmos de recuo exponencial usa tremulação (atraso aleatório) para evitar colisões sucessivas. Para obter mais informações, consulte Novas tentativas de erro e recuo exponencial na AWS.

Configure a aplicação para aumentar gradualmente as taxas de solicitação

Para evitar o erro 503 Diminuir velocidade, configure sua aplicação para começar com uma taxa de solicitação mais baixa (transações por segundo). Em seguida, aumente exponencialmente a taxa de solicitações da aplicação. O Amazon S3 escala automaticamente para lidar com uma taxa de solicitação mais alta.

Distribuir objetos em vários prefixos

As taxas de solicitação descritas nas diretrizes de desempenho e nos padrões de design se aplicam por prefixo em um bucket do S3. Para configurar seu bucket para lidar com taxas gerais de solicitações mais altas e evitar erros 503 Diminuir velocidade, você pode distribuir objetos em vários prefixos. Por exemplo, se você estiver usando seu bucket do S3 para armazenar imagens e vídeos, poderá distribuir os arquivos em dois prefixos semelhantes aos seguintes:

  • mybucket/images
  • mybucket/videos

Se a taxa de solicitação nos prefixos aumentar gradualmente, o Amazon S3 aumentará a escala verticalmente para lidar com as solicitações de cada um dos dois prefixos. O S3 aumentará a escala verticalmente para lidar com 3.500 solicitações PUT/POST/DELETE ou 5.500 solicitações GET por segundo. Como resultado, a taxa geral de solicitações processada pelo bucket dobrará.

Monitore o número de respostas de erro de status 5xx

Para monitorar o número de respostas de erro de status 5xx que está recebendo, você pode usar uma destas opções:

Solução de problemas adicionais

Se você continuar vendo altas taxas de erro de status 5xx, entre em contato com o AWS Support. Inclua os pares de ID de solicitação do Amazon S3 para as solicitações que falharam com um código de erro de status 5xx.


Informações relacionadas

Solução de problemas do Amazon S3

AWS OFICIAL
AWS OFICIALAtualizada há um ano