Vejo um aumento na latência nas respostas do Amazon CloudFront. Quero identificar a causa e reduzir a latência.
Breve descrição
Para solucionar problemas de latência do CloudFront, identifique os eventos que causaram a latência. Em seguida, siga estas etapas de solução de problemas para reduzir a latência.
Resolução
Identifique os eventos que causam latência
Conclua as etapas a seguir:
- Execute o seguinte comando curl:
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 do CloudFront ou nome de domínio alternativo (CNAME) e caminho de URL.
- Verifique quanto tempo leva cada estágio de uma solicitação de rede nas ferramentas de desenvolvedor do seu navegador web. Por exemplo, se você usa o Mozilla Firefox, verifique a guia Tempo. Para obter mais informações, consulte a guia Tempo no site do Firefox. Se você observou latência no passado, verifique os campos time-taken e time-to-first-byte nos logs de acesso do CloudFront. Os logs de acesso do CloudFront não registram em log o tempo gasto pelo cliente no processo de consulta de DNS e nas negociações de TCP e SSL/TLS.
Reduza a latência na resolução de DNS
Conclua as etapas a seguir:
- Aumente o tempo de cache do DNS no DNS do lado do cliente.
- Aumente o tempo de vida (TTL) do cache no servidor DNS local.
- Aumente o TTL no registro DNS em seu registrador de DNS.
- Se o servidor DNS do resolvedor do seu provedor de serviços de internet causar latência, use servidores DNS públicos.
Reduza a latência em tempos de negociação de TCP e SSL/TLS
Conclua as etapas a seguir:
- Verifique a largura de banda da sua rede local e a largura de banda da internet.
- Verifique se há alguma interrupção na rede em seu provedor de serviço de internet ou roteador.
- Otimize o desempenho da sua rede local por meio de seu provedor de serviços de internet ou rotas de rede.
- Certifique-se de que o resolvedor de DNS permite que seu navegador web encontre o local da borda mais próximo e correto.
- Para melhorar o desempenho do site HTTPS, mantenha sua cadeia de certificação curta.
- Um firewall, proxy ou roteador local pode causar latência. Para diagnosticar a latência da rede, execute o seguinte comando MTR:
mtr -rw example.com --no-dns
Observação: substitua example.com pelo seu nome de domínio.
Reduza a latência em TTFB, TTL e RTT
Conclua estas etapas para reduzir a latência em tempo gasto para o primeiro byte (Time Taken for First Byte, TTFB), tempo total gasto (Total Time Taken, TTT) e tempo de ida e volta (Round Trip Time, RTT).
O CloudFront retorna um valor de resposta "X-Cache: Hit from cloudfront"
O CloudFront retorna "X-Cache:Hit from cloudfront" quando as solicitações são atendidas do cache. Para reduzir a latência, conclua as seguintes etapas:
O CloudFront retorna um valor de resposta "X-Cache: Miss from cloudfront"
O CloudFront retorna "X-Cache:Miss from cloudfront" quando a solicitação vai para a origem. Para reduzir a latência, conclua as seguintes etapas:
- Reduza o RTT entre o local da borda do CloudFront e 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 da AWS geograficamente mais próximas de seus usuários. Em seguida, configure o DNS do seu nome de domínio de origem para que ele encaminhe a solicitação aos servidores de origem com base na latência ou na geolocalização. Se você usa o Amazon Route 53 como seu provedor de DNS, consulte Escolher 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 compactação automática do CloudFront, pré-compacte o arquivo em sua origem e adicione um cabeçalho Content-Encoding.
- Para verificar a latência da origem até o CloudFront, ative a métrica de latência de origem.
Observação: aplicam-se as taxas padrão do CloudWatch.
- Ative o CloudFront Origin Shield para adicionar uma camada extra de cache que minimiza a carga de suas origens e aprimora a disponibilidade.
- Adicione políticas de cabeçalhos de resposta com o atributo de cabeçalho Server-Timing ativado. Esse atributo pode ajudar você a entender os eventos que contribuem para a latência entre o CloudFront e a origem.
Rotas de tráfego do site para o local da borda errado
O CloudFront direciona o tráfego com base na classe de preço da distribuição, nos bancos de dados de geolocalização associados e no suporte a EDNS0-Client-Subnet. Dependendo de uma combinação desses fatores, os visualizadores do seu site podem ser direcionados para um local da borda inesperado. Isso pode aumentar a latência geral para recuperar um objeto de um local da borda do CloudFront.
Se o tráfego do seu site for direcionado para o local da borda errado, verifique seus requisitos de configuração. Para obter mais informações, consulte Por que o tráfego do meu conteúdo da web foi roteado para o local da borda errado do CloudFront?
Informações relacionadas
Quais informações eu forneço ao AWS Support para solucionar problemas de latência de distribuição na web do CloudFront?
Aumentar a proporção de solicitações fornecidas diretamente de caches do CloudFront (taxa de acertos do cache)
Gerenciar o tempo de permanência do conteúdo no cache (expiração)
Como soluciono os erros 502 e 503 que as funções do Lambda@Edge causam no CloudFront?