AWS EFS vs EBS vs S3 (różnice i kiedy używać?)

315

Co do tytułu tego pytania, jakie są praktyczne różnice między AWS EFS, EBS i S3?

Moje rozumienie każdego z nich:

  • S3 jest magazynem dostępnym w dowolnym miejscu
  • EBS to urządzenie, które można zamontować na EC2
  • EFS to system plików, który można zamontować na EC2

Dlaczego więc miałbym używać EBS zamiast EFS? Wydaje się, że mają te same przypadki użycia, ale niewielkie różnice semantyczne? Chociaż EFS jest replikowany między AZ, gdzie jako EBS jest tylko zamontowanym urządzeniem. Chyba brakuje mi zrozumienia EBS, dlatego nie jestem w stanie tego rozróżnić.

Dlaczego warto wybrać S3 zamiast EFS? Oba przechowują pliki, skalują i są replikowane. Sądzę, że w przypadku S3 musisz użyć SDK, gdzie podobnie jak EFS jako system plików, możesz tworzyć standardowe metody We / Wy z wybranego języka programowania. Ale czy to jedyna prawdziwa różnica?

Integralista
źródło
2
EFS jest jak NFS. EBS jest zasadniczo siecią SAN. S3 jest trochę jak WebDav. Glacier to prawdopodobnie blueray
Neil McGuigan

Odpowiedzi:

466

Odpowiedź na jedno słowo: PIENIĄDZE: D

1 GB do przechowywania w US-East-1: (zaktualizowany 2016.dec.20)

  • Lodowiec: 0,004 USD / miesiąc (Uwaga: znaczna obniżka cen w 2016 r.)
  • S3: 0,023 USD / miesiąc
  • S3-IA (ogłoszony w 2015.09): 0,0125 USD / miesiąc (+ 0,01 USD / opłata za pobranie z koncertu)
  • EBS: 0,045-0,1 USD / miesiąc (w zależności od prędkości - SSD lub nie) + koszty IOPS
  • EFS: 0,3 USD / miesiąc

Dalsze opcje przechowywania, które można wykorzystać do tymczasowego przechowywania danych podczas / przed ich przetwarzaniem:

  • SNS
  • SQS
  • Strumień kinezy
  • DynamoDB, SimpleDB

Powyższe koszty to tylko próbki. Mogą występować różnice w zależności od regionu i mogą się one zmienić w dowolnym momencie. Istnieją również dodatkowe koszty transferu danych (do Internetu). Pokazują one jednak stosunek cen usług .

Istnieje znacznie więcej różnic między tymi usługami:

EFS to:

  • Ogólnie dostępne (poza podglądem), ale może nie być jeszcze dostępne w twoim regionie
  • Sieciowy system plików (co oznacza, że ​​może mieć większe opóźnienia, ale może być współużytkowany przez kilka instancji; nawet między regionami)
  • Jest drogi w porównaniu do EBS (~ 10x więcej), ale daje dodatkowe funkcje.
  • To usługa o wysokiej dostępności.
  • To usługa zarządzana
  • Możesz dołączyć pamięć EFS do wystąpienia EC2
  • Może być dostępny jednocześnie przez wiele instancji EC2
  • Od 2016.dec.20 możliwe jest dołączanie pamięci EFS bezpośrednio do lokalnych serwerów za pośrednictwem Direct Connect. ()

