AWS EFS против EBS против S3 (различия и когда использовать?)

315

Как следует из названия этого вопроса, каковы практические различия между AWS EFS, EBS и S3?

Мое понимание каждого:

  • S3 - хранилище, доступное в любом месте
  • EBS - это устройство, которое вы можете установить на EC2
  • EFS - это файловая система, которую вы можете смонтировать на EC2

Так зачем мне использовать EBS поверх EFS? Кажется, у них одинаковые варианты использования, но есть небольшие семантические различия? Хотя EFS реплицируется через AZ, где EBS - просто смонтированное устройство. Я думаю, что мое понимание EBS отсутствует, поэтому я не могу различить.

Почему выбирают S3 вместо EFS? Они оба хранят файлы, масштабируются и реплицируются. Я предполагаю, что с S3 вы должны использовать SDK, где, как и EFS, являющаяся файловой системой, вы можете использовать стандартные методы ввода / вывода на любом языке программирования для создания файлов. Но это единственная реальная разница?

Интегралист
источник
2
EFS это как NFS. EBS по сути является SAN. S3 вроде как WebDav. Glacier, вероятно, Blueray DVDs storagemojo.com/2014/04/25/amazons-glacier-secret-bdxl
Нил Макгиган

Ответы:

466

Одним словом ответ: ДЕНЬГИ: D

1 ГБ для хранения в США-Восток-1: (Обновлено на 2016.dec.20)

  • Ледник: $ 0,004 / месяц (Примечание: значительное снижение цен в 2016 году)
  • S3: $ 0,023 / месяц
  • S3-IA (объявлено в 2015.09): 0,0125 долл. США в месяц (+ 0,01 долл. США / плата за извлечение концерта)
  • EBS: $ 0,045-0,1 / месяц (зависит от скорости - SSD или нет) + затраты IOPS
  • EFS: $ 0.3 / месяц

Дополнительные параметры хранения, которые могут использоваться для временного хранения данных во время / перед их обработкой:

  • SNS
  • SQS
  • Кинезис поток
  • DynamoDB, SimpleDB

Стоимость выше только образцы. Могут быть различия по регионам, и они могут измениться в любой момент. Также есть дополнительные расходы на передачу данных (в интернет). Однако они показывают соотношение между ценами на услуги .

Между этими услугами гораздо больше различий:

EFS это:

  • Обычно доступно (вне предварительного просмотра), но может быть еще недоступно в вашем регионе
  • Сетевая файловая система (это означает, что она может иметь большую задержку, но она может быть распределена между несколькими экземплярами; даже между регионами)
  • Это дороже по сравнению с EBS (~ в 10 раз больше), но дает дополнительные возможности.
  • Это высокодоступный сервис.
  • Это управляемый сервис
  • Вы можете подключить хранилище EFS к экземпляру EC2
  • Доступ к нескольким экземплярам EC2 возможен одновременно
  • С 2016 года. 20 можно подключать хранилище EFS непосредственно к локальным серверам через Direct Connect. ()

EBS это:

  • Блочное хранилище (поэтому вам нужно отформатировать его). Это означает, что вы можете выбрать, какой тип файловой системы вы хотите.
  • Поскольку это хранилище блоков, вы можете использовать Raid 1 (или 0 или 10) с несколькими хранилищами блоков.
  • Это действительно быстро
  • Это относительно дешево
  • Благодаря новым объявлениям от Amazon вы можете хранить до 16 ТБ данных на одно хранилище на SSD-дисках.
  • Вы можете сделать снимок EBS (пока он еще работает) по причинам резервного копирования
  • Но это существует только в определенном регионе. Хотя вы можете перенести его в другой регион, вы не можете просто получить к нему доступ через регионы (только если вы делитесь им через EC2; но это означает, что у вас есть файловый сервер)
  • Вам нужен экземпляр EC2, чтобы присоединить его к
  • Новая функция (2017. 15 февраля): теперь вы можете увеличить размер тома, настроить производительность или изменить тип тома, пока он используется. Вы можете продолжать использовать свое приложение, пока изменения вступят в силу.

