Должен ли я сохранять изображения на EBS или S3? - PullRequest
64 голосов
/ 18 февраля 2010

Я перевожу свой сервер Java, Tomcat, Mysql на AWS EC2.

Я уже подключил том EBS для хранения данных MySql. В моем веб-приложении люди могут загружать изображения. Так что я должен их упорствовать. На мой взгляд, есть 2 альтернативы:

  1. Сохранение загруженных изображений на том EBS.
  2. Воспользуйтесь услугой S3.

Ниже приведены мои заметки, скептически относитесь к ним, так как я разбираюсь не в серверах, а в разработке программного обеспечения.

  • EBS plus: S3 хранилище дороже. (0,15 $ / Гб> 0,1 $ / Гб)

  • S3 plus: Обслуживание статики из EBS может отрицательно повлиять на производительность моего веб-сервера. Это правда? Влияет ли показ изображений на производительность сервера? Для S3 мой сервер не будет отвечать за обслуживание статики.

  • S3 plus: Обслуживание статики из EBS может привести к затратам на ввод-вывод, возможно, будет незначительным.

  • EBS plus: Люди говорят, что EBS быстрее.

  • S3 plus: Люди говорят, что S3 более безопасен для настойчивости.

  • EBS plus: не нужно изучать API, просто сохранить изображения на том EBS.

А именно я не могу определиться, буду рад, если вы будете вести.

Спасибо

Ответы [ 5 ]

53 голосов
/ 01 февраля 2011

Сравнение цен не совсем верно: Плата за S3 составляет 0,14 долл. США за ГБ ИСПОЛЬЗОВАНА, тогда как плата за EBS составляет 0,10 долл. США за ГБ ПРЕДОСТАВЛЕНО (размер вашего тома EBS), независимо от того, используете вы его или нет. В результате S3 может быть или не быть дешевле, чем EBS.

49 голосов
/ 18 февраля 2010

В настоящее время я использую S3 для проекта, и он работает очень хорошо.

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

Это также усложняет масштабирование: когда вы хотитеЧтобы добавить дополнительные машины, вам нужно либо вытащить образы на отдельную машину, либо клонировать образы по всем.Это также означает, что вы добавляете узкое место: вам придется управлять собственным процессом загрузки, который будет либо загружаться на все машины, либо иметь один компьютер, управляющий им.

Я рекомендую S3: он установлен и забыт.Любое количество машин может выполнять загрузку параллельно, и вам не нужно уведомлять другие машины о загрузке.

Кроме того, вы можете использовать Amazon Cloudfront в качестве дешевого CDN перед изображениями вместо прямой загрузки с S3.

12 голосов
/ 29 мая 2013

У меня есть архитектурные решения на сайтах AWS для стоковой фотографии, на которых хранятся миллионы изображений, охватывающих данные о туберкулезе. Я хотел бы поделиться некоторыми лучшими практиками в AWS для ваших требований:

P1) Сохранение файла исходного изображения в опции S3 Standard

P2) Сохраняйте воспроизводимые изображения, такие как большие пальцы и т. Д., В опции S3 Reduced Redundancy (RRS) для экономии затрат

P3) Метаданные об изображениях, включая URL-адрес S3, могут храниться в Amazon RDS или Amazon DynamoDB в зависимости от сложности запроса. Запросите записи из Amazon RDS. Если ваш запрос сложный, то обычной практикой является хранение метаданных в Amazon CloudSearch или Apache Solr.

P4) Используйте Amazon CloudFront для пользователей с низкой задержкой.

P5) Поставьте в очередь преобразование вашего изображения через SQS или RabbitMQ в Amazon EC2

P6) Если вы планируете использовать EBS, то они не масштабируются с вашим EC2. Поэтому в идеале вы можете использовать GlusterFS в качестве общего пула хранения для всех ваших образов. Несколько Amazon EC2 в режиме автоматического масштабирования по-прежнему могут подключаться к нему и получать доступ / записывать изображения.

8 голосов
/ 18 февраля 2010

Вы уже обрисовали в общих чертах преимущества и недостатки обоих.

Если вы планируете хранить терабайты изображений, а требования к памяти растут день ото дня, S3 , вероятно, будет вашим лучшим выбором.как это построено специально для подобных ситуаций.Вы получаете неограниченное пространство для хранения, не беспокоясь о ограждении ваших данных на многих EBS томах.

Периодическая стоимость S3 заключается в том, что он на 50% дороже, чем EBS.Вам также придется изучить API и внедрить его в свое приложение, но это единовременные расходы, которые, я думаю, вы сможете быстро освоить.

5 голосов
/ 09 марта 2011

Ожидаете ли вы, что изображения будут длиться бесконечно?

Часто задаваемые вопросы по Amazon EBS довольно понятны;годовая частота отказов не является «практически нулевой»;они указывают от 0,1% до 0,5%.Это лучше, чем диск под вашим столом, но для этого потребуется какая-то резервная копия.

...