Eu sou novo nas CDNs e estou experimentando o CloudFront. Eu configurei tudo e tudo parece estar funcionando bem. Posso criar uma imagem estática em uma página e acessá-la 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 carrega as mesmas 20 ou mais imagens com e sem a CDN. Olhando para o painel de rede no Firebug, na primeira vez que carrego esta página, as imagens carregadas diretamente do servidor de origem são muito mais rápidas. Em carregamentos de páginas subseqüentes, os benefícios da CDN se tornam óbvios - após 3-5 atualizações, a CDN está se saindo melhor que o servidor de origem.
Para que eu possa ver que em uma página popular em nosso site que está sendo acessada o tempo todo, isso será um benefício. E devo esperar um benefício, porque estou em Seattle (ao virar da esquina da Amazon) e meu servidor está na CA.
O problema é que, se eu deixar a página por alguns minutos e recarregar, tudo voltará à estaca zero, com o CloudFront sendo pior que o servidor de origem. Isso é esperado? As coisas saem do "cache" da CDN tão rapidamente?
É possível que algo na minha configuração esteja prejudicando o desempenho? Ou é a realidade de que a CDN será apenas positiva para o conteúdo que está sendo acessado atualmente a cada segundo em média?
(publicação cruzada no fórum da AWS porque eu fui estragada para sempre pelos tempos de resposta da SO)
ATUALIZAR:
Há duas boas respostas abaixo que valem a pena procurar se você tiver dúvidas sobre o desempenho do CloudFront. Recentemente, eu encontrei uma explicação para o meu problema específico não foi mencionado. Eu havia deixado o TTL aos 5 minutos como um descuido. Como também estou usando uma origem personalizada, há uma ida e volta adicional ao servidor de nomes autoritativo para resolver isso no domínio real do Amazon CloudFront. Agora que a configuração TTL está de volta às 12 horas, parece que as cargas longas acontecem mais raramente.
fonte
Respostas:
O Cloudfront define um cabeçalho nas respostas como "X-Cache: Hit from cloudfront" nas respostas. Presumivelmente, ele dirá "Miss" se o seu arquivo não estava no cache do nó ao 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 depois de 24 horas. Também é possível que a sobrecarga de E / S ou alguma outra circunstância dentro de um nó do CloudFront específico torne o acesso lento. Cloudfront é muito barato em comparação com Akamai ou LimeLight. O pior desempenho e os níveis de serviço garantidos são dois dos motivos para usar os players mais caros.
Eu faria um teste, colocando apenas um arquivo popular em cloudfront na produção e, em seguida, usava testes periódicos para verificar se o CloudFront está indicando hits (também registra o tempo total de transação).
fonte
É possível. No entanto, um objetivo de uma CDN é a escalabilidade. Você pode esperar que a CDN execute o mesmo se fizer 100 visitas de uma só vez 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 fornecidas, mas acho que o ponto acima é o que torna uma CDN tão valiosa. Se você estiver criando um site que não recebe muito tráfego, pode ser melhor sem a CDN. No entanto, a CDN fornecerá uma carga mais leve no servidor da Web se você receber muito tráfego porque está transmitindo a veiculação da mídia para outro servidor. Um último ponto, uma boa CDN (e a Amazon é) utilizará sua extensa rede para veicular seu conteúdo a partir do local mais próximo ao solicitante. Em muitos casos, eles podem veicular o conteúdo do ISP do solicitante, o que significa tempos de carregamento MUITO rápidos.
Espero que ajude.
fonte
Eu entendi errado? O controle de cache não gerencia por quanto tempo as coisas permanecem nos locais de borda antes de os locais de borda serem recarregados do S3? Então, certamente, eles são relevantes para a sua situação, se você usa o S3 ou sua própria origem? Não?
As Perguntas frequentes da Amazon dizem: "P. Por quanto tempo o Amazon CloudFront manterá meus arquivos nos locais de borda? Por padrão, se nenhum cabeçalho de controle de cache estiver definido, cada local de borda procurará uma versão atualizada do seu arquivo sempre que receber uma solicitação além de 24 horas após a hora anterior, verificou a origem para alterações nesse arquivo, chamado de "período de validade". 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 nos arquivos da sua origem.O Amazon CloudFront usa esses cabeçalhos de controle de cache para determinar com que frequência ele deve verificar as origem para uma versão atualizada desse arquivo. Se os arquivos não forem alterados com frequência, é recomendável definir um longo período de validade e implementar um sistema de controle de versão para gerenciar as atualizações nos arquivos. "
[Presumo que a última frase signifique "azar se você a definir para 50 anos e depois quiser alterar o arquivo".]
Não é o ponto principal do uso de uma CDN que hospeda conteúdo estático? Nesse caso, ajudaria a usar TTL consideravelmente mais longo do que um dia? Para praticamente tudo (todas as imagens e CSS), eu uso o Cache-Control = "max-age = 604800, public, must-revalidate" (ou seja, 1 semana). Na minha experiência, os arquivos definitivamente levam até uma semana para serem alterados se eu carregar novas versões no S3.
Espero que isto ajude. [BTW: No seu ponto mais geral, eu também me pergunto se uma CDN ajuda na performance tanto quanto você acha que vai. Estou prestes a mudar meu site inteiro (CDN incluído) para um servidor dedicado super-rápido e fazer alguns testes para descobrir.]
fonte
Os motivos para usar a CDN é se você está esperando
Nosso site é acessado com pouca frequência como o seu caso, mas temos uma configuração de serviço de monitoramento que solicita nosso site em todo o mundo. Portanto, mantém os caches da CDN quentes. Eu também gostaria de compartilhar nosso caso, que é simples e demonstra a capacidade da CDN.
Além disso, esperamos uma cobrança mensal de 2,2 $ em vez de 7 $ para o servidor godaddy (que não pode lidar com surtos)
fonte