AWS EFS vs EBS vs S3 (Unterschiede & wann verwenden?)

315

Was sind laut Titel dieser Frage die praktischen Unterschiede zwischen AWS EFS, EBS und S3?

Mein Verständnis von jedem:

  • S3 ist ein Speicher, der überall zugänglich ist
  • EBS ist ein Gerät, das Sie auf EC2 montieren können
  • EFS ist ein Dateisystem, das Sie auf EC2 mounten können

Warum sollte ich EBS über EFS verwenden? Sie scheinen dieselben Anwendungsfälle zu haben, aber geringfügige semantische Unterschiede? Obwohl EFS über AZs hinweg repliziert wird, ist EBS nur ein bereitgestelltes Gerät. Ich denke, mein Verständnis von EBS fehlt, daher kann ich nicht unterscheiden.

Warum S3 anstelle von EFS wählen? Beide speichern Dateien, skalieren und werden repliziert. Ich denke, mit S3 müssen Sie das SDK verwenden, wo Sie wie mit EFS als Dateisystem Standard-E / A-Methoden aus der Programmiersprache Ihrer Wahl verwenden können, um Dateien zu erstellen. Aber ist das der einzige wirkliche Unterschied?

Integralist
quelle
2
EFS ist wie NFS. EBS ist im Wesentlichen ein SAN. S3 ist ein bisschen wie WebDav. Glacier ist wahrscheinlich blaueray DVDs storagemojo.com/2014/04/25/amazons-glacier-secret-bdxl
Neil McGuigan

Antworten:

466

Ein Wort Antwort: GELD: D.

1 GB zum Speichern in US-Ost-1: (Aktualisiert am 2016.dec.20)

  • Gletscher: 0,004 USD / Monat (Hinweis: Große Preissenkung im Jahr 2016)
  • S3: 0,023 USD / Monat
  • S3-IA (angekündigt im Jahr 2015.09): 0,0125 USD / Monat (+ 0,01 USD / Abrufgebühr für Gig)
  • EBS: $ 0.045-0.1 / Monat (abhängig von der Geschwindigkeit - SSD oder nicht) + IOPS-Kosten
  • EFS: 0,3 USD / Monat

Weitere Speicheroptionen, die zum temporären Speichern von Daten während / vor der Verarbeitung verwendet werden können:

  • SNS
  • SQS
  • Kinesis Stream
  • DynamoDB, SimpleDB

Die oben genannten Kosten sind nur Beispiele. Es kann Unterschiede nach Regionen geben, die sich jederzeit ändern können. Außerdem fallen zusätzliche Kosten für die Datenübertragung (ins Internet) an. Sie zeigen jedoch ein Verhältnis zwischen den Preisen der Dienstleistungen .

Es gibt viel mehr Unterschiede zwischen diesen Diensten:

EFS ist:

  • Allgemein verfügbar (außerhalb der Vorschau), aber möglicherweise noch nicht in Ihrer Region verfügbar
  • Netzwerk-Dateisystem (das heißt, es hat möglicherweise eine größere Latenz, kann aber von mehreren Instanzen gemeinsam genutzt werden, auch zwischen Regionen)
  • Es ist teuer im Vergleich zu EBS (~ 10x mehr), bietet aber zusätzliche Funktionen.
  • Es ist ein hoch verfügbarer Service.
  • Es ist ein verwalteter Dienst
  • Sie können den EFS-Speicher an eine EC2-Instanz anschließen
  • Kann von mehreren EC2-Instanzen gleichzeitig aufgerufen werden
  • Seit 2016.dec.20 ist es möglich, Ihren EFS-Speicher über Direct Connect direkt an lokale Server anzuschließen . ()

