Utilizar AWS S3 vs Cloudfront

Uma vez que o sistema de ficheiros heroku é efémero, estou a planear usar a AWS para activos estáticos para o meu projecto django em heroku. Estou a ver dois artigos em conflito, um que aconselha a utilização do AWS S3. Este diz para usar S3

Https://devcenter.heroku.com/articles/s3

enquanto outro abaixo diz, S3 tem desvantagens e para usar Cloudfront CDN em vez {[[2]}

Https://devcenter.heroku.com/articles/using-amazon-cloudfront-cdn

muitos desenvolvedores fazem uso do serviço S3 da Amazon para servir estática ativos que foram carregados anteriormente, manualmente ou por alguns forma do processo de construção. Enquanto isso funciona, isso não é recomendado como S3 foi projetado como um serviço de armazenamento de arquivos e não para a entrega ideal de arquivos sob carga. Por conseguinte, ao serviço de activos estáticos da S3 não é recomendado.

Author: dowjones123, 2014-08-21

3 answers

A Amazon CloudFront é uma rede de distribuição de conteúdo (CDN) que se integra com outros serviços Web da Amazon, como o S3, que nos dá uma maneira fácil de distribuir conteúdo para usuários finais com baixa latência, altas velocidades de transferência de dados. A CloudFront disponibiliza os seus ficheiros estáticos a partir de centros de dados de todo o mundo (chamados de "locais extremos"). Quando um visitante solicita um arquivo de seu site, ele ou ela é invisivelmente redirecionado para uma cópia do arquivo no local de borda mais próximo (agora AWS tem em torno de 35 locais de borda espalhados pelo mundo), o que resulta em tempos de download mais rápidos do que se o visitante tivesse acessado o conteúdo do S3 bucket localizado em uma região particular. Então, se a sua base de utilizadores estiver espalhada pelo mundo, a melhor opção é usar a CloudFront, caso contrário, se os seus utilizadores estiverem localizados, não encontrará muita diferença usando a CloudFront do que a S3 (mas neste caso terá de escolher o local certo para o seu balde S3: EUA Leste, EUA Oeste, Ásia Pacífico, UE, América do Sul etc)

Características comparativas de Amazon S3 e CloudFront

 6
Author: Tapaswi Panda, 2017-03-03 08:35:31

A minha recomendação é usar a CloudFront em cima de Whitenoise . Você estará servindo os ativos estáticos diretamente a partir do seu aplicativo Heroku, mas CloudFront como o CDN vai assumir assim que você chegar à escala.

O Whitenoise simplifica radicalmente os processos de construção e a necessidade de usar cabeçalhos de caching complicados.

Leia http://whitenoise.evans.io/en/latest pelo manifesto completo.

(Note-se que o branco só é relevante para activos estáticos agrupados com o seu app, não para arquivos carregados pelo usuário, que ainda requerem S3 para armazenamento adequado. Mas ainda queres usar o CF.)

 3
Author: Yuval Adam, 2014-08-21 18:23:24
Na verdade, deve usar ambos. A CloudFront só funciona como CDN, o que basicamente significa que esconde recursos em locais de ponta por todo o mundo. Para que isso funcione, ele tem que inicialmente baixar esses recursos de um local de origem, sempre que eles expiram ou ainda não existem. As distribuições da CloudFront podem ter um dos dois tipos de origem possíveis. S3 ou EC2. No seu caso, você deve armazenar seus bens em S3 e conectar o balde a uma distribuição CloudFront. Use os links CloudFront para realmente servir os ativos, e S3 para armazenamento.

Isto assegurará o melhor desempenho possível, bem como o manuseamento correcto e escalável da carga.

Espero que isto ajude, avise-me se precisar de informações adicionais na secção de comentários.

 2
Author: andreimarinescu, 2014-08-21 10:21:24