Самый быстрый / лучший способ скопировать данные между S3 в EC2? - PullRequest
22 голосов
/ 15 апреля 2009

У меня довольно большой объем данных (~ 30G, разбит на ~ 100 файлов), который я хотел бы передать между S3 и EC2: когда я запускаю экземпляры EC2, я хотел бы скопировать данные из S3 в Локальные диски EC2 как можно быстрее, и когда я закончу обработку, я бы хотел скопировать результаты обратно в S3.

Я ищу инструмент, который будет делать быструю / параллельную копию данных туда и обратно. У меня есть несколько скриптов, в том числе один, который выполняет достойную работу, поэтому я не ищу указатели на базовые библиотеки; Я ищу что-то быстрое и надежное.

Ответы [ 5 ]

33 голосов
/ 25 сентября 2011

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

Вы не упомянули операционную систему вашего экземпляра, поэтому я не могу предоставить специализированную информацию. Я использую популярный инструмент командной строки http://s3tools.org/s3cmd ... он основан на Python, и поэтому, согласно информации на его веб-сайте, он должен работать как на Win, так и на Linux, хотя я использую его ВСЕ время на Linux , Вы можете легко создать быстрый скрипт, который использует встроенную команду «sync», которая работает аналогично rsync, и запускать его каждый раз, когда вы закончите обработку ваших данных. Вы также можете использовать рекурсивные команды put и get для получения и размещения данных только при необходимости.

Существуют графические инструменты, такие как Cloudberry Pro, которые также имеют некоторые параметры командной строки для Windows, с помощью которых можно настроить команды расписания. http://s3tools.org/s3cmd вероятно самый простой.

2 голосов
/ 27 апреля 2016

В настоящее время в инструментах командной строки AWS есть команда sync, которая должна выполнить свою задачу: http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

При запуске: aws s3 sync s3: // mybucket / mylocalfolder

до выключения: Синхронизация aws s3 / mylocalfolder s3: // mybucket

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

Кстати, вы все еще работаете над этим ... или кто-то еще. ;)

1 голос
/ 13 марта 2014

Установить s3cmd Пакет как

yum install s3cmd

или

sudo apt-get install s3cmd

в зависимости от вашей ОС

затем скопируйте данные с помощью этого

s3cmd get s3://tecadmin/file.txt

также ls может перечислить файлы.

для получения дополнительной информации см. this

1 голос
/ 15 апреля 2009

Я думаю, вам лучше использовать Elastic Block Store для хранения ваших файлов вместо S3. EBS сродни «диску» на S3, который можно монтировать в ваш экземпляр EC2 без необходимости каждый раз копировать данные, что позволяет вам сохранять ваши данные между экземплярами EC2 без необходимости каждый раз записывать или читать S3.

http://aws.amazon.com/ebs/

0 голосов
/ 12 января 2017

Для меня лучшая форма это:

wget http://s3.amazonaws.com/my_bucket/my_folder/my_file.ext

от PuTTy

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