EBS ist:

  • Ein Blockspeicher (also müssen Sie ihn formatieren). Dies bedeutet, dass Sie auswählen können, welche Art von Dateisystem Sie möchten.
  • Da es sich um einen Blockspeicher handelt, können Sie Raid 1 (oder 0 oder 10) mit mehreren Blockspeichern verwenden
  • Es ist sehr schnell
  • Es ist relativ billig
  • Mit den neuen Ankündigungen von Amazon können Sie bis zu 16 TB Daten pro Speicher auf SSDs speichern.
  • Sie können aus Sicherungsgründen einen Snapshot eines EBS erstellen (während dieser noch ausgeführt wird)
  • Es existiert aber nur in einer bestimmten Region. Obwohl Sie es in eine andere Region migrieren können, können Sie nicht einfach über Regionen hinweg darauf zugreifen (nur wenn Sie es über EC2 freigeben; dies bedeutet jedoch, dass Sie über einen Dateiserver verfügen).
  • Sie benötigen eine EC2-Instanz, an die Sie sie anhängen können
  • Neue Funktion (2017.Feb.15): Sie können jetzt die Volume-Größe erhöhen, die Leistung anpassen oder den Volume-Typ ändern, während das Volume verwendet wird. Sie können Ihre Anwendung weiterhin verwenden, während die Änderung wirksam wird.

S3 ist:

  • Ein Objektspeicher (kein Dateisystem).
  • Sie können Dateien und "Ordner" speichern, aber keine Sperren, Berechtigungen usw. haben, wie Sie es mit einem herkömmlichen Dateisystem tun würden
  • Dies bedeutet, dass Sie S3 standardmäßig nicht einfach mounten und als Webserver verwenden können
  • Aber es ist perfekt zum Speichern Ihrer Bilder und Videos für Ihre Website
  • Ideal für die kurzfristige Archivierung (z. B. einige Wochen). Es ist auch gut für die Langzeitarchivierung, aber Glacier ist kostengünstiger.
  • Ideal zum Speichern von Protokollen
  • Sie können aus jeder Region auf die Daten zugreifen (möglicherweise fallen zusätzliche Kosten an).
  • Hoch verfügbar, redundant. Grundsätzlich ist ein Datenverlust nicht möglich (99,999999999% Haltbarkeit, 99,9 Betriebszeit SLA)
  • Viel billiger als EBS.
  • Sie können den Inhalt direkt ins Internet stellen. Sie können sogar eine vollständige (statische) Website direkt von S3 aus ohne EC2-Instanz verwenden

Gletscher ist:

  • Langzeitarchivspeicherung
  • Extrem günstig zu lagern
  • Möglicherweise sehr teuer zu beschaffen
  • Das "Zurücklesen" Ihrer Daten dauert bis zu 4 Stunden (speichern Sie also nur Elemente, von denen Sie wissen, dass Sie sie nicht lange abrufen müssen).

Wie in JDLs Kommentar erwähnt, gibt es einige interessante Aspekte in Bezug auf die Preisgestaltung. Zum Beispiel weist Glacier, S3, EFS den Speicher basierend auf Ihrer Nutzung für Sie zu, während Sie bei EBS den zugewiesenen Speicher vordefinieren müssen. Das heißt, Sie müssen überschätzen. (Es ist jedoch einfach, Ihren EBS-Volumes mehr Speicherplatz hinzuzufügen. Es erfordert einige technische Maßnahmen, was bedeutet, dass Sie Ihren EBS-Speicher immer "überbezahlen", was ihn noch teurer macht.)

Quelle: AWS Storage Update - Neue kostengünstigere S3-Speicheroption und Reduzierung der Gletscherpreise

Adam Ocsvari
quelle
8
Gletscher ist extrem teuer, wenn Daten schnell wiederhergestellt werden müssen liangzan.net/aws-glacier-calculator
Anatoly
6
Nicht einverstanden, dass S3billiger ist als EBS. Mit können S3Sie nur 2000 PUT und 20 000 GET kostenlos haben. Mit haben EBSSie 2 000 000 E / A-Operationen kostenlos. Hier ist meine QA stackoverflow.com/questions/34048866/…
Green
2
2 000 000 S3-Lesekosten ~ 0,4 $, 2 000 000 Schreibkosten ~ 5 $ ... Der wichtigste Punkt ist jedoch, dass Sie den richtigen Speicher für die Aufgabe auswählen müssen. S3 ist (meistens) für große, nicht zu häufig wechselnde, aber allgemein zugängliche Dateien am besten geeignet. (mit vielen Ausnahmen: D)
Adam Ocsvari
2
Guter Vergleich. Ein weiterer wesentlicher Unterschied zwischen EBS und EFS besteht darin, dass EBS eine feste Speichermenge ist. Ja, ein Vergleich mit 1 GB ist anders, aber warum sollten Sie eine EBS-Partition mit 1 GB erstellen? Wenn Sie eine 10-GB-Partition erstellen möchten, müssen Sie mindestens 0,5 bis 1,0 US-Dollar für die gleichen 1 GB Daten verwenden, die auf den 10 GB Daten gespeichert sind. Abhängig davon, wie schnell Ihr Bedarf zum Speichern von Daten wächst und wie viel ungenutzter Speicherplatz Sie weiterhin bezahlen möchten, ist EFS möglicherweise die bessere Option.
JDL
3
Ebenfalls erwähnenswert: EFS funktioniert derzeit nur unter Linux, nicht unter Windows.
Andrew Clark
110

