Código de status HTTP 503 (Serviço indisponível) - Amazon CloudFront

Código de status HTTP 503 (Serviço indisponível)

Um código de status HTTP 503 (Serviço indisponível) normalmente indica um problema de performance no servidor de origem. Em casos raros, ele indica que o CloudFront não pode atender a uma solicitação temporariamente devido a uma limitação de recursos em um local da borda.

Se você estiver usando o Lambda@Edge ou o CloudFront Functions, o problema pode ser um erro de execução ou um erro de limite excedido do Lambda@Edge.

O servidor de origem não tem capacidade suficiente para oferecer suporte à taxa de solicitação

Quando um servidor de origem não está disponível ou não consegue atender às solicitações recebidas, ele exibe um código de status HTTP 503 (serviço indisponível). O CloudFront então transmite o erro de volta para o usuário. Para resolver esse problema, tente as seguintes soluções:

  • Se você usa o Amazon S3 como servidor de origem:

    • É possível enviar 3.500 solicitações PUT/COPY/POST/DELETE ou 5.500 solicitações GET/HEAD por segundo por prefixo particionado do Amazon S3. Quando o Amazon S3 exibe uma resposta 503 Slow Down, isso normalmente indica uma taxa de solicitação excessiva em relação a um prefixo específico do Amazon S3.

      Como as taxas de solicitação se aplicam por prefixo em um bucket do S3, os objetos devem ser distribuídos em vários prefixos. À medida que a taxa de solicitação nos prefixos aumenta de forma gradual, o Amazon S3 aumenta a escala verticalmente para lidar com as solicitações de cada um dos prefixos de maneira separada. Como resultado, a taxa geral de solicitações processada pelo bucket é um múltiplo do número de prefixos.

    • Para obter mais detalhes, consulte Otimizar a performance do Amazon S3, no Guia do usuário do Amazon Simple Storage Service.

  • Se você usar o Elastic Load Balancing como servidor de origem:

    • Garanta que suas instâncias de back-end possam responder às verificações de integridade.

    • Garanta que o balanceador de carga e as instâncias de back-end possam lidar com a carga.

    Para obter mais informações, consulte:

  • Se você usa uma origem personalizada:

    • Examine os logs da aplicação para garantir que a origem tenha recursos suficientes, como memória, CPU e tamanho do disco.

    • Se você usa o Amazon EC2 como o backend, verifique se o tipo de instância tem os recursos apropriados para atender às solicitações recebidas. Para ter mais informações, consulte Instance types, no Guia do usuário do Amazon EC2.

  • Se você usa o API Gateway:

    • Esse erro está relacionado à integração de back-end quando a API do API Gateway não consegue receber uma resposta. O servidor de back-end pode estar:

      • Sobrecarregado além da capacidade e incapaz de processar novas solicitações de clientes.

      • Em manutenção temporária.

    • Para resolver esse erro, consulte os logs da aplicação do API Gateway para determinar se há algum problema com a capacidade de back-end, a integração ou qualquer outra coisa.

O CloudFront provocou o erro devido a restrições de recursos no local da borda

Você receberá esse erro se o CloudFront não puder encaminhar solicitações ao melhor local da borda seguinte disponível e, portanto, não poderá atender a uma solicitação. Esse erro é comum ao executar testes de carga na distribuição do CloudFront. Para evitar isso, siga as diretrizes de Testes de carga do CloudFront para evitar erros 503 (capacidade excedida).

Se isso acontecer no ambiente de produção, entre em contato com o AWS Support.

Erro de execução do Lambda@Edge ou do CloudFront Function

Se você estiver usando o Lambda@Edge ou o CloudFront Functions, um código de status HTTP 503 pode indicar que sua função retornou um erro de execução.

Para ter mais detalhes sobre como identificar e resolver erros do Lambda@Edge, consulte Testar e depurar as funções do Lambda@Edge.

Para ter mais informações sobre como testar o CloudFront Functions, consulte Testar funções.

Limite do Lambda@Edge excedido

Se você estiver usando o Lambda@Edge, um código de status HTTP 503 poderá indicar que o Lambda exibiu um erro. O erro pode ser causado por uma das seguintes situações:

  • O número de execuções de função excedeu uma das cotas que o Lambda define para limitar as execuções em uma Região da AWS (execuções simultâneas ou frequência de invocação).

  • A função excedeu a cota de tempo limite da função do Lambda.

Para ter mais informações sobre as cotas do Lambda@Edge, consulte Cotas do Lambda@Edge. Para ter mais detalhes sobre como identificar e resolver erros do Lambda@Edge, consulte Testar e depurar as funções do Lambda@Edge. Você também pode ver as Cotas do serviço do Lambda no Guia do desenvolvedor do AWS Lambda.