EBS to:

  • Blokowa pamięć (więc musisz ją sformatować). Oznacza to, że możesz wybrać typ systemu plików, który chcesz.
  • Ponieważ jest to magazyn blokowy, możesz użyć RAID 1 (lub 0 lub 10) z wieloma magazynami blokowymi
  • To jest naprawdę szybkie
  • To jest stosunkowo tanie
  • Dzięki nowym ogłoszeniom od Amazon możesz przechowywać do 16 TB danych na pamięć na dyskach SSD.
  • Możesz wykonać migawkę EBS (gdy jest jeszcze uruchomiony) ze względów bezpieczeństwa
  • Ale istnieje tylko w określonym regionie. Chociaż możesz migrować go do innego regionu, nie możesz po prostu uzyskać dostępu do niego między regionami (tylko jeśli udostępniasz go przez EC2; ale to oznacza, że ​​masz serwer plików)
  • Potrzebujesz instancji EC2, aby ją dołączyć
  • Nowa funkcja (2017. lut 15): Możesz teraz zwiększyć rozmiar woluminu, dostosować wydajność lub zmienić typ woluminu, gdy wolumin jest używany. Możesz nadal korzystać z aplikacji, dopóki zmiana zacznie obowiązywać.

S3 to:

  • Składnica obiektów (nie system plików).
  • Możesz przechowywać pliki i „foldery”, ale nie możesz mieć blokad, uprawnień itp., Tak jak w tradycyjnym systemie plików
  • Oznacza to, że domyślnie nie można po prostu zamontować S3 i używać go jako serwera WWW
  • Ale jest idealny do przechowywania zdjęć i filmów na swojej stronie internetowej
  • Idealne do archiwizacji krótkoterminowej (np. Kilka tygodni). Nadaje się również do archiwizacji długoterminowej, ale Glacier jest bardziej opłacalny.
  • Idealne do przechowywania dzienników
  • Możesz uzyskać dostęp do danych z każdego regionu (mogą obowiązywać dodatkowe koszty)
  • Wysoce dostępny, zbędny. Zasadniczo utrata danych nie jest możliwa (trwałość 99,999999999999%, czas dostępności SLA 99,9)
  • Znacznie tańszy niż EBS.
  • Możesz podawać treść bezpośrednio do Internetu, możesz nawet mieć pełną (statyczną) stronę internetową działającą bezpośrednio z S3, bez instancji EC2

Lodowiec to:

  • Długotrwałe przechowywanie archiwów
  • Wyjątkowo tani w przechowywaniu
  • Potencjalnie bardzo drogi do odzyskania
  • „Ponowne odczytanie” danych trwa do 4 godzin (więc przechowuj tylko te elementy, o których wiesz, że nie będziesz musiał ich długo odzyskiwać)

Jak wspomniano w komentarzu JDL, istnieje kilka interesujących aspektów dotyczących cen. Na przykład Glacier, S3, EFS przydziela pamięć dla ciebie na podstawie twojego użycia, podczas gdy w EBS musisz wstępnie zdefiniować przydzieloną pamięć. Co oznacza, że ​​musisz przeszacować. (Jednak łatwo jest dodać więcej miejsca do woluminów EBS, wymaga to trochę inżynierii, co oznacza, że ​​zawsze „przepłacasz” swoją pamięć EBS, co czyni ją jeszcze droższą.)

Źródło: Aktualizacja pamięci masowej AWS - Nowa tańsza opcja pamięci masowej S3 i obniżka ceny lodowca

Adam Ocsvari
źródło
8
Lodowiec jest niezwykle drogi, jeśli dane muszą zostać szybko przywrócone liangzan.net/aws-glacier-calculator
Anatoly
6
Nie zgadzam się, że S3jest to tańsze niż EBS. Dzięki S3niemu możesz mieć tylko 2000 PUT i 20 000 GET za darmo. Dzięki EBS2 000 000 operacji we / wy za darmo. Oto moje QA stackoverflow.com/questions/34048866/...
Green
2
2 000 000 S3 kosztuje odczyt ~ 0,4 $, 2 000 000 koszty zapisu ~ 5 $ ... Ale najważniejsze jest to, że musisz wybrać odpowiednią pamięć do zadania. S3 jest (głównie) dla dużych, niezbyt często zmieniających się, ale najlepiej dostępnych plików. (z dużym wyjątkiem: D)
Adam Ocsvari,
2
Dobre porównanie Ale jedną inną ważną różnicą między EBS i EFS jest to, że EBS to stała ilość pamięci. Więc tak, porównanie 1 GB jest inne, ale dlaczego miałbyś stworzyć partycję EBS 1 GB? Minimum, jeśli zamierzasz utworzyć partycję 10 GB, to patrzysz na 0,5-1,0 USD za ten sam 1 GB danych przechowywanych na 10 GB danych. W zależności od tego, jak szybko wzrośnie potrzeba przechowywania danych i ile niewykorzystanego miejsca chcesz płacić, EFS może być lepszym rozwiązaniem.
JDL
3
Warto również zauważyć: EFS działa obecnie tylko w systemie Linux, a nie Windows.
Andrew Clark,
110