Ich frage mich, warum die Leute nicht den zwingendsten Grund für EFS hervorheben. EFS kann gleichzeitig auf mehreren EC2-Instanzen bereitgestellt werden, sodass gleichzeitig auf Dateien in EFS zugegriffen werden kann.

(Bearbeiten 2020 Mai, EBS unterstützt jetzt auch die gleichzeitige Montage auf mehreren EC2, siehe: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html )

Kabeer
quelle
Ich auch. Personen, die die Frage gestellt oder die Frage (nicht die Antwort) abgestimmt haben, haben einfach keine Ahnung, was der Unterschied zwischen UFS- und NFS-System ist.
BMW
5
In ähnlicher Weise ist dies ein Unterschied zwischen der Verwendung von S3 und EBS - S3 und EFS funktionieren gut für Daten, die von mehreren Servern gemeinsam genutzt werden, während EBS dies nicht tut.
Geoffrey Wiseman
Auch EFS kann nicht als Ursprung für CDN verwendet werden, S3 ist für diese Rolle besser. Wenn Sie viele Assets haben, die für CDN bereit sein müssen, verwenden Sie besser S3
Moses Liao GZ
71

Korrektur des Vergleichs:

  • S3 ist ein Speicher, der überall zugänglich ist
  • EBS ist ein Gerät, das Sie auf EC2 montieren können
  • EFS ist ein Dateisystem, das Sie gleichzeitig auf mehrere EC2-Instanzen mounten können

Zu diesem Zeitpunkt ist es etwas verfrüht, EFS und EBS zu vergleichen. Die Leistung von EFS ist weder bekannt noch die Zuverlässigkeit bekannt.

Warum sollten Sie S3 verwenden?

  • Sie müssen nicht, dass die Dateien für eine oder mehrere EC2-Instanzen "lokal" sind.
  • (effektiv) unendliche Kapazität
  • integriertes Web-Serving, Authentifizierung
tedder42
quelle
2
Ich habe kürzlich ein EFS-Volume eingerichtet, wie es jetzt in West-2 verfügbar ist. Ich habe anscheinend Probleme beim Schreiben mit großen Dateien. Beispielsweise schlägt das Erstellen eines Docker-Containers mit "Datei zu groß" fehl, und das Erstellen einer SQLite-Datenbank ist ebenfalls fehlgeschlagen. Hatte dieses Problem nicht auf dem von mir verwendeten EBS-Volume. Ja, EFS kann Probleme mit der Benutzerfreundlichkeit / Zuverlässigkeit haben, die zu diesem Zeitpunkt "behoben" werden müssen.
DKebler
7

Um den Vergleich zu ergänzen: Die (Burst-) Lese- / Schreibleistung von EFS hängt von den gesammelten Credits ab. Das Sammeln von Credits hängt von der Datenmenge ab, die Sie darauf speichern. Mehr Datum -> mehr Credits. Das heißt, wenn Sie nur ein paar GB Speicher benötigen, der häufig gelesen oder geschrieben wird, gehen Ihnen sehr bald die Credits aus und der Durchsatz sinkt auf etwa 50 KBit / s. Die einzige Möglichkeit, dies zu beheben (in meinem Fall), bestand darin, große Dummy-Dateien hinzuzufügen, um die Rate zu erhöhen, mit der Credits verdient werden. Allerdings mehr Speicher -> mehr Kosten.

user1677120
quelle
2
Das ist verrückt langsam. Zuerst dachte ich, dies sei ein Fehler von OP, aber nachdem ich die Dokumentation überprüft habe, ist er korrekt (Stand 2017)
Jakobovski
7

