Como soluciono problemas e reduzo o aumento da latência do CloudFront?
Data da última atualização: 02/06/2022
Estou vendo um aumento na latência nas respostas do Amazon CloudFront. Como posso identificar a causa e reduzir a latência?
Breve descrição
Para solucionar problemas de latência do CloudFront, identifique primeiro quais dos seguintes eventos estão contribuindo para a latência:
- O tempo necessário para que as solicitações passem entre o Cliente e os locais da borda do CloudFront. Isso inclui o processo de pesquisa do Sistema de Nomes de Domínio (DNS) e as negociações de TCP e SSL/TLS.
- O tempo necessário para que as solicitações passem entre o CloudFront e a origem. Isso inclui o processo de pesquisa de DNS de origem, negociações de TCP e SSL/TLS com a origem e o tempo gasto pela origem para processar e responder com um objeto.
Em seguida, siga as etapas de solução de problemas para os eventos que estão causando a maior latência.
Resolução
Identifique eventos que causam latência do CloudFront:
Para identificar quais eventos estão causando latência do CloudFront, siga um destes procedimentos:
- Execute o comando cURL a seguir:
curl -w "DNS_resolution: %{time_namelookup}| TCP_negotiation_time: %{time_connect}| SSL_negotiation_time: %{time_appconnect}| TTFB: %{time_starttransfer}| Total time: %{time_total} \n" -o /dev/null -vsL https://www.example.com
Observação: substitua example.com pelo seu nome de domínio CloudFront ou nome de domínio alternativo (CNAME) e caminho de URL.
Com base no tempo gasto para cada evento ou solicitação, consulte a seção Resolução relacionada neste artigo.
Se você observou latência no passado, verifique os campos time-taken (tempo gasto) e time-to-first-byte (tempo até o primeiro byte) nos logs de acesso do CloudFront. Os logs de acesso do CloudFront não registram o tempo gasto pelo cliente no processo de pesquisa de DNS e negociações de TCP e SSL/TLS.
Reduzindo a latência na resolução do DNS
- Aumente o tempo de armazenamento em cache do DNS no DNS do lado do cliente.
- Aumente o Time to Live (TTL) (vida útil) do cache no servidor DNS local.
- Aumente o TTL no registro DNS em seu registrador/provedor de DNS.
- Se o servidor DNS do resolvedor do seu provedor de serviços de internet estiver causando latência, considere o uso de servidores DNS públicos.
Reduzindo a latência em TCP e SSL/TLS – Tempo de negociação
- Verifique sua largura de banda da rede local e largura de banda da internet.
- Verifique se há alguma interrupção de rede em seu provedor de servidor de internet ou roteador.
- Otimize a performance da sua rede local por meio de seu provedor de serviços de internet ou de rotas de rede.
- Confirme se você está usando o resolvedor de DNS correto que permite que seu navegador encontre o local do POP mais próximo e correto.
- Para melhorar a performance do site HTTPS, mantenha sua cadeia de certificação curta.
- A latência pode ser causada por um firewall, proxy ou roteador local. Para determinar qual deles está causando latência, execute o seguinte comando MTR em seu sistema. Consulte Diagnosticando problemas de rede com MTR para obter mais informações.
mtr -rw example.com --no-dns
Reduzindo a latência no tempo gasto para o primeiro byte (TTFB) e o tempo total gasto (TTL)
Se o CloudFront retornar “X-Cache:Hit from cloudfront”
O CloudFront retorna a resposta “X-Cache: Hit from cloudfront” quando as solicitações são atendidas a partir do local da borda. Para reduzir a latência:
- Ative a compactação automática do CloudFront para compactar arquivos e aumentar a velocidade de download.
- Use o cache local ou do navegador para reduzir as solicitações ao CloudFront. Especifique o cabeçalho cache-control (controle de cache) nos arquivos para instruir os navegadores da Web a manter o conteúdo do site na memória do navegador ou no disco local por determinado período de tempo. Para obter mais informações sobre cabeçalhos de controle de cache, consulte Especificação da quantidade de tempo que o CloudFront armazena objetos em cache.
Se o CloudFront retornar “X-Cache:Miss from cloudfront”
Se o CloudFront retornar “X-Cache:Miss from cloudfront” quando a solicitação for enviada para a origem. Para reduzir a latência:
- Reduza o Round trip time (RTT) (Tempo de ida e volta) entre o local da borda do CloudFront e o seu local de origem. Se uma solicitação de um local da borda do CloudFront for para o local de origem mais próximo, o RTT será menor. No entanto, o TTFB é afetado se a solicitação for de um local da borda geograficamente distante da origem. Para otimizar o RTT, replique o servidor de origem em várias regiões geograficamente mais próximas de seus usuários. Em seguida, configure o DNS do seu nome de domínio de origem para que ele roteie a solicitação para servidores de origem com base na latência ou na geolocalização. Se você estiver usando o Amazon Route 53 como seu provedor de DNS, consulte Escolhendo uma política de roteamento para obter mais informações.
- Ative a compactação automática do CloudFront para compactar arquivos e reduzir a velocidade de download. Se o formato do seu arquivo não for compatível com a compressão automática do CloudFront, pré-compacte esse arquivo em sua origem e exiba-o com o cabeçalho Content-Encoding (codificação de conteúdo).
- Verifique a latência da origem até o CloudFront ativando a Métrica de latência de origem. Observação: aplicam-se as tarifas padrão do CloudWatch.
- Ative o CloudFront Origin Shield.
- Adicione políticas de cabeçalhos de resposta com o recurso de cabeçalho Server-Timing (tempo de servidor) ativado. Esse recurso pode ajudar você a entender os eventos que estão contribuindo para a latência entre o CloudFront e a origem.
Informações relacionadas
Este artigo foi útil?
Precisa de ajuda com faturamento ou suporte técnico?