Самый быстрый/лучший способ скопировать данные между S3 в EC2?
У меня довольно большой объем данных (~ 30G, разбитый на ~ 100 файлов). Я хотел бы переходить между S3 и EC2: когда я запускаю экземпляры EC2, я хотел бы скопировать данные с S3 на EC2, как можно быстрее, и когда я закончил обработку, я хотел бы скопировать результаты на S3.
Я ищу инструмент, который сделает быструю/параллельную копию данных взад и вперед. У меня есть несколько скриптов, взломанных, включая тот, который делает приличную работу, поэтому я не ищу указателей на базовые библиотеки; Я ищу что-то быстрое и надежное.
Ответы
Ответ 1
Думаю, вам лучше использовать хранилище Elastic Block Store для хранения ваших файлов вместо S3. EBS похож на "диск" на S3, который может быть установлен в ваш экземпляр EC2 без необходимости копировать данные каждый раз, тем самым позволяя вам сохранять ваши данные между экземплярами EC2 без необходимости писать или считывать с S3 каждый раз.
http://aws.amazon.com/ebs/
Ответ 2
К сожалению, предложение Адама не будет работать, поскольку его понимание EBS неверно (хотя я бы хотел, чтобы он был прав и часто думал, что он должен работать таким образом)... поскольку EBS не имеет ничего общего с S3, но это будет только дает вам "внешний диск" для экземпляров EC2, которые являются отдельными, но подключаются к экземплярам. Вам все равно придется копировать между S3 и EC2, хотя между ними нет затрат на передачу данных.
Вы не указали операционную систему своего экземпляра, поэтому я не могу предоставить конкретную информацию. Популярным инструментом командной строки, который я использую, является http://s3tools.org/s3cmd... он основан на Python и поэтому, согласно информации на его веб-сайте, он должен работать как на Win, так и на Linux, хотя я все время использую его в Linux. Вы можете легко взломать быстрый script, который использует встроенную команду "sync", которая работает аналогично rsync, и запускать ее каждый раз, когда вы закончите обработку ваших данных. Вы также можете использовать команды recursive put и get для получения и размещения данных только при необходимости.
Существуют графические инструменты, такие как Cloudberry Pro, которые также имеют некоторые параметры командной строки для Windows, чтобы вы могли настраивать команды расписания. http://s3tools.org/s3cmd, вероятно, самый простой.
Ответ 3
Установите s3cmd Пакет как
yum install s3cmd
или
sudo apt-get install s3cmd
в зависимости от вашей ОС
затем скопируйте данные с помощью этого
s3cmd get s3://tecadmin/file.txt
Также ls может перечислить файлы.
для более подробной информации см. this
Ответ 4
В настоящее время в инструментах командной строки AWS есть команда синхронизации, которая должна делать трюк: http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html
При запуске:
aws s3 sync s3://mybucket/mylocalfolder
перед выключением:
aws s3 sync/mylocalfolder s3://mybucket
Конечно, детали всегда интересны для разработки, например. как это может быть параллельно (и вы можете сделать его более параллельным и является тем, что любой более быстрый goven виртуальный характер всей установки)
Btw надеюсь, что вы все еще работаете над этим... или кто-то есть.;)
Ответ 5
Для меня лучшая форма:
wget http://s3.amazonaws.com/my_bucket/my_folder/my_file.ext
из PuTTy