S3 это:

  • Хранилище объектов (не файловая система).
  • Вы можете хранить файлы и «папки», но не можете иметь блокировки, разрешения и т. Д., Как в обычной файловой системе.
  • Это означает, что по умолчанию вы не можете просто смонтировать S3 и использовать его в качестве веб-сервера
  • Но это идеально подходит для хранения ваших изображений и видео для вашего сайта
  • Отлично подходит для краткосрочного архивирования (например, несколько недель). Это также хорошо для долгосрочного архивирования, но Glacier более экономичен.
  • Отлично подходит для хранения логов
  • Вы можете получить доступ к данным из каждого региона (может взиматься дополнительная плата)
  • Высоко Доступный, Избыточный. В основном потеря данных невозможна (долговечность 99,99999999%, SLA безотказной работы 99,9)
  • Гораздо дешевле, чем EBS.
  • Вы можете предоставлять контент напрямую в Интернет, вы даже можете иметь полный (статический) веб-сайт, работающий напрямую с S3, без экземпляра EC2.

Ледник это:

  • Долгосрочное хранение архива
  • Чрезвычайно дешево хранить
  • Потенциально очень дорого, чтобы получить
  • «Чтение» ваших данных занимает до 4 часов (поэтому храните только те элементы, которые, как вы знаете, вам не нужно извлекать в течение длительного времени)

Как упоминалось в комментарии JDL, есть несколько интересных аспектов с точки зрения ценообразования. Например, Glacier, S3, EFS распределяет хранилище для вас в зависимости от вашего использования, в то время как в EBS вам необходимо заранее определить выделенное хранилище. Что означает, вам нужно переоценить. (Однако легко добавить больше хранилища к вашим томам EBS, это требует некоторой разработки, что означает, что вы всегда «переплачиваете» свое хранилище EBS, что делает его еще более дорогим.)

Источник: Обновление хранилища AWS - новый более дешевый вариант хранилища S3 и снижение цены на ледник

Адам Оксвари
источник
8
Ледник очень дорогой, если необходимо быстро восстановить данные. Liangzan.net/aws-glacier-calculator
Анатолий
6
Не согласен, что S3дешевле, чем EBS. С S3вами можно получить только 2000 PUT и 20 000 GET бесплатно. У EBSвас есть 2 000 000 операций ввода-вывода бесплатно. Вот мой QA stackoverflow.com/questions/34048866/…
Зеленый
2
2 000 000 S3 - расходы на чтение ~ 0,4 $, 2 000 000 - на запись ~ 5 $ ... Но главное, вам нужно выбрать правильное хранилище для задачи. S3 (в основном) подходит для больших, не слишком часто меняющихся, но широко доступных файлов. (с большим исключением: D)
Адам Оксвари
2
Хорошее сравнение. Но есть еще одно важное отличие EBS от EFS: EBS - это фиксированный объем памяти. Так что да, сравнение на 1 ГБ отличается, но зачем создавать раздел EBS на 1 ГБ? Минимум, если вы собираетесь создать раздел размером 10 ГБ, то вы ищете $ 0,5-1,0 для тех же 1 ГБ данных, которые хранятся в 10 ГБ данных. В зависимости от того, насколько быстро увеличится ваша потребность в хранении данных и сколько неиспользуемого пространства вы хотите продолжать оплачивать, EFS может быть лучшим вариантом.
JDL
3
Также стоит отметить: EFS в настоящее время работает только с Linux, а не с Windows.
Эндрю Кларк
110

Интересно, почему люди не выдвигают на первый план наиболее убедительную причину в пользу EFS. EFS можно монтировать одновременно на более чем одном экземпляре EC2, одновременно обеспечивая доступ к файлам в EFS.

(Изменить 2020, май, EBS теперь также поддерживает подключение к нескольким EC2, см .: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html )

Кабир
источник
Я тоже. Люди, которые задавали вопрос или голосовали за вопрос (а не за ответ), просто не представляют, в чем разница между UFS и системой NFS.
BMW
5
Аналогичным образом, это разница между использованием S3 и EBS - S3 и EFS хорошо работают для данных, совместно используемых несколькими серверами, а EBS - нет.
Джеффри Уайзман
также EFS не может использоваться в качестве источника для CDN, S3 лучше для этой роли. Если у вас есть много активов, которые должны быть в наличии для CDN, лучше используйте S3
Моисей Ляо GZ
71

Исправление сравнения:

  • S3 - хранилище, доступное в любом месте
  • EBS - это устройство, которое вы можете установить на EC2
  • EFS - это файловая система, которую вы можете монтировать на несколько экземпляров EC2 одновременно

На данный момент сравнивать EFS и EBS несколько преждевременно - производительность EFS неизвестна и ее надежность не известна.

Почему вы используете S3?

  • Вам не нужно, чтобы файлы были «локальными» для одного или нескольких экземпляров EC2.
  • (эффективно) бесконечная емкость
  • встроенный веб-сервис, аутентификация
