Quando utilizzare Amazon Cloudfront o S3


232

Esistono casi d'uso che si prestano meglio al cloudfront Amazon rispetto a s3 o viceversa? Sto cercando di capire la differenza tra i 2 attraverso esempi.


1
Se stai offrendo file, solo CloudFront ti consente di avere HTTPS su un dominio personalizzato. Questo l'ha sigillato per noi.
mlissner,

Risposte:


373

Amazon S3 è progettato per l'archiviazione di file a grande capacità ea basso costo in una regione geografica specifica. * I costi di archiviazione e larghezza di banda sono piuttosto bassi.

Amazon CloudFront è una rete di distribuzione di contenuti (CDN) che inoltra e memorizza nella cache i dati Web in posizioni periferiche il più vicino possibile agli utenti.

Quando gli utenti finali richiedono un oggetto utilizzando questo nome di dominio, vengono automaticamente instradati verso la posizione laterale più vicina per la consegna ad alte prestazioni dei contenuti. ( Amazon )

I dati forniti da CloudFront possono o meno provenire da S3. Poiché è più ottimizzato per la velocità di consegna, la larghezza di banda costa un po 'di più.

Se la tua base utenti è localizzata , non vedrai troppe differenze lavorando con S3 o CloudFront (ma devi scegliere la posizione giusta per il tuo bucket S3: USA, UE, APAC). Se la tua base di utenti è diffusa a livello globale e la velocità è importante, CloudFront potrebbe essere un'opzione migliore.

