Я должен сохранить изображения на EBS или S3?

Я перемещаю свой Java, Tomcat, сервер Mysql к AWS EC2.

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

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

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

  • EBS плюс: устройство хранения данных S3 является более дорогим. ($0,15 / Гбит> $0,1 / Гбит)

  • S3 плюс: Обслуживание помех от EBS может влиять на производительность моего веб-сервера негативно. Действительно ли это верно? Обслуживание изображений влияет на производительность сервера особенно? Для S3 мой сервер не будет ответственен за обслуживание помех.

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

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

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

  • EBS плюс: Никакая потребность изучить API, это является прямым для сохранения образов к объему EBS.

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

Спасибо

64
задан Jonik 16 April 2010 в 14:30
поделиться

2 ответа

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

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

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

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

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

49
ответ дан 24 November 2019 в 15:49
поделиться

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

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

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

8
ответ дан 24 November 2019 в 15:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: