AWS EFS vs EBS vs S3 (differenze e quando utilizzare?)


315

Secondo il titolo di questa domanda, quali sono le differenze pratiche tra AWS EFS, EBS e S3?

La mia comprensione di ciascuno:

  • S3 è una struttura di archiviazione accessibile ovunque
  • EBS è un dispositivo che puoi montare su EC2
  • EFS è un file system che puoi montare su EC2

Quindi perché dovrei usare EBS su EFS? Sembra che abbiano gli stessi casi d'uso ma differenze semantiche minori? Sebbene EFS sia replicato su AZ in cui EBS è solo un dispositivo montato. Immagino che la mia comprensione di EBS sia carente, quindi non sono in grado di distinguere.

Perché scegliere S3 su EFS? Entrambi archiviano i file, si ridimensionano e vengono replicati. Immagino che con S3 devi usare l'SDK dove come con EFS essendo un file system puoi usare i metodi I / O standard dal tuo linguaggio di programmazione preferito per creare file. Ma è l'unica vera differenza?


2
EFS è come NFS. EBS è essenzialmente una SAN. S3 è un po ' come WebDav. Glacier is probabilmente blueray DVDs storagemojo.com/2014/04/25/amazons-glacier-secret-bdxl
Neil McGuigan

Risposte:


466

Una sola risposta: SOLDI: D

1 GB da archiviare in US-East-1: (aggiornato a 2016.dec.20)

  • Ghiacciaio: $ 0,004 / Mese (Nota: forte riduzione dei prezzi nel 2016)
  • S3: $ 0,023 / mese
  • S3-IA (annunciato nel 2015.09): $ 0,0125 / mese (+ $ 0,01 / addebito per il recupero dei concerti)
  • EBS: $ 0,045-0,1 / mese (dipende dalla velocità - SSD o meno) + costi IOPS
  • EFS: $ 0,3 / mese

Ulteriori opzioni di archiviazione, che possono essere utilizzate per l'archiviazione temporanea dei dati durante / prima dell'elaborazione:

  • SNS
  • SQS
  • Flusso di Kinesis
  • DynamoDB, SimpleDB

I costi sopra riportati sono solo esempi. Ci possono essere differenze per regione e può cambiare in qualsiasi momento. Inoltre ci sono costi aggiuntivi per il trasferimento dei dati (su Internet). Comunque loro mostrano un rapporto tra i prezzi dei servizi .

Ci sono molte più differenze tra questi servizi:

EFS è:

  • Generalmente disponibile (fuori anteprima), ma potrebbe non essere ancora disponibile nella tua regione
  • File system di rete (ciò significa che può avere una latenza maggiore ma può essere condivisa tra più istanze; anche tra regioni)
  • È costoso rispetto a EBS (~ 10 volte di più) ma offre funzionalità extra.
  • È un servizio altamente disponibile.
  • È un servizio gestito
  • È possibile collegare l'archiviazione EFS a un'istanza EC2
  • È possibile accedere contemporaneamente da più istanze EC2
  • Dal 2016.dec.20 è possibile collegare l'archiviazione EFS direttamente ai server locali tramite Direct Connect. ()

EBS è:

  • Un blocco di archiviazione (quindi è necessario formattarlo). Ciò significa che sei in grado di scegliere il tipo di file system che desideri.
  • Essendo un archivio a blocchi, puoi usare Raid 1 (o 0 o 10) con più blocchi di archiviazione
  • È veramente veloce
  • È relativamente economico
  • Con i nuovi annunci di Amazon, è possibile archiviare fino a 16 TB di dati per archiviazione su SSD-s.
  • È possibile eseguire l'istantanea di un EBS (mentre è ancora in esecuzione) per motivi di backup
  • Ma esiste solo in una particolare regione. Sebbene sia possibile migrarlo in un'altra regione, non è possibile accedervi solo attraverso le regioni (solo se lo si condivide tramite EC2; ma ciò significa che si dispone di un file server)
  • È necessaria un'istanza EC2 a cui collegarlo
  • Nuova funzionalità (2017.Feb.15): ora puoi aumentare le dimensioni del volume, regolare le prestazioni o cambiare il tipo di volume mentre il volume è in uso. Puoi continuare a utilizzare l'applicazione mentre la modifica ha effetto.

S3 è:

  • Un archivio oggetti (non un file system).
  • Puoi archiviare file e "cartelle" ma non puoi avere blocchi, autorizzazioni ecc. Come faresti con un file system tradizionale
  • Ciò significa che, per impostazione predefinita, non puoi semplicemente montare S3 e utilizzarlo come server web
  • Ma è perfetto per archiviare immagini e video per il tuo sito Web
  • Ottimo per l'archiviazione a breve termine (ad esempio alcune settimane). È buono anche per l'archiviazione a lungo termine, ma Glacier è più conveniente.
  • Ottimo per l'archiviazione dei registri
  • Puoi accedere ai dati da ogni regione (potrebbero essere applicati costi aggiuntivi)
  • Altamente disponibile, ridondante. Fondamentalmente la perdita di dati non è possibile (99.999999999% di durabilità, 99.9 uptime SLA)
  • Molto più economico di EBS.
  • Puoi pubblicare il contenuto direttamente su Internet, puoi persino avere un sito Web completo (statico) che funziona direttamente da S3, senza un'istanza EC2