Zastanawiam się, dlaczego ludzie nie podkreślają NAJWIĘKSZEGO ważnego powodu na korzyść EFS. EFS może być zamontowany na więcej niż jednej instancji EC2 w tym samym czasie, umożliwiając dostęp do plików w EFS w tym samym czasie.

(Edycja 2020 maja, EBS obsługuje teraz także montaż na wielu EC2, patrz: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html )

Kabeer
źródło
Ja też. Ludzie, którzy zadali pytanie lub głosowali na pytanie (nie odpowiedź), po prostu nie mają pojęcia, co różni system UFS od systemu NFS.
BMW,
5
Podobnie jest różnica między używaniem S3 i EBS - S3 i EFS działają dobrze dla danych współdzielonych na wielu serwerach, podczas gdy EBS nie.
Geoffrey Wiseman
również EFS nie może być użyty jako źródło dla CDN, S3 jest lepszy dla tej roli. Jeśli masz dużo zasobów, które muszą być dostępne dla CDN, lepiej użyj S3
Moses Liao GZ
71

Naprawianie porównania:

  • S3 jest magazynem dostępnym w dowolnym miejscu
  • EBS to urządzenie, które można zamontować na EC2
  • EFS to system plików, który można zamontować na kilku instancjach EC2 jednocześnie

W tym momencie porównywanie EFS i EBS jest nieco przedwczesne - wydajność EFS nie jest znana, ani nie jest znana jego niezawodność.

Dlaczego miałbyś używać S3?

  • Nie ma potrzeby, aby pliki były „lokalne” dla jednej lub więcej instancji EC2.
  • (skutecznie) nieskończona pojemność
  • wbudowana obsługa stron internetowych, uwierzytelnianie
przetrząsacz42
źródło
2
Niedawno utworzyłem wolumin EFS, ponieważ jest on teraz dostępny w West-2. Wydaje mi się, że mam problemy z pisaniem dużych plików. Na przykład utworzenie kontenera dokowanego kończy się niepowodzeniem z „plikiem zbyt dużym” i utworzenie bazy danych sqlite również nie powiodło się. Nie miałem tego problemu w wolumenie EBS, którego używałem. Tak więc EFS może mieć problemy z użytecznością / niezawodnością, które w tej chwili wymagają „naprawy”.
DKebler,
7

Aby dodać do porównania: (seria) wydajność odczytu / zapisu na EFS zależy od zebranych punktów. Zbieranie kredytów zależy od ilości przechowywanych na nich danych. Więcej dat -> więcej kredytów. Oznacza to, że gdy potrzebujesz tylko kilku GB pamięci, która jest często odczytywana lub zapisywana, wkrótce zabraknie Ci kredytów, a przepustowość spada do około 50 kb / s. Jedynym sposobem, aby to naprawić (w moim przypadku), było dodanie dużych plików fikcyjnych w celu zwiększenia stopy zarobków. Jednak więcej miejsca -> więcej kosztów.

użytkownik1677120
źródło
2
To jest szalone wolne. Początkowo myślałem, że to pomyłka OP, ale po sprawdzeniu dokumentacji jest poprawna (stan na 2017 r.)
Jakobovski
7

