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

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

Я уже добавил объем EBS для хранения данных MySql. В моем веб-приложении люди могут загружать изображения. Поэтому я должен их упорствовать. У меня есть две альтернативы:

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

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

  • EBS plus: хранилище S3 стоит дороже. (0.15 $/Gb > 0,1 $/Gb)

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

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

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

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

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

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

Спасибо

Ответ 1

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

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

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

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

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

Ответ 2

Сравнение цен не совсем верно: Плата за S3 составляет 0,14 доллара США за GB USED, тогда как плата EBS составляет 0,10 доллара США за GB (размер вашего объема EBS), независимо от того, используете вы это или нет. В результате S3 может быть или не быть дешевле EBS.

Ответ 3

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

P1) Сохраните исходный файл изображения в стандартной версии S3

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 в режиме Auto Scaled могут все еще подключаться к нему и получать доступ/писать изображения.

Ответ 4

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

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

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

Ответ 5

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

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