Архив больших данных в файлах Amazon S3

#amazon-web-services #amazon-ec2 #amazon-s3 #cloud #s3cmd

#amazon-веб-сервисы #amazon-ec2 #amazon-s3 #облако #s3cmd

Вопрос:

У меня большой объем данных, хранящихся на Amazon S3 в виде объектов.

например, у меня есть пользователь, у которого на Amazon S3 хранится более 200 ГБ фотографий (около 100000 объектов). каждый объект представляет собой фотографию, размер каждого объекта составляет в среднем 5 МБ.

Теперь я хочу предоставить пользователю ссылку для загрузки данных.

В настоящее время то, что я делаю.

  1. Используя S3cmd, я копирую все объекты из S3 в EC2.
  2. а затем с помощью команды ZIP или команды TAR я создаю ZIp.
  3. После завершения процесса Zip я перемещаю zip-файл обратно на S3.
  4. а затем создайте выделенную ссылку, которую я отправлю пользователю по электронной почте.

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

Мне нужно знать

  1. Есть ли какой-либо способ увеличить время этого процесса.
  2. Есть ли какой-либо сторонний сервис / инструмент, где я могу быстро создавать zip-файлы своих файлов и отправлять их пользователю.
  3. или любое другое стороннее решение, я готов заплатить за это.

Комментарии:

1. Как вы это исправили?

Ответ №1:

Попробуйте использовать EMR (Elastic Map Reducer и S3distCp), которые могут быть полезны в вашей ситуации, для EMR вам нужно создать кластер. и выполнение вашей работы.

Ответ №2:

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

Это то, что вы можете попробовать сделать

  1. Попросите вашего пользователя создать учетную запись AWS (или создать пользователя IAM) и предоставить этому пользователю / учетной записи доступ только для чтения
  2. Во время процесса загрузки в S3 вы можете группировать фотографии в пакеты по несколько 50 или 100 секунд, сжимать их и затем помещать в S3 (из EC2, т. Е. Во время создания самого носителя)
  3. Экспорт на внешний носитель из S3 с помощью — Импорт / экспорт Amazon

Комментарии:

1. Спасибо за ответ, может ли EMR (Elastic Map Reducer) или Redshift или glacier помочь в этом отношении?

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

Ответ №3:

S3DistCP — это инструмент, который может очень помочь в подобных случаях. http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_s3distcp.html

S3DistCP может копировать из и в S3, используя кластер EMR вместо одного экземпляра, и сжимать объекты на лету.

Однако при обработке «больших данных» пользователю, вероятно, будет удобнее, если вы либо создадите пакеты заранее заранее, либо запустите процесс асинхронно по требованию и уведомите пользователя о завершении с помощью ссылки для скачивания.