Visão geral

Workloads como APIs dinâmicas ou páginas Web muito personalizadas podem ser armazenadas em cache. No entanto, eles se beneficiam da segurança e da aceleração fornecidas pelos serviços de borda da AWS, como o CloudFront e o Global Accelerator. Os serviços de borda da AWS operam em centenas de pontos de presença (POPs) distribuídos em todo o mundo dentro de 20 a 30 milissegundos dos usuários, em média. O tráfego para a origem é transportado de volta pela rede global da AWS em vez de passar pela Internet pública. A infraestrutura global da AWS é uma infraestrutura privada específica, altamente disponível e de baixa latência, construída em uma rede global de fibra metropolitana totalmente redundante, conectada por meio de cabos terrestres e transoceânicos em todo o mundo.

Aceleração dinâmica com o CloudFront

Além de encerrar a conexão TCP/TLS mais perto dos usuários, o CloudFront acelera o conteúdo dinâmico ao:

  • Servir conteúdo por meio de protocolos Internet modernos, como QUIC ou TLS1.3, mesmo que a origem não ofereça suporte.
  • Manter conexões com a origem. Às vezes, a solicitação precisa ser encaminhada à origem, como quando o conteúdo não está presente no cache local ou quando é puramente dinâmico, como APIs. As solicitações encaminhadas por conexões persistentes de PoPs não precisam estabelecer uma nova conexão TCP/TLS com a origem, o que remove a latência de várias viagens de ida e volta e mantém janelas de TCP escalonadas. Você pode aprimorar ainda mais a reutilização da conexão, aumentando o tempo limite de TCP Keep-Alive na sua origem e na configuração do CloudFront e, possivelmente, habilitando o Origin Shield. Além disso, a menor taxa de estabelecimento de conexão na origem reduz seu custo em termos de ajuste de escala. Mais especificamente para origens baseadas no EC2 e ALB, isso resulta em menores cobranças de Transferência de dados de saída (DTO), porque a sobrecarga de DTO do envio de certificados TLS da origem será reduzida. Observe que o CloudFront não mede a sobrecarga de TLS em seus cálculos de DTO. Você pode aprimorar a reutilização da conexão no CloudFront habilitando o Origin Shield.
    Nos depoimentos em vídeo abaixo, o Tinder e o Slack explicam como o CloudFront os ajuda a reduzir significativamente o tempo de resposta da API.

Nos depoimentos em vídeo abaixo, o Tinder e o Slack explicam como o CloudFront os ajuda a reduzir significativamente o tempo de resposta da API.

Slack fala sobre segura de APIs com o Amazon CloudFront
Otimização para performance no CloudFront: cada milissegundo conta!

Para obter informações mais detalhadas sobre como o CloudFront otimiza o tráfego dinâmico HTTP, leia este blog. Além disso, este blog explica como usar um script Python, permitindo que você entenda melhor como o CloudFront melhora a performance de solicitações dinâmicas HTTP.

Para usar o CloudFront como proxy reverso, você precisa configurar a política de Armazenamento em cache desabilitado Armazenamento em cache gerenciado na sua distribuição, no comportamento de cache relevante. Isso instruirá o CloudFront a encaminhar as solicitações recebidas de PoPs diretamente para sua origem. Por padrão, se você não configurar explicitamente uma política de solicitação de origem, o CloudFront removerá cookies, parâmetros de consulta e a maioria dos cabeçalhos antes de encaminhar a solicitação à sua origem. Excepcionalmente, o CloudFront envia o cabeçalho Host com o valor do nome de domínio da sua origem, acrescenta o cabeçalho X-Forwarded-For incrementado pelo IP do solicitante e substitui o cabeçalho User-Agent pelo valor Amazon CloudFront. Observe que quando o CloudFront é configurado como proxy reverso, ele não compacta as respostas usando o Gzip ou o Brotli.

Se você precisar que determinados atributos de solicitações sejam encaminhados ao CloudFront, deverá configurá-los explicitamente na Política de solicitação de origem. Por exemplo, você pode encaminhar todos os atributos de solicitação recebidos pelo usuário, configurando a Política de solicitação de origem gerenciada de AllViewer. Observe que, ao fazer isso, o CloudFront envia o cabeçalho Host conforme recebido pelo usuário, em contraste com o envio do valor do nome de domínio da sua origem. Quando a origem da API espera seu nome de domínio de origem no cabeçalho Host, como no API Gateway, configure em vez disso a Política de solicitação de origem gerenciada AllViewerExceptHostHeader.

Para enriquecer a solicitação encaminhada com metadados do CloudFront, como o país do usuário ou informações sobre seu dispositivo, configure os cabeçalhos relevantes do CloudFront na Política de solicitação de origem. Para cabeçalhos dinâmicos personalizados, como True-Client-IP, use uma função do CloudFront no evento de solicitação do espectador para adicioná-los upstream.

Para testar a melhoria da performance do conteúdo dinâmico com o CloudFront, confira este workshop.

Aceleração dinâmica com o Global Accelerator

O Global Accelerator direciona o tráfego do usuário ao PoP mais próximo usando o BGP Anycast. A partir de lá, o Global Accelerator transporta o tráfego de usuários até a sua origem através do backbone da Amazon. O Global Accelerator aprimora ainda mais a performance usando as seguintes técnicas:

  • Suporte para quadros Jumbo. Ao habilitar quadros Jumbo entre o local da borda da AWS e o endpoint da aplicação na região da AWS, o Global Accelerator é capaz de enviar e receber até seis vezes mais dados (carga útil) em cada pacote. O suporte para quadros Jumbo reduz o tempo total necessário para transmitir dados entre usuários e a sua aplicação.
  • Terminação TCP na borda O Global Accelerator reduz o tempo inicial de configuração do TCP ao estabelecer uma conexão TCP entre o cliente e o PoP da AWS mais próximo dele. Quase simultaneamente, uma segunda conexão TCP é estabelecida entre o PoP e o endpoint da aplicação na região da AWS.
  • Janela lateral grande de recebimento, buffers TCP e janela de congestionamento. Para tráfego encerrado por TCP, o Global Accelerator é capaz de receber e armazenar em buffer grandes quantidades de dados da sua aplicação em um período mais curto, ajustando as configurações da janela lateral de recebimento e do buffer TCP na infraestrutura de borda da AWS. Isso fornece downloads mais rápidos para os seus clientes, que agora obtêm dados em menos tempo diretamente da borda da AWS. Ao transmitir dados pela rede global da AWS, o Global Accelerator pode ampliar a janela de congestionamento de TCP para enviar quantidades maiores de dados do que o normal pela Internet pública.
Melhore a performance e a disponibilidade com o AWS Global Accelerator

Recursos

Esta página foi útil para você?