#amazon-web-services #amazon-ec2 #amazon-s3 #cloud #s3cmd
#amazon-веб-сервисы #amazon-ec2 #amazon-s3 #облако #s3cmd
Вопрос:
У меня большой объем данных, хранящихся на Amazon S3 в виде объектов.
например, у меня есть пользователь, у которого на Amazon S3 хранится более 200 ГБ фотографий (около 100000 объектов). каждый объект представляет собой фотографию, размер каждого объекта составляет в среднем 5 МБ.
Теперь я хочу предоставить пользователю ссылку для загрузки данных.
В настоящее время то, что я делаю.
- Используя S3cmd, я копирую все объекты из S3 в EC2.
- а затем с помощью команды ZIP или команды TAR я создаю ZIp.
- После завершения процесса Zip я перемещаю zip-файл обратно на S3.
- а затем создайте выделенную ссылку, которую я отправлю пользователю по электронной почте.
Но этот процесс занимает много времени, большую часть времени возникают проблемы с памятью, проблемы с хранилищем, и этот процесс очень медленный.
Мне нужно знать
- Есть ли какой-либо способ увеличить время этого процесса.
- Есть ли какой-либо сторонний сервис / инструмент, где я могу быстро создавать zip-файлы своих файлов и отправлять их пользователю.
- или любое другое стороннее решение, я готов заплатить за это.
Комментарии:
1. Как вы это исправили?
Ответ №1:
Попробуйте использовать EMR (Elastic Map Reducer и S3distCp), которые могут быть полезны в вашей ситуации, для EMR вам нужно создать кластер. и выполнение вашей работы.
Ответ №2:
Направление, которому вы следуете на высоком уровне, является правильным. Однако нет прямого ответа, который мог бы решить вашу проблему одним выстрелом.
Это то, что вы можете попробовать сделать
- Попросите вашего пользователя создать учетную запись AWS (или создать пользователя IAM) и предоставить этому пользователю / учетной записи доступ только для чтения
- Во время процесса загрузки в S3 вы можете группировать фотографии в пакеты по несколько 50 или 100 секунд, сжимать их и затем помещать в S3 (из EC2, т. Е. Во время создания самого носителя)
- Экспорт на внешний носитель из 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 вместо одного экземпляра, и сжимать объекты на лету.
Однако при обработке «больших данных» пользователю, вероятно, будет удобнее, если вы либо создадите пакеты заранее заранее, либо запустите процесс асинхронно по требованию и уведомите пользователя о завершении с помощью ссылки для скачивания.