Abgesehen von Preis und Funktionen variiert auch der Durchsatz stark (wie von user1677120 erwähnt):

EBS

Entnommen aus EBS-Dokumenten :

| 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) |

Beachten Sie, dass Sie für io1, st1 und sc1 den Durchsatzverkehr auf mindestens 125 Mib / s, je nach Volume-Größe jedoch auf 500 Mib / s erhöhen können.

Sie können den Durchsatz weiter erhöhen, indem Sie beispielsweise EBS-Volumes als RAID0 bereitstellen

EFS

Entnommen aus EFS-Dokumenten

| 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 |

Der Basisdurchsatz ist garantiert. Der Burst-Durchsatz verbraucht Credits, die Sie gesammelt haben, während Sie unter dem Basisdurchsatz liegen (Sie haben dies also nur für eine begrenzte Zeit, siehe hier für weitere Details.

S3

S3 ist eine völlig andere Sache, daher kann es nicht wirklich mit EBS und EFS verglichen werden. Plus: Es gibt keine veröffentlichten Durchsatzmetriken für S3. Sie können den Durchsatz verbessern, indem Sie parallel herunterladen (ich habe irgendwo gelesen, dass AWS auf diese Weise grundsätzlich unbegrenzten Durchsatz haben würde) oder CloudFront zum Mix hinzufügen

hansaplast
quelle
2

In einfachen Worten

Amazon EBS bietet Speicher auf Blockebene.

Amazon EFS bietet gemeinsam genutzten Dateispeicher für Netzwerke.

Amazon S3 bietet Objektspeicher.

Mandrek
quelle
1

EBS ist einfach - Speicher auf Blockebene, der an eine Instanz von derselben AZ angehängt werden kann und unabhängig von der Lebensdauer der Instanz überleben kann.

Ein interessanter Unterschied besteht jedoch zwischen EFS und S3 und der Ermittlung geeigneter Anwendungsfälle.

Kosten: EFS ist ungefähr zehnmal teurer als S3.

Anwendungsfälle:

  • Immer wenn wir Tausende von Instanzen haben, die Dateien gleichzeitig verarbeiten müssen, wird EFS über S3 empfohlen.
  • Beachten Sie auch, dass S3 objektbasierter Speicher ist, während EFS dateibasiert ist. Dies bedeutet, dass wir EFS verwenden sollten, wenn die Anforderung besteht, dass Dateien kontinuierlich aktualisiert (aktualisiert) werden.
  • S3 ist schließlich konsistent, während EFS stark konsistent ist. Falls Sie sich eine eventuelle Konsistenz nicht leisten können, sollten Sie EFS verwenden
Tejas
quelle
0

Amazon EBS bietet Speicher auf Blockebene - Es wird verwendet, um ein Dateisystem darauf zu erstellen und Dateien zu speichern. Amazon EFS - sein Shared Storage-System ähnlich wie NAS / SAN. Sie müssen es auf dem Unix-Server bereitstellen und verwenden. Amazon S3 - Es handelt sich um einen objektbasierten Speicher, in dem jedes Element mit einer http-URL gespeichert wird.

Einer der Unterschiede besteht darin, dass EBS an jeweils eine Instanz angehängt werden kann und EFS an mehrere Instanzen angehängt werden kann, weshalb gemeinsam genutzter Speicher verwendet wird. Der S2-Objektspeicher kann nicht bereitgestellt werden.

Suresh Chandra Joshi
quelle
0

EFS & S3 haben den gleichen Zweck, Sie können jede Art von Objekt oder Dateien speichern.

Für mich besteht der einzige Unterschied darin, dass EFS es Ihnen ermöglicht, ein traditionelles Dateisystem in der VM (EC2) -Wolke mit mehr Flexibilität zu haben, wie Sie es an mehrere Instanzen anhängen können.

S3 hingegen ist ein separater flexibler und elastischer Server für Ihre Objekte. Es kann für Ihre statischen Dateien, Bilder, Videos oder sogar für das Hosten von statischen Apps (js) verwendet werden.

EBS ist offensichtlich für Blockspeicher gedacht, in denen Sie das Betriebssystem oder alles, was mit Ihrem Betriebssystem zu tun hat, installieren können.

Marjun
quelle