O AWS CloudFront * deve aumentar * o tempo de carregamento dos arquivos acessados com pouca frequência?

9

Eu sou novo em CDNs e experimento com o CloudFront. Eu configurei tudo e tudo parece estar funcionando bem. Eu posso criar uma imagem estática em uma página e acessá-lo através da minha distribuição do CloudFront. Estou usando uma origem personalizada (ou seja, não um bucket s3).

Estou preocupado que eu possa estar pior do ponto de vista do desempenho. Eu tenho uma página de teste que está carregando as mesmas 20 ou mais imagens com e sem o CDN. Olhando para o net panel no Firebug, a primeira vez que eu carrego esta página, as imagens que são carregadas diretamente do servidor de origem são muito mais rápidas. Em carregamentos de páginas subseqüentes, os benefícios do CDN se tornam óbvios - após as atualizações de 3 a 5, o CDN está se saindo melhor do que o servidor de origem.

Então, eu posso ver que em uma página popular em nosso site que está sendo acertada o tempo todo, isso será um benefício. E eu deveria esperar um benefício porque estou em Seattle (na esquina da Amazon) e meu servidor está na CA.

O problema é que, se eu deixar a página por alguns minutos e depois recarregar, as coisas estarão de volta à estaca zero, com o CloudFront sendo pior que o servidor de origem. Isso é esperado? As coisas saem do "cache" do CDN tão rapidamente?

É possível que algo na minha configuração esteja prejudicando o desempenho? Ou a realidade é que o CDN só será positivo para o conteúdo que está sendo acessado a cada poucos segundos em média?

(cross postado do fórum da AWS porque eu fui mimado para sempre pelos tempos de resposta do SO)

ATUALIZAÇÃO:

Existem duas boas respostas abaixo que vale a pena analisar se você tiver dúvidas sobre o desempenho do CloudFront. Eu encontrei recentemente uma explicação para o meu problema específico não foi mencionado. Eu tinha deixado o TTL em 5 minutos como um descuido. Como também estou usando uma origem personalizada, há uma viagem de ida e volta adicional ao servidor de nomes autoritativo para resolver isso para o domínio real do Amazon CloudFront. Agora que a configuração do TTL está de volta a 12 horas, parece que as cargas longas acontecem mais raramente.

    
por Greg 26.03.2011 / 20:19

4 respostas

5

A Cloudfront define um cabeçalho em respostas como "X-Cache: Hit from cloudfront" nas respostas. Presumivelmente, ele dirá "Miss" se seu arquivo não estava no cache do nó para o qual você foi direcionado.

É possível que seus arquivos não sejam populares o suficiente, então eles são ejetados do cache do CloudFront por conteúdo mais popular, mesmo que não tenham decorrido 24 horas. Também é possível que a sobrecarga de IO ou alguma outra circunstância dentro de um determinado nó do CloudFront torne o acesso lento. A Cloudfront é muito barata em comparação com a Akamai ou a LimeLight. Desempenho pior e níveis de serviço garantidos são duas das razões para usar os players mais caros.

Eu faria um teste, colocando apenas um arquivo popular no cloudfront em produção e, em seguida, usaria testes periódicos para ver se o CloudFront está indicando ocorrências (também registrar o tempo total de transação).

    
por 13.04.2011 / 22:58
7

É possível. No entanto, um objetivo de um CDN é escalabilidade. Você pode esperar que o CDN realize o mesmo se você jogar 100 visitas ao mesmo tempo ou 1 milhão de visitas de uma só vez.

No que diz respeito à sua configuração, não há nada que eu possa saber com as informações que você forneceu, mas acho que o ponto acima é o que torna um CDN tão valioso. Se você estiver criando um site que não recebe muito tráfego, talvez seja melhor sem o CDN. No entanto, o CDN fornecerá uma carga mais leve em seu servidor da Web se você obtiver muito tráfego, porque você está passando a veiculação de sua mídia para outro servidor. Um último ponto, um bom CDN (e o da Amazon) irá usar sua extensa rede para servir seu conteúdo do local mais próximo do solicitante. Em muitos casos, eles podem servir o conteúdo do ISP do solicitante, o que significa tempos de carregamento muito rápidos.

Espero que ajude.

    
por 26.03.2011 / 23:46
1

Eu entendi mal? O controle de cache não gerencia quanto tempo as coisas vivem nos pontos de presença antes que os pontos de presença os recarregem do S3? Então, certamente eles são relevantes para a sua situação, quer você use S3 ou sua própria origem? Não?

A FAQ da Amazon diz: "P. Por quanto tempo o Amazon CloudFront manterá meus arquivos nos pontos de presença? Por padrão, se nenhum cabeçalho de controle de cache for definido, cada localização de borda verificará uma versão atualizada de seu arquivo sempre que receber uma solicitação mais de 24 horas após a hora anterior, ele verificou a origem quanto a alterações nesse arquivo. Você pode definir esse período de expiração em apenas 1 hora, ou o tempo que desejar, definindo os cabeçalhos de controle de cache em seus arquivos em sua origem. O Amazon CloudFront usa esses cabeçalhos de controle de cache para determinar com que frequência ele precisa verificar a origem de uma versão atualizada desse arquivo.Se seus arquivos não forem alterados com muita frequência, é uma prática recomendada definir um longo período de expiração e implementar um sistema de controle de versão para gerenciar atualizações em seus arquivos. "

[Suponho que a última frase significa "azar se você configurá-la para 50 anos e depois desejar alterar o arquivo"].

O ponto principal de usar um CDN não é o de hospedar conteúdo estático? Em caso afirmativo, ajudaria a usar TTL consideravelmente mais longo que um dia? Para praticamente tudo (todas as imagens e CSS), eu uso Cache-Control="max-age = 604800, public, must-revalidate" (ou seja, 1 semana). Na minha experiência, os arquivos definitivamente demoram até uma semana para mudar se eu fizer o upload de novas versões para o S3.

Espero que isso ajude. [BTW: No seu ponto mais geral, eu também me pergunto se um CDN ajuda o desempenho tanto quanto você pensa que vai. Estou prestes a mover todo o meu site (CDN incluído) para um servidor dedicado super rápido e fazer alguns testes para descobrir.]

    
por 26.04.2011 / 16:05
1

As razões para usar o CDN é se você está esperando

  • Conteúdo estático - atualizações pouco frequentes ou controladas
  • Visualizado no mundo
  • Acessado com frequência

Nosso site é acessado com pouca frequência como seu caso, mas temos uma configuração de serviço de monitoramento que solicita nosso site em todo o mundo. Por isso, mantém os caches CDN aquecidos. Eu também gostaria de compartilhar nosso caso, que é simples e demonstra a capacidade do CDN.

Ainda mais esperamos uma cobrança mensal de 2,2 $ em vez de 7 $ para o godaddy server (que não pode lidar com surtos)

    
por 02.12.2014 / 09:46