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

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

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

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

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

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

Ответ 1

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

1 ГБ для хранения в US-East-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
  • поток Kinesis
  • DynamoDB, SimpleDB

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

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

EFS:

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

EBS:

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

S3:

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

Ледник:

  • Долгосрочное архивное хранилище
  • Чрезвычайно дешево хранить
  • Потенциально очень дорогое извлечение
  • Занимает до 4 часов для "чтения" ваших данных (так что храните только те предметы, которые, как вы знаете, вам не понадобится долгое время).

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

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

Ответ 2

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

Ответ 3

Фиксация сравнения:

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

В этот момент немного раньшевременно сравнивать EFS и EBS - производительность EFS неизвестна и не известна ее надежность.

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

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

Ответ 4

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

Ответ 5

Помимо цены и возможностей, пропускная способность также сильно варьируется (как упомянуто пользователем 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 в смесь

Ответ 6

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

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

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

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

Ответ 7

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

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