Sia S3 che CloudFront consentono alias di dominio, tuttavia CloudFront consente più alias in modo che d1.mystatics.com, d2.mystatics.come d3.mystatics.comtutti possano puntare nella stessa posizione aumentando la capacità di download paralleli (questo era consigliato da Google ma con l'introduzione di SPDY e HTTP / 2 è di minore importanza).

CloudFront supporta anche CORS dal 2014 (grazie sergiopantoja).

* Nota: S3 ora può replicare automaticamente in aree aggiuntive a partire dal 2015.


10
Grazie, ottima risposta.
Kamo,

3
Esiste una differenza per i caratteri Web a causa del fatto che CloudFront non supporta completamente CORS. Memorizza nella cache le intestazioni nella risposta S3 ma per il pieno supporto CORS, alcune intestazioni dovrebbero variare a seconda del server richiedente (origine). Soluzione
Cymen

11
Per mantenerlo aggiornato, CloudFront supporta CORS ora: aws.amazon.com/about-aws/whats-new/2014/06/26/…
sergiopantoja

Tieni presente che Cloudfront elimina i contenuti molto rapidamente. L'impostazione di max-age su più di un giorno non significa che i contenuti non verranno sfrattati se non vengono toccati per 61 minuti. Non è molto utile per contenuti specifici dell'utente in quanto ciò equivale a un accesso raro.
BobB,

53

CloudFront e S3 Bucket non sono uguali . In parole povere: CloudFront ti consente di accelerare la consegna dei contenuti dei tuoi contenuti web tramite Content Delivery Network (CDN) in posizioni periferiche, mentre i secchi S3 sono i punti in cui archivi i tuoi file effettivi. Le fonti CloudFront potrebbero non provenire necessariamente da S3 ma per una più facile visualizzazione dell'integrazione S3 con CloudFront: inserisci qui la descrizione dell'immagine


Grazie! questo diagramma mostra chiaramente la differenza.
Rajan Sharma,

28

Un'altra grande differenza è che CloudFront ti consente di eseguire il mirroring del sito sul tuo server. Cloudfront quindi memorizza nella cache i file come immagini, mp3 o video utilizzando la sua rete di distribuzione dei contenuti.

Ciò ti consente di evitare di duplicare le tue risorse come faresti quando usi Amazon S3.

Tuttavia, dopo la scadenza di un file, CloudFront lo recupererà nuovamente dal tuo sito live (a costo). Quindi cloud front è il migliore per i file a cui si accede di frequente, e meno per quelli a cui si accede raramente.

Un modo per impostare la scadenza del file per apache è in .htaccess. Per esempio

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

20

Amazon CLOUDFRONT e S3 sono due diversi servizi forniti da Amazon Web Services.

Amazon S3 è un servizio di archiviazione in cui possiamo archiviare file statici come:

css, immagini, javascript, video, ecc ...

Amazon CloudFront è un middleware che si colloca tra un utente che richiede un file da AWS e il data center S3 in una regione specifica, CloudFront viene utilizzato per accelerare la distribuzione dei contenuti Web statici e dinamici da S3 all'utente.

Puoi capirlo meglio con un esempio: -

Ad esempio, l'S3 si trova nella regione AWS degli Stati Uniti orientali (Virginia settentrionale) in cui si trova un centro dati in cui archiviare i file.

Se un utente dall'India tenta di accedere a un file da un server AWS in Virginia, l'utente dovrebbe andare in quella posizione specifica con una richiesta, e ciò richiederà molto tempo.

Quello che fa CloudFront è che si pone come un middleware tra l'utente e AWS S3.


I file più utilizzati possono essere memorizzati nella cache su CloudFront e ciò che fa è, replica quei file in posizioni marginali (Per distribuire contenuti agli utenti finali con bassa latenza, Amazon CloudFront utilizza una rete globale di località marginali per la consegna dei contenuti).

Se il contenuto è già nella posizione limite con la latenza più bassa, CloudFront lo consegna immediatamente. Se il contenuto non è attualmente in quella posizione perimetrale, CloudFront lo recupera da un bucket Amazon S3 e lo fornisce all'utente il più velocemente possibile.

A ogni richiesta viene assegnato un nuovo DNS da CloudFront a S3, quindi ciò comporterebbe una riduzione del traffico e una maggiore elaborazione parallela delle richieste.

Di seguito è riportato l'elenco delle posizioni dei bordi correnti a luglio-2016: -

stati Uniti

  • Ashburn, VA (3)
  • Atlanta, GA
  • Chicago, IL
  • Dallas / Fort Worth, TX (2)
  • Hayward, California
  • Jacksonville, FL
  • Los Angeles, CA (2)
  • Miami, FL
  • New York, NY (3)
  • Newark, NJ
  • Palo Alto, CA
  • San Jose, California
  • Seattle, WA
  • South Bend, IN
  • St. Louis, MO

Europa

  • Amsterdam, Paesi Bassi (2)

  • Dublino, Irlanda

  • Francoforte, Germania (3)

  • Londra, Inghilterra (3)

  • Madrid, Spagna

  • Marsiglia, Francia

  • Milano, Italia

  • Parigi, Francia (2)

  • Stoccolma, Svezia

  • Varsavia, Polonia

Asia

  • Chennai, India

  • Hong Kong (2)

  • Mumbai, India

  • Manila, le Filippine

  • Nuova Delhi, India

  • Osaka, Giappone

  • Seoul, Corea (3)

  • Singapore (2)

  • Taipei, Taiwan

  • Tokyo, Giappone (2)

Australia

  • Melbourne, Australia

  • Sydney, Australia

Sud America

  • San Paolo, Brasile

  • Rio de Janeiro, Brasile

Da questo puoi concludere che se gli utenti sono limitati provengono dalla stessa regione in cui è ospitato il tuo S3, allora non devi andare su CloudFront e se il numero di utenti è aumentato a livello globale, dovresti sicuramente usare CloudFront per una migliore latenza e controllo del traffico.


1
questa è la risposta migliore
João Otero

14

Un altro caso per l'utilizzo di CloudFront su S3 è che è possibile utilizzare un certificato SSL per un dominio personalizzato in CloudFront mentre non è possibile in S3. Una ragione abbastanza buona imho!


2
E con il nuovo Certificate Manager è persino facile!
Phatmann,

7

Amazon S3 è un servizio di archiviazione semplice, che può essere utilizzato con una grande quantità di informazioni, ad esempio video, immagini, PDF, ecc.

CloudFront è una rete di distribuzione di contenuti, più vicina all'utente finale e utilizzata per rendere le informazioni disponibili su Amazon S3 nel minor tempo possibile.

Un esempio di utilizzo è Video on Demand.

  1. Memorizza i tuoi video in un unico posto. S3 memorizza tutti i video preregistrati in diversi formati.
  2. Hai un caso utente globale
  3. CloudFront viene utilizzato per memorizzare nella cache il video in posizioni edge. Questo può essere usato per fornire contenuti all'utente finale. La posizione viene acquisita automaticamente in base alla posizione del bordo fisico più vicina. Attualmente ci sono circa 51 posizioni dei bordi.

Alcuni vantaggi dell'utilizzo di CloudFront per il caso d'uso corretto:

  1. Latenza migliorata - Migliore esperienza dell'utente finale.
  2. Possibile riduzione dei costi di trasferimento dei dati. Poiché i dati non vengono trasferiti ogni volta dallo stesso bucket S3 in una particolare regione AWS.

Altri possibili casi d'uso:

  1. Diretta streaming
  2. Gaming
  3. Accelerazione del sito web

4

Un aspetto mancato qui è:

Amazon Cloudfront offre anche prezzi inferiori rispetto ad Amazon S3 a livelli di utilizzo più elevati.

  • Cloudfront CDN è per la distribuzione di contenuti su più server distribuiti geograficamente (CSS, JS)

  • Considerando che s3 è più di un archivio di risorse per utente meno utilizzato (immagini utente, PDF).

Puoi servire le tue risorse Cloudfront da un bucket s3 bypassando completamente il tuo server web.

( Utile in situazioni in cui il tuo server web precompila e archivia immagini e java-script. Memorizzandole su s3 significa che il footprint della memoria del tuo server è ridotto )

Es .: Su Heroku Slugs (le dimensioni delle applicazioni rispettate possono essere ridotte usando s3 e avvolgendolo con un CDN fronte cloud migliorerà la produttività)


2

Come prima cosa vorrei spiegare che Amazon S3 è il cloud Storage e Cloud Front è la rete di distribuzione dei contenuti (CDN).

Quindi puoi usare per archiviare i file su S3 e creare la distribuzione per servire il contenuto su Internet. Inoltre puoi creare una distribuzione per le regioni specifiche.



1

Amazon S3 è un'ottima piattaforma di archiviazione di oggetti se stai cercando un sistema di archiviazione distribuito a livello globale per proteggere da regioni / zone in calo. È anche ottimo per contenuti statici / fissi che non sono transazionali e cambiano come immagini, video, immagini, backup, ecc. Spero che sia d'aiuto!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.