Il ghiacciaio è:

  • Archiviazione a lungo termine
  • Estremamente economico da conservare
  • Potenzialmente molto costoso da recuperare
  • Richiede fino a 4 ore per "rileggere" i tuoi dati (quindi archivia solo gli articoli che sai che non dovrai recuperare a lungo)

Come è stato menzionato nel commento di JDL, ci sono molti aspetti interessanti in termini di prezzi. Ad esempio Glacier, S3, EFS alloca lo spazio di archiviazione in base al proprio utilizzo, mentre in EBS è necessario predefinire lo spazio di archiviazione allocato. Ciò significa che è necessario sopravvalutare. (Tuttavia è facile aggiungere più spazio di archiviazione ai volumi EBS, richiede un po 'di ingegneria, il che significa che "paghi in eccesso" lo spazio di archiviazione EBS, il che lo rende ancora più costoso.)

Fonte: AWS Storage Update - Nuova opzione di archiviazione S3 a basso costo e riduzione del prezzo del ghiacciaio


8
Il ghiacciaio è estremamente costoso se i dati devono essere ripristinati rapidamente liangzan.net/aws-glacier-calculator
Anatoly

6
Non S3sono d' accordo che è più economico di EBS. Con S3te puoi avere solo 2000 PUT e 20.000 GET gratis. Con EBSte hai 2 000 000 di operazioni I / O gratuite. Ecco il mio QA stackoverflow.com/questions/34048866/…
Green

2
2 000 000 di costi di lettura S3 ~ 0,4 $, 2 000 000 di costi di scrittura ~ $ 5 ... Ma il punto principale è che devi scegliere il giusto spazio di archiviazione per l'attività. S3 è (principalmente) per file di grandi dimensioni, non cambiando troppo spesso ma ampiamente accessibile. (con molte eccezioni: D)
Adam Ocsvari il

2
Buon confronto. Ma un'altra grande differenza tra EBS ed EFS è che EBS è una quantità fissa di memoria. Quindi sì, il confronto da 1 GB è diverso, ma perché dovresti creare una partizione EBS da 1 GB? Minimo, se hai intenzione di creare una partizione da 10 GB, stai cercando $ 0,5-5,0 per lo stesso 1 GB di dati archiviati su 10 GB di dati. A seconda della velocità con cui crescerà la necessità di archiviare i dati e della quantità di spazio inutilizzato che si desidera continuare a pagare, EFS potrebbe essere un'opzione migliore.
JDL,

3
Vale anche la pena notare: EFS attualmente funziona solo con Linux, non con Windows.
Andrew Clark,

110

Mi chiedo perché le persone non stiano mettendo in evidenza la ragione PIÙ avvincente a favore di EFS. EFS può essere montato su più di un'istanza EC2 contemporaneamente, consentendo l'accesso ai file su EFS contemporaneamente.

(Modifica 2020 maggio, EBS supporta anche il montaggio su più EC2 contemporaneamente, vedere: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html )


Anch'io. Le persone che hanno posto la domanda o votato (non la risposta) non hanno idea di cosa sia diverso tra il sistema UFS e NFS.
BMW

5
Allo stesso modo, questa è una differenza tra l'utilizzo di S3 ed EBS - S3 ed EFS funzionano bene per i dati condivisi su più server, mentre EBS no.
Geoffrey Wiseman,

inoltre EFS non può essere utilizzato come origine per CDN, S3 è meglio per questo ruolo. Se hai molte risorse che devono essere disponibili per la CDN, usa meglio S3
Moses Liao GZ

71

Correzione del confronto:

  • S3 è una struttura di archiviazione accessibile ovunque
  • EBS è un dispositivo che puoi montare su EC2
  • EFS è un file system che è possibile montare contemporaneamente su più istanze EC2

A questo punto è un po 'prematuro confrontare EFS ed EBS: le prestazioni di EFS non sono note, né si conosce la sua affidabilità.

Perché dovresti usare S3?

  • Non è necessario che i file siano "locali" in una o più istanze EC2.
  • (effettivamente) capacità infinita
  • servizio web integrato, autenticazione

2
Di recente ho impostato un volume EFS in quanto è ora disponibile in West-2. Mi sembra di avere problemi di scrittura con file di grandi dimensioni. Ad esempio, la creazione di un contenitore finestra mobile non riesce con "file troppo grande" e anche la creazione di un sqlite db non è riuscita. Non ho riscontrato questi problemi sul volume EBS che stavo usando. Quindi, EFS potrebbe avere problemi di usabilità / affidabilità che devono essere "riparati" in questo momento.
DKebler,

7

Per aggiungere al confronto: (burst) le prestazioni di lettura / scrittura su EFS dipendono dai crediti raccolti. La raccolta dei crediti dipende dalla quantità di dati archiviati su di esso. Più data -> più crediti. Ciò significa che quando hai bisogno solo di pochi GB di spazio di archiviazione che viene letto o scritto spesso finirai i crediti molto presto e la potenza di trasmissione scende a circa 50kb / s. L'unico modo per risolvere questo problema (nel mio caso) era quello di aggiungere file fittizi di grandi dimensioni per aumentare la percentuale di crediti guadagnati. Tuttavia più spazio di archiviazione -> più costo.


2
È follemente lento. All'inizio ho pensato che questo fosse un errore di OP, ma dopo aver verificato la documentazione è corretto (A partire dal 2017)
Jakobovski,

7

Oltre al prezzo e alle caratteristiche, anche la velocità effettiva varia notevolmente (come menzionato dall'utente 1677120):

EBS

Tratto da documenti EBS :

| EBS volume | Throughput |           Throughput          |
|    type    |   MiB/s    |         dependent on..        |
|------------|------------|-------------------------------|
| gp2 (SSD)  | 128-160    | volume size                   |
| io1 (SSD)  | 0.25-500   | IOPS (256Kib/s per IOPS)      |
| st1 (HDD)  | 20-500     | volume size (40Mib/s per TiB) |
| sc1 (HDD)  | 6-250      | volume size (12Mib/s per TiB) |

Si noti che per io1, st1 e sc1 è possibile trasferire il traffico di throughput a almeno 125 Mb / s, ma a 500 Mb / s, a seconda delle dimensioni del volume.

È possibile aumentare ulteriormente la produttività, ad esempio distribuendo volumi EBS come RAID0

EFS

Tratto da documenti EFS

| Filesystem |    Base    |   Burst    |
|    Size    | Throughput | Throughput |
|    GiB     |   MiB/s    |   MiB/s    |
|------------|------------|------------|
|         10 |        0.5 |        100 |
|        256 |       12.5 |        100 |
|        512 |       25.0 |        100 |
|       1024 |       50.0 |        100 |
|       1536 |       75.0 |        150 |
|       2048 |      100.0 |        200 |
|       3072 |      150.0 |        300 |
|       4096 |      200.0 |        400 |

Il throughput di base è garantito, il throughput burst utilizza i crediti raccolti pur rimanendo al di sotto del throughput di base (quindi avrai questo solo per un tempo limitato, vedi qui per maggiori dettagli.

S3

S3 è una cosa totalmente diversa, quindi non può essere paragonato a EBS ed EFS. Inoltre: non ci sono metriche di throughput pubblicate per S3. Puoi migliorare il throughput scaricando in parallelo (da qualche parte ho letto AWS afferma che avresti sostanzialmente un throughput illimitato in questo modo) o aggiungendo CloudFront al mix


2

In parole semplici

Amazon EBS offre archiviazione a livello di blocco.

Amazon EFS fornisce archiviazione di file condivisa collegata in rete.

Amazon S3 fornisce l'archiviazione degli oggetti.


1

EBS è un semplice storage a livello di blocco che può essere collegato a un'istanza dalla stessa AZ e può sopravvivere indipendentemente dalla vita dell'istanza.

Tuttavia, la differenza interessante è tra EFS e S3 e per identificare i casi d'uso adeguati.

Costo: EFS è circa 10 volte più costoso di S3.

Casi d'uso:

  • Ogni volta che abbiamo migliaia di istanze che devono elaborare i file contemporaneamente, si consiglia EFS su S3.
  • Si noti inoltre che S3 è l'archiviazione basata su oggetti mentre EFS è basato su file implica che ogni volta che è richiesto che i file vengano aggiornati continuamente (aggiornati) dovremmo usare EFS.
  • S3 è infine coerente, mentre EFS è fortemente coerente. Nel caso in cui non si possa permettere l'eventuale coerenza, è necessario utilizzare EFS

0

Amazon EBS offre archiviazione a livello di blocco: viene utilizzata per creare un file system su di esso e archiviare i file. Amazon EFS - il suo sistema di archiviazione condiviso simile a NAS / SAN. Devi montarlo sul server unix e usarlo. Amazon S3: è un archivio basato su oggetti in cui ogni elemento è archiviato con un URL http.

Una delle differenze è che EBS può essere collegato a 1 istanza alla volta e EFS può essere collegato a più istanze per cui è stata condivisa la memoria. Non è possibile montare l'archiviazione di oggetti semplici S2.


0

EFS e S3 hanno lo stesso scopo, è possibile memorizzare qualsiasi tipo di oggetto o file.

Ma per me l'unica differenza è che EFS sta consentendo di avere un file system tradizionale nel cloud VM (EC2) con una maggiore flessibilità come è possibile collegarsi a più istanze.

S3, d'altra parte, è un server flessibile ed elastico separato per i tuoi oggetti. Può essere utilizzato per i tuoi file statici, immagini, video o anche per l'hosting di app statiche (js).

EBS è ovviamente per l'archiviazione a blocchi in cui è possibile installare il sistema operativo o qualsiasi cosa relativa al proprio sistema operativo.

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.