tedder42
источник
2
Недавно я настроил том EFS, который теперь доступен в West-2. Кажется, у меня проблемы с записью больших файлов. Например, создание контейнера Docker завершается с ошибкой «файл слишком большой», а создание базы данных sqlite также не удается. Не было этих проблем на томе EBS, который я использовал. Так что да, EFS может иметь проблемы с удобством использования / надежностью, которые нужно «исправить» в это время.
ДКеблер
7

Чтобы добавить к сравнению: (взрыв) производительность чтения / записи на EFS зависит от собранных кредитов. Сбор кредитов зависит от количества данных, которые вы храните на нем. Больше даты -> больше кредитов. Это означает, что, когда вам требуется всего несколько ГБ памяти, которая часто читается или записывается, у вас очень скоро кончатся кредиты, и пропускная способность сократится примерно до 50 Кбит / с. Единственный способ исправить это (в моем случае) - добавить большие фиктивные файлы, чтобы увеличить процент заработанных кредитов. Однако больше памяти -> больше стоимость.

user1677120
источник
2
Это безумно медленно. Сначала я думал, что это было ошибкой со стороны ОП, но после проверки документации это правильно (по состоянию на 2017 год)
Якобовский
7

Помимо цены и возможностей, пропускная способность также сильно варьируется (как упомянуто пользователем 1677120):

EBS

Взято из документов 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) |

Обратите внимание, что для io1, st1 и sc1 вы можете увеличить пропускную способность по крайней мере до 125Mib / s, но до 500Mib / s, в зависимости от размера тома.

Вы можете еще больше увеличить пропускную способность, например, развернув тома EBS как RAID0.

EFS

Взято из документов 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 |

Базовая пропускная способность гарантирована, пакетная пропускная способность использует накопленные вами кредиты, будучи ниже базовой пропускной способности (так что вы будете иметь ее только в течение ограниченного времени, подробнее см. Здесь .

S3

S3 - это совсем другое, поэтому его нельзя сравнивать с EBS и EFS. Плюс: нет опубликованных показателей пропускной способности для S3. Вы можете улучшить пропускную способность, загружая параллельно (я где-то читал, что AWS заявляет, что у вас будет практически неограниченная пропускная способность) или добавляя CloudFront в смесь

HANSAPLAST
источник
2

Простыми словами

Amazon EBS предоставляет хранилище на уровне блоков.

Amazon EFS предоставляет сетевое хранилище общих файлов.

Amazon S3 обеспечивает хранение объектов.

Mandrek
источник
1

EBS прост - хранилище на уровне блоков, которое может быть подключено к экземпляру из того же AZ, и может существовать независимо от срока службы экземпляра.

Тем не менее, интересная разница между EFS и S3, и для определения правильных вариантов использования для него.

Стоимость: EFS примерно в 10 раз дороже, чем S3.

Случаи использования:

  • Всякий раз, когда у нас есть тысячи экземпляров, которым необходимо обрабатывать файл одновременно, рекомендуется использовать EFS поверх S3.
  • Также обратите внимание, что S3 - это объектно-ориентированное хранилище, а EFS - на файловом, это означает, что всякий раз, когда у нас есть требование, чтобы файлы постоянно обновлялись (обновлялись), мы должны использовать EFS.
  • S3 в конце концов согласован, а EFS сильно согласован. В случае, если вы не можете позволить себе возможную последовательность, вы должны использовать EFS
Tejas
источник
0

Amazon EBS предоставляет хранилище на уровне блоков - оно используется для создания на нем файловой системы и хранения файлов. Amazon EFS - это система общего хранения, похожая на NAS / SAN. Вам необходимо смонтировать его на сервер Unix и использовать его. Amazon S3 - это объектно-ориентированное хранилище, где каждый элемент хранится с URL-адресом http.

Одно из различий заключается в том, что EBS можно подключать к 1 экземпляру за раз, а EFS можно подключать к нескольким экземплярам, ​​поэтому необходимо общее хранилище. Хранилище простых объектов S2 не может быть смонтировано.

Суреш Чандра Джоши
источник
0

EFS & S3 имеют ту же цель, вы можете хранить любые объекты или файлы.

Но для меня единственным отличием является то, что EFS позволяет вам иметь традиционную файловую систему в облаке виртуальных машин (EC2) с большей гибкостью, которую вы можете прикрепить к нескольким экземплярам.

S3, с другой стороны, является отдельным гибким и гибким сервером для ваших объектов. Он может быть использован для ваших статических файлов, изображений, видео или даже для размещения статического приложения (js).

EBS, очевидно, предназначен для блочного хранилища, где вы можете установить ОС или все, что связано с вашей ОС.

Marjun
источник