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 не может быть смонтировано.