Quando usar o Amazon Cloudfront ou S3

232

Existem casos de uso que se prestam melhor ao Amazon Cloudfront sobre s3 ou o contrário? Estou tentando entender a diferença entre os 2 através de exemplos.

Kamo
fonte
1
Se você estiver exibindo arquivos, apenas o CloudFront permite que você tenha HTTPS em um domínio personalizado. Isso selou para nós.
mlissner

Respostas:

373

O Amazon S3 foi projetado para armazenamento de arquivos de grande capacidade e baixo custo em uma região geográfica específica. * Os custos de armazenamento e largura de banda são bastante baixos.

O Amazon CloudFront é uma CDN (Rede de Entrega de Conteúdo) que proxies e armazena em cache os dados da Web em locais de borda o mais próximo possível dos usuários.

Quando os usuários finais solicitam um objeto usando esse nome de domínio, eles são roteados automaticamente para o local da borda mais próximo, para fornecer alto desempenho ao seu conteúdo. ( Amazônia )

Os dados fornecidos pelo CloudFront podem ou não vir do S3. Como é mais otimizada para a velocidade de entrega, a largura de banda custa um pouco mais.

Se sua base de usuários estiver localizada , você não verá muita diferença ao trabalhar com o S3 ou o CloudFront (mas precisará escolher o local certo para o seu bucket do S3: EUA, UE, APAC). Se sua base de usuários estiver espalhada globalmente e a velocidade for importante, o CloudFront pode ser uma opção melhor.

Ambos S3 e CloudFront permitir aliases de domínio, no entanto CloudFront permite que vários aliases para que d1.mystatics.com, d2.mystatics.come d3.mystatics.compoderia todos apontam para o mesmo local aumentando a capacidade para downloads paralelos (este utilizado para ser recomendado pelo Google , mas com a introdução de SPDY e HTTP / 2 é de menor importância).

O CloudFront também suporta o CORS a partir de 2014 (graças à sergiopantoja).

* Nota: o S3 agora pode replicar automaticamente para regiões adicionais a partir de 2015.

eillarra
fonte
10
Obrigado, ótima resposta.
Kamo
3
Há uma diferença para as fontes da Web devido ao CloudFront não suportar totalmente o CORS. Ele armazena em cache os cabeçalhos na resposta S3, mas, para suporte total ao CORS, alguns cabeçalhos devem variar dependendo do servidor solicitante (origem). Solução alternativa
Cymen
11
Para manter este atualizado, CloudFront suporta CORS agora: aws.amazon.com/about-aws/whats-new/2014/06/26/...
sergiopantoja
Esteja ciente de que o Cloudfront despeja conteúdo muito rapidamente. Definir a idade máxima para mais de um dia não significa que seu conteúdo não será despejado se não for tocado por 61 minutos. Não há muita utilidade para o conteúdo específico do usuário, pois isso significa acesso pouco frequente.
Bobb
53

CloudFront e S3 Bucket não são os mesmos . Nos termos do leigo: o CloudFront permite acelerar a entrega de conteúdo da web via CDN (Content Delivery Network) em locais de borda, enquanto os S3 Buckets são onde você armazena seus arquivos reais. As fontes do CloudFront podem não ser necessariamente do S3, mas para facilitar a visualização da integração do S3 com o CloudFront: insira a descrição da imagem aqui

mel3kings
fonte
obrigado! Este diagrama demonstra claramente a diferença.
Rajan Sharma
28

Outra grande diferença é que o CloudFront permite que você espelhe o site no seu servidor. O Cloudfront armazena em cache os arquivos, como imagens, mp3 ou vídeo, usando sua rede de entrega de conteúdo.

Isso evita que você duplique seus ativos como faria ao usar o Amazon S3.

No entanto, após a expiração de um arquivo, o CloudFront o buscará novamente em seu site ativo (a custo). Portanto, a frente da nuvem é melhor para arquivos acessados ​​com frequência e menos para arquivos acessados ​​com pouca frequência.

Uma maneira de definir a validade do arquivo para o apache é em .htaccess. Por exemplo

<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>
dwenaus
fonte
20

O Amazon CLOUDFRONT e o S3 são dois serviços diferentes fornecidos pelo Amazon Web Services.

O Amazon S3 é um serviço de armazenamento no qual podemos armazenar arquivos estáticos, como:

css, imagens, javascripts, vídeos, etc ...

O Amazon CloudFront é um middleware que fica entre um usuário que solicita um arquivo da AWS e do data center S3 em uma região específica. O CloudFront é usado para acelerar a distribuição de seu conteúdo estático e dinâmico da Web do S3 para o usuário.

Você pode entender melhor com um exemplo: -

Por exemplo, o seu S3 está localizado na região da AWS, leste dos EUA (Virgínia do Norte), que é um local do data center para armazenar seus arquivos.

Se um usuário da Índia tentar acessar um arquivo de um servidor da AWS na Virgínia, o usuário precisará ir para esse local específico com uma solicitação, e isso levará muito tempo.

O que o CloudFront faz é permanecer como um middleware entre o usuário e o AWS S3.


Os arquivos mais frequentemente usados ​​podem ser armazenados em cache no CloudFront e o que ele faz é replicar esses arquivos em locais de borda (para fornecer conteúdo aos usuários finais com menor latência, o Amazon CloudFront usa uma rede global de locais de borda para entrega de conteúdo).

Se o conteúdo já estiver no local da borda com a menor latência, o CloudFront o entregará imediatamente. Se o conteúdo não estiver atualmente naquele local de borda, o CloudFront o recuperará de um bucket do Amazon S3 e o fornecerá ao usuário o mais rápido possível.

Cada solicitação recebe um novo DNS do CloudFront para o S3, portanto, isso resultaria em menor tráfego e mais processamento paralelo de solicitações.

A seguir, é apresentada a lista dos locais de bordas atuais de julho a 2016: -

Estados Unidos

  • Ashburn, Virgínia (3)
  • Atlanta, GA
  • Chicago, IL
  • Dallas / Fort Worth, TX (2)
  • Hayward, CA
  • Jacksonville, FL
  • Los Angeles, Califórnia (2)
  • Miami, FL
  • Nova Iorque, Nova Iorque (3)
  • Newark, NJ
  • Palo Alto, CA
  • San Jose, CA
  • Seattle, WA
  • South Bend, IN
  • St. Louis, Missouri

Europa

  • Amsterdã, Holanda (2)

  • Dublin, Irlanda

  • Frankfurt am Main (3)

  • Londres, Inglaterra (3)

  • Madri, Espanha

  • Marselha, França

  • Milão, Itália

  • Paris, França (2)

  • Estocolmo, Suécia

  • Varsóvia, Polónia

Ásia

  • Chennai, Índia

  • Hong Kong (2)

  • Mumbai, índia

  • Manila, Filipinas

  • Nova Deli, India

  • Osaka, Japão

  • Seul, Coréia (3)

  • Singapura (2)

  • Taipei, Taiwan

  • Tóquio, Japão (2)

Austrália

  • Melbourne, Austrália

  • Sydney, Austrália

América do Sul

  • São Paulo, Brasil

  • Rio de Janeiro, Brasil

Com isso, você pode concluir que, se os usuários são limitados, são da mesma região em que o seu S3 está hospedado, não é necessário ir para o CloudFront e, se o número de usuários for aumentado em nível global, você deve definitivamente usar o CloudFront para melhor latência e controle de tráfego.

Patrick R
fonte
1
esta é a melhor resposta
João Otero
14

Outro caso para usar o CloudFront sobre S3 é que você pode usar um certificado SSL para um domínio personalizado no CloudFront, enquanto não pode no S3. Uma boa razão imho!

rgubby
fonte
2
E com o novo Gerenciador de certificados é ainda mais fácil!
Phatmann
7

O Amazon S3 é um serviço de armazenamento simples, que pode ser usado em grande quantidade de informações, como vídeos, imagens, PDF etc.

O CloudFront é uma rede de entrega de conteúdo, mais próxima do usuário final e usada para disponibilizar as informações no Amazon S3 no menor tempo possível.

Um exemplo de caso de uso é o Video on Demand.

  1. Você armazena seus vídeos em um só lugar. O S3 armazena todos os vídeos pré-gravados em diferentes formatos.
  2. Você tem caso de usuário global
  3. O CloudFront é usado para armazenar em cache o vídeo nos locais de borda. Isso pode ser usado para entregar conteúdo ao usuário final. A localização é escolhida automaticamente com base na localização da borda física mais próxima. Atualmente, existem cerca de 51 pontos de presença.

Algumas vantagens de usar o CloudFront para o caso de uso correto:

  1. Latência aprimorada - melhor experiência do usuário final.
  2. Possível custo reduzido de transferência de dados. Como os dados não são sempre transferidos do mesmo bloco S3 em uma região específica da AWS.

Outros casos de uso possíveis:

  1. Transmissão ao vivo
  2. Jogos
  3. Aceleração de site
Gurmeet_BlazeClan
fonte
4

Um aspecto esquecido aqui é:

O Amazon Cloudfront também oferece preços mais baixos que o Amazon S3 em níveis de uso mais altos.

  • O Cloudfront CDN é para distribuição de conteúdo em vários servidores distribuídos geograficamente (CSS, JS)

  • Considerando que s3 é mais um armazenamento de recursos menos usado por usuário (imagens de usuário, PDFs).

Você pode servir seus recursos do Cloudfront a partir de um bucket s3, ignorando completamente o servidor da web.

( Útil em situações em que o servidor da Web pré-compila e armazena imagens e java-script. Armazená-los no s3 significa que o espaço ocupado pela memória do servidor é reduzido )

Ex: No Heroku Slugs (os tamanhos de aplicativos compatíveis podem ser reduzidos usando o s3 e envolvê-lo com CDN na frente da nuvem para melhorar a taxa de transferência)

Abdômen
fonte
2

Como primeiro, gostaria de explicar que o Amazon S3 é a nuvem Storage e Cloud Front é a rede de entrega de conteúdo (CDN).

Portanto, você pode usar para armazenar os arquivos no S3 e criar a distribuição para veicular o conteúdo pela Internet. Além disso, você pode criar distribuição para regiões específicas.

Kailash Malav
fonte
1

O Amazon S3 é uma excelente plataforma de armazenamento de objetos se você estiver procurando por um sistema de armazenamento distribuído globalmente para proteger contra regiões / zonas em queda. Também é ótimo para conteúdo fixo / estático que não é transacional e muda, como fotos, vídeos, imagens, backups, etc. Espero que ajude!

JStorage
fonte