Oprócz ceny i funkcji przepustowość również jest bardzo zróżnicowana (jak wspomniał użytkownik 1677120):

EBS

Na podstawie dokumentów 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) |

Zauważ, że w przypadku io1, st1 i sc1 możesz zwiększyć przepływność ruchu do co najmniej 125 Mb / s, ale do 500 Mb / s, w zależności od wielkości woluminu.

Możesz dodatkowo zwiększyć przepustowość, np. Wdrażając woluminy EBS jako RAID0

EFS

Zaczerpnięte z dokumentów 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 |

Przepustowość podstawowa jest gwarantowana, przepustowość impulsowa zużywa kredyty zebrane, będąc poniżej przepustowości podstawowej (więc będziesz mieć to tylko przez ograniczony czas, zobacz tutaj, aby uzyskać więcej szczegółów.

S3

S3 jest zupełnie inną rzeczą, więc nie można go tak naprawdę porównać do EBS i EFS. Plus: Brak opublikowanych wskaźników przepływności dla S3. Możesz poprawić przepustowość, pobierając równolegle (gdzieś czytam stany AWS, że miałbyś w zasadzie nieograniczoną przepustowość w ten sposób) lub dodając CloudFront do miksu

hansaplast
źródło
2

W prostych słowach

Amazon EBS zapewnia przechowywanie na poziomie bloku.

Amazon EFS zapewnia dołączoną do sieci pamięć współdzieloną.

Amazon S3 zapewnia przechowywanie obiektów.

Mandrek
źródło
1

EBS jest prosty - pamięć na poziomie bloku, która może być dołączona do instancji z tej samej AZ i może przetrwać niezależnie od życia instancji.

Interesująca jest jednak różnica między EFS i S3 oraz identyfikacja odpowiednich przypadków użycia.

Koszt: EFS jest około 10 razy droższy niż S3.

Przypadków użycia:

  • Ilekroć mamy tysiące wystąpień, które muszą przetwarzać plik jednocześnie, zaleca się EFS zamiast S3.
  • Zauważ też, że S3 to pamięć obiektowa, podczas gdy EFS oparty jest na plikach, co oznacza, że ​​ilekroć mamy wymaganie ciągłej aktualizacji (odświeżania) plików, powinniśmy używać EFS.
  • S3 jest ostatecznie spójny, podczas gdy EFS jest silnie spójny. Jeśli nie możesz sobie pozwolić na ostateczną spójność, powinieneś użyć EFS
Tejas
źródło
0

Amazon EBS zapewnia przechowywanie na poziomie bloków - służy do tworzenia na nim systemu plików i przechowywania plików. Amazon EFS - jego wspólny system pamięci podobny do NAS / SAN. Musisz zamontować go na serwerze unix i używać go. Amazon S3 - jest to obiektowa pamięć masowa, w której każdy element jest przechowywany z adresem URL http.

Jedną z różnic jest to, że - EBS może być dołączony do 1 instancji na raz, a EFS może być dołączony do wielu instancji, dlatego to pamięć współdzielona. Nie można zamontować magazynu obiektów zwykłych S2.

Suresh Chandra Joshi
źródło
0

EFS i S3 mają ten sam cel, możesz przechowywać dowolny obiekt lub pliki.

Ale dla mnie jedyną różnicą jest to, że EFS pozwala ci mieć tradycyjny system plików w chmurze VM (EC2) z większą elastycznością, tak jak możesz dołączyć do wielu instancji.

Z drugiej strony S3 to oddzielny elastyczny i elastyczny serwer dla twoich obiektów. Może być używany do plików statycznych, obrazów, filmów, a nawet hostowania aplikacji statycznych (js).

EBS jest oczywiście przeznaczony do przechowywania blokowego, w którym można zainstalować system operacyjny lub cokolwiek związanego z systemem operacyjnym.

